佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: angels1026

一起来做 LED 连串接法的实验 (增加MCU来玩)

[复制链接]
 楼主| 发表于 13-4-2013 11:25 PM | 显示全部楼层
小弟的灯里面有 4 种 灯泡 是给鱼缸灯使用的。。 重要目的达到大自然太阳颜色的变化...
因此 灯泡里面有微红色,微蓝色,微白色,光亮白 要顺序开灯 然后逆序关灯 达到大自然的生态


请大家帮帮忙找出这个电路的问题 ><
这个电路的运作是这样的   Vcc  12V   24 小时运作.. 不止是给灯供电  风扇, 温度记 之类也是需要 12V
电源供应采用了 高级 电脑 PSU 500w
左边到右边是 1  2  3 4
timer  是用 AC timer 稍微改装里面变成 12V 的 switch (不是问题别针对这个东西   )
电源接上..
relay 后面的电路是慢慢熄灯的电流 (不是重点)
灯在 7 AM ON   灯亮的次序 1 -> 2 -> 3 -> 4   
灯在 7PM  OFF   熄灯次序  4 -> 3 -> 2 -> 1
重复

1)  All Lamp = ON AC timer = off
2)    No.4 timer 555 delay 5 sec
3)    No.4 timer 555 Delay 10 mins  No.4 Relay ON  ( lamp 4 关掉)
4)    No.4 timer output turn NO No.3 Timer
5)    No.3 Timer 555 Delay 10 mins No.3 relay ON  ( lamp 3 关掉)
6)    No.3 timer output Turn On No.2 Timer
7)    No.2 timer 555 Delay 10 mins No.2 Relay ON  ( lamp 2 关掉)
8)    No.2 timer output Turn ON No.1 Timer
9)    No.1 Timer 555 Delay 10 Mins No.1 relay ON   ( lamp 1 关掉)
10)   7AM AC timer = ON
11)   No.1 Timer Delay 5
12)   No.1 timer delay 10 mins   No.1 relay ON  (lamp 1 ON)
13)   No.1 timer output turn ON timer 2
14)   No.2 timer delay 10 mins No.2 relay ON ( lamp 2 ON)
15)   No.2 timer output turn ON timer 3
16)   No.3 timer delay 10 mins   No.3 relay ON  (lamp 1 ON)
17)   No.3 timer output turn ON timer 4
14)   No.4 timer delay 10 mins No.4 relay ON ( lamp 2 ON)
15)   7PM AC timer = Off
16)  All Lamp = ON AC timer = off
17)    No.4 timer 555 delay 5 sec
18)    No.4 timer 555 Delay 10 mins  No.4 Relay ON  ( lamp 4 关掉)
19)    No.4 timer output turn NO No.3 Timer
20)    No.3 Timer 555 Delay 10 mins No.3 relay ON  ( lamp 3 关掉)
21)    No.3 timer output Turn On No.2 Timer
22)    No.2 timer 555 Delay 10 mins No.2 Relay ON  ( lamp 2 关掉)
23)    No.2 timer output Turn ON No.1 Timer
24)    No.1 Timer 555 Delay 10 Mins No.1 relay ON   ( lamp 1 关掉)
repeat n repeat


修正
所有 timer 555 的output 加上 2N2222   本帖最后由 angels1026 于 13-4-2013 11:29 PM 编辑

回复

使用道具 举报


ADVERTISEMENT

发表于 14-4-2013 02:27 PM | 显示全部楼层
angels1026 发表于 13-4-2013 11:25 PM
小弟的灯里面有 4 种 灯泡 是给鱼缸灯使用的。。 重要目的达到大自然太阳颜色的变化...
因此 灯泡里面有微 ...

电路很大问题呀!
555直接驱动继电器,555变了短命鬼。应该先连接一个晶体管,用晶体管驱动继电器。
都使用了继电器,干吗还要动用两个晶体管驱动灯炮?把2N2222和TIP32丢掉吧!
如果你会编程,建议使用Tiny Arduino

回复

使用道具 举报

发表于 14-4-2013 02:32 PM | 显示全部楼层
我看到555的输出短路了
回复

使用道具 举报

 楼主| 发表于 14-4-2013 02:35 PM | 显示全部楼层
西门庆33 发表于 14-4-2013 02:27 PM
电路很大问题呀!
555直接驱动继电器,555变了短命鬼。应该先连接一个晶体管,用晶体管驱动继电器。
都 ...

修正
所有 timer 555 的output 加上 2N2222
2N2222 和 tip 31 可以 帮忙 慢慢关灯和慢慢开灯

回复

使用道具 举报

 楼主| 发表于 14-4-2013 02:38 PM | 显示全部楼层
koksoon980 发表于 14-4-2013 02:32 PM
我看到555的输出短路了

那里那里
回复

使用道具 举报

发表于 14-4-2013 02:38 PM | 显示全部楼层
angels1026 发表于 14-4-2013 02:35 PM
修正
所有 timer 555 的output 加上 2N2222
2N2222 和 tip 31 可以 帮忙 慢慢 ...

一个2N2222就可以驱动继电器了。丢掉TIP31吧。
回复

使用道具 举报

Follow Us
发表于 14-4-2013 02:41 PM | 显示全部楼层
555输出通过1n4148短路去地了
回复

使用道具 举报

发表于 14-4-2013 02:47 PM | 显示全部楼层
angels1026 发表于 14-4-2013 02:35 PM
修正
所有 timer 555 的output 加上 2N2222
2N2222 和 tip 31 可以 帮忙 慢慢 ...

驱动灯炮方面
如果不是大功率灯炮,可以使用这电路
1.jpg

如果使用大功率灯炮或高电压(或不同的电压),可以使用这电路
2.jpg
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 14-4-2013 02:48 PM | 显示全部楼层
koksoon980 发表于 14-4-2013 02:41 PM
555输出通过1n4148短路去地了

应该是倒转接了 = =  电路运行的通吗 ?
回复

使用道具 举报

 楼主| 发表于 14-4-2013 02:49 PM | 显示全部楼层
西门庆33 发表于 14-4-2013 02:47 PM
驱动灯炮方面
如果不是大功率灯炮,可以使用这电路



我想要做这个效果
回复

使用道具 举报

发表于 14-4-2013 02:55 PM | 显示全部楼层
angels1026 发表于 14-4-2013 02:49 PM
我想要做这个效果

继电器只能开或关,不能使用在这种效果
回复

使用道具 举报

 楼主| 发表于 14-4-2013 03:02 PM | 显示全部楼层
西门庆33 发表于 14-4-2013 02:55 PM
继电器只能开或关,不能使用在这种效果

relay 的出口接上这个电路
relay 只是用来做 switching  达到 1 2 3 4     4 3 2 1 效果
回复

使用道具 举报

 楼主| 发表于 19-4-2013 12:46 PM | 显示全部楼层
有时候我们人类要 upgrade 一下...
这次小弟改用了 MSP430
下面是小弟的源码 利用 analogWrite pwm 来控制亮度... 达到一粒一粒 LED 慢慢发亮
  1. int LED1 = 13;
  2. int LED2 = 12;
  3. int LED3 =11;
  4. int i = 0;

  5. void setup(){
  6.   pinMode(LED1, OUTPUT);
  7.   pinMode(LED2, OUTPUT);
  8.   pinMode(LED3, OUTPUT);
  9. }

  10. void loop(){
  11.   for(i = 0; i < 255; i++)
  12.   {
  13.     analogWrite(LED1,i);
  14.     delay(1000);
  15.     }
  16.     analogWrite(LED1,255);
  17.   for(i = 0 ; i <255 ; i++ )
  18.   {
  19.     analogWrite(LED2,i);
  20.     delay(1000);
  21.     }
  22.     analogWrite(LED2,255);
  23.   for(i = 0 ; i <255 ; i++)
  24.   {
  25.     analogWrite(LED3,i);
  26.     delay(1000);
  27.     }
  28.     analogWrite(LED3,255);
  29. }


复制代码
其实这个 code 是看了别人写的 然后自己改装一点

小弟不明白  (i=0 ; i < 255 ; i++)
小弟的看法是   i 变成 0 然后, 如果 i 小过 255 就  i 就会增加 1 直到 255 这个 loop 就 stop   不是很明白这里 希望有哪位大大可以讲解讲解
然后 (LED , i )  就是 LED 亮度 = i   
不过这个loop 会一直走 要添加什么东西 当 LED3 100% 亮
回复

使用道具 举报

发表于 19-4-2013 06:38 PM | 显示全部楼层
angels1026 发表于 19-4-2013 12:46 PM
有时候我们人类要 upgrade 一下...
这次小弟改用了 MSP430
下面是小弟的源码 利用 analogWrite pwm 来控 ...

for(i = 0; i < 255; i++)意思是i的起始值是0,每loop一次,i将会增加一(i++),直至254才停止。


这个是从大到小
for(i = 254; i > 0; i--)

analogWrite(LEDx,254);已经是100%

analogWrite(LEDx,255) = digitalWrite(LEDx, HIGH)


本帖最后由 西门庆33 于 19-4-2013 07:01 PM 编辑

回复

使用道具 举报

发表于 19-4-2013 06:43 PM | 显示全部楼层
angels1026 发表于 19-4-2013 12:46 PM
有时候我们人类要 upgrade 一下...
这次小弟改用了 MSP430
下面是小弟的源码 利用 analogWrite pwm 来控 ...

是不是开一个新帖子比较好?
回复

使用道具 举报

 楼主| 发表于 19-4-2013 08:02 PM | 显示全部楼层
西门庆33 发表于 19-4-2013 06:43 PM
是不是开一个新帖子比较好?

等东西到了才开吧 有点期待
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 22-4-2013 01:24 PM | 显示全部楼层
西门庆33 发表于 19-4-2013 06:38 PM
for(i = 0; i < 255; i++)意思是i的起始值是0,每loop一次,i将会增加一(i++),直至254才停止。

小弟在这里想请问下大大 这个关于 switch case 的东东
小弟看了很久还是看不明白

这个是 arduino 的 example
  1. const int sensorMin = 0;      // sensor minimum, discovered through experiment
  2. const int sensorMax = 600;    // sensor maximum, discovered through experiment

  3. void setup() {
  4.   // initialize serial communication:
  5.   Serial.begin(9600);  
  6. }

  7. void loop() {
  8.   // read the sensor:
  9.   int sensorReading = analogRead(A0);
  10.   // map the sensor range to a range of four options:
  11.   int range = map(sensorReading, sensorMin, sensorMax, 0, 3);

  12.   // do something different depending on the
  13.   // range value:
  14.   switch (range) {
  15.   case 0:    // your hand is on the sensor
  16.     Serial.println("dark");
  17.     break;
  18.   case 1:    // your hand is close to the sensor
  19.     Serial.println("dim");
  20.     break;
  21.   case 2:    // your hand is a few inches from the sensor
  22.     Serial.println("medium");
  23.     break;
  24.   case 3:    // your hand is nowhere near the sensor
  25.     Serial.println("bright");
  26.     break;
  27.   }
  28.   delay(1);        // delay in between reads for stability
  29. }
复制代码
  1. void loop() {
  2.   // read the sensor:
  3.   int sensorReading = analogRead(A0);
  4.   // map the sensor range to a range of four options:
  5.   int range = map(sensorReading, sensorMin, sensorMax, 0, 3);

  6.   // do something different depending on the
  7.   // range value:
  8.   switch (range) {
  9.   case 0:    // your
复制代码
小弟不明白 map(), () 里面应该填写什么东西啊 小弟想要改换成 switch 按下去 LED 会 0++ 到 255  放开的时候 从 255++ 到回 0 猜想这个应该可帮到我吧



回复

使用道具 举报

发表于 23-4-2013 11:39 AM | 显示全部楼层
angels1026 发表于 22-4-2013 01:24 PM
小弟在这里想请问下大大 这个关于 switch case 的东东
小弟看了很久还是看不明白

switch (range)是用来分析range的值,以便处理case
  • range是0时,执行case 0
  • range是1时,执行case 1
  • 以此类推


int range = map(sensorReading, 0, 600, 0, 3)
sensorReading的值是介于0至600,间隔是600/4=150
4是从0至3得出来(0,1,2,3)

sensorReading=0,range则=0
sensorReading=120,range还是=0

sensorReading=160,range则=1
sensorReading=480,range则=2

sensorReading=500,range则=3
sensorReading=600,range还是=3

无论sensorReading是多少,range的值都是介于0至3

本帖最后由 西门庆33 于 23-4-2013 12:05 PM 编辑

回复

使用道具 举报

 楼主| 发表于 23-4-2013 06:49 PM | 显示全部楼层
西门庆33 发表于 23-4-2013 11:39 AM
switch (range)是用来分析range的值,以便处理case
  • range是0时,执行case 0

  • ooooo......
    感谢师父 ...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

     

    ADVERTISEMENT



    ADVERTISEMENT



    ADVERTISEMENT

    ADVERTISEMENT


    版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

    GMT+8, 3-10-2025 12:06 AM , Processed in 0.125568 second(s), 24 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表