|
求LED 渐渐亮, 渐渐灭电路设计 (有始有终.. 完成看 video)
[复制链接]
|
|
发表于 16-7-2012 03:57 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 16-7-2012 07:49 AM
|
显示全部楼层
如果你要用pwm的方法,我想你要注意一下,有些动物的感官,和我们人类是不一样的哦!比如我们人类 ...
koksoon980 发表于 16-7-2012 03:57 AM
其实他是要求~
timer 1 时间 1 AM 开 8AM 关.. timer 2 时间 1AM 开 7AM 关..
当 两个timer 1 和 2 开时候.. 主灯 和 次级 LED 灯 都会一起亮...
当 7AM timer OFF 主灯会关掉... relay 也跟这关掉...
- timer 1 时间还没到所以开着.. 可是自从 relay 关了 LED 会开始慢慢的暗下来... 知道完全暗完..差不多 20 分钟.. 然后 8AM timer 1 关..
- 重复发生... 在每一天..
复制代码
相隔7小时才要操作! |
|
|
|
|
|
|
|
发表于 16-7-2012 04:40 PM
|
显示全部楼层
其实他是要求~
相隔7小时才要操作!
caspersgm 发表于 16-7-2012 07:49 AM
不是很明白你想表达什么,楼主主要面对的问题是,如何让led开时慢慢亮,关时慢慢暗,看看主题,看看一楼的电路图是干咩的?
请高手多多救命... 或有任何可以代替的电路.. 可以让 LED 慢慢关掉..本人有另一个 switch control 应该很容易的..就拜托各位高手啦..
最好是也可以慢慢开灯... 慢慢关灯..
请版主在救命一次.. 小弟还想研究慢慢开灯的电路..本人想好像上述的 relay 供应 12+ 灯就启动..
现在要 12V+ 灯慢慢开灯... 长达 20 分钟... 教教几招来吗.. 用 电子零件的.. 灯会慢慢亮 和慢慢暗.. 30 秒内发生.. 中间 LED 需要一直亮
本人要给鱼缸灯使用..
在开灯是灯慢慢亮..然后一直亮 直到要关灯时灯慢慢暗.. |
|
|
|
|
|
|
|
楼主 |
发表于 16-7-2012 09:19 PM
|
显示全部楼层
回复 63# koksoon980
目前以来我几经做到了使用 PWM 来开灯.. 和使用 capacitor 来慢慢关灯谢谢 大大的回复.. 等一下本人画图出来让大家看看本人研发的电路.. 本人把电子当研究来满足自己的要求 |
|
|
|
|
|
|
|
发表于 16-7-2012 09:47 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 16-7-2012 09:51 PM
|
显示全部楼层
回复 65# caspersgm
这样才像生态平衡的大自然吗.. 不过这个电路快就要丢掉了 我要订 arduino 来研究怎么做更好的 |
|
|
|
|
|
|
|
楼主 |
发表于 16-7-2012 11:13 PM
|
显示全部楼层
本帖最后由 angels1026 于 16-7-2012 11:16 PM 编辑
回复 61# koksoon980
小弟的灯在亮完之后要一只保持亮.. 直到 按钮 A 被按下 然后灯就会慢慢关.. 要让灯慢慢亮回就要 reset 电源这个问题小弟目前还算决绝了. 可是效果不理想 要用 arduino 做一个更加好的 灯泡方面也有更改
上面有一 part 是 555 dimmer http://pcbheaven.com/circuitpages/LED_PWM_Dimmer/ 拿到的电路我接上了我之前做的电路我拿到了 慢慢开灯 50 秒内慢慢开完.. 可是 main V+ 要 15V 才能让 LED 95% 亮完(不要100% 为了减低热和+LED 的 HP ) 然后再接上之前的慢慢熄灯电路 .. 开灯 用 V+ 关灯用 GDN
说明一下电路操作
启动电源 555 慢慢充 capacitor 的电然后 V+ 的电慢慢增加 .. (灯亮)
当 按下 “按下就慢慢熄灯" 途中的 relay 左边那里 就会一只 ON 然后 下面的那里 cap 的 GND 断了然后慢慢 discharge 灯慢慢暗
还会加上这个电路来代替 “按下就慢慢熄灯" 的按钮
这个电路因为 timer A 比较早 ON 然后 timer B 延迟 5 mins 才on 。。 为了达到在几小时后 timer B 会比 timer A 早放工 然后 timer A 控制的 LED 灯会慢慢收工
电路原理.. Timer B on .. relay 右边 ON relay 左边 也 NO .. 然后 charge 图中的 capacitor .. 当 timer B off relay 右 OFF relay 左 OFF capacitor 充满的电将会 sot 去上面一张图片的 “按下就慢慢熄灯" 就代替了人手去按
为什么要两粒 relay .. 因为 timer B 右边的 relay 利用另外一粒小粒变压器 .. 同时也用来启动 solenoid valve(鱼缸供应 CO2 )
操作
一开始 Timer A ON timer B off
--> LED 灯 A 慢慢亮..
Timer B ON 的时间比 Timer A 延迟 5mins 5 mins 后 timer B 也 on
--> LED 灯 A 100% 亮完 灯 B 也 on8 小时后
Timer B OFF 的时间比 Timer A 早 30 分钟
这时候 灯 B 会立刻熄掉 LED 灯 A 会慢慢熄灯..
timer A -> LED 6w with fade in/out timer B -> high power LED 12w |
|
|
|
|
|
|
|
发表于 16-7-2012 11:59 PM
|
显示全部楼层
回复 koksoon980
小弟的灯在亮完之后要一只保持亮.. 直到 按钮 A 被按下 然后灯就会慢慢关.. 要让灯慢 ...
angels1026 发表于 16-7-2012 11:13 PM
粗略一看555好像是多余的,这样是控制电压高低【线性的】来控制灯的亮度!不是pwm来控制灯的亮度!有时间时才详细看!去睡觉了 |
|
|
|
|
|
|
|
发表于 17-7-2012 12:02 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 17-7-2012 04:09 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 17-7-2012 07:15 PM
|
显示全部楼层
这个楼主已经用 做到了!
现在是要弄这个效果
当然我不是要叫楼主弄61楼那个效果,那个只是 ...
koksoon980 发表于 17-7-2012 04:09 PM
对不起咯~~
是我看错了!!!
|
|
|
|
|
|
|
|
楼主 |
发表于 3-5-2013 05:23 PM
|
显示全部楼层
计划卷土从来...
小弟最近研究了 arduino 和 MSP430 要向以前做不到的东西宣战
渐渐熄灯现在已经 50% 完成了 有了设计 源码.. 已经经过实验了没有问题符合小弟的要求...
使用了 MSP430 + energia
- // 6 LED chain fade effect with PWM
- // Control By 1 Timer Switch
- int led[] = {
- 4, 9, 10, 12, 13, 14};
- int ledd = 15;
- int button1 = 7; // connect to timer
- int buttonstate1 = 0;
- int i = 0;
- int a,b,j;
- int L = 0;
- int g = 300;
- void setup(){
- for(i = 0; i < 6; i++){
- pinMode(led[i],OUTPUT);
- }
- pinMode(button1,INPUT);
- }
- void loop(){
- buttonstate1 = digitalRead(button1);
- if(a < 253){
- for(b = 0; b < 6;b++ ){
- digitalWrite(led[b],LOW);
- }
- }
-
- if(buttonstate1 == HIGH){
- for(L = L; L < 6; L++ ){
- a = 0;
- for(a = a; a < 254; a++){
- analogWrite(led[L],a);
- for(j = 0;j < 10; j++){
- delay(g);
- }
- }
- delay(10);
- digitalWrite(led[L],HIGH);
- }
- }
-
- else{
- if(L == 6){
- L = 6;
- for(L = L; L > -1; L-- ){
- a = 254;
- for(a = a; a > 0 ; a--){
- analogWrite(led[L],a);
- for(j = 0;j < 10; j++){
- delay(g);
- }
- }
- digitalWrite(led[L],LOW);
- }
- delay(1000);
- }
- delay(10);
- L = 0;
- for(b = 0; b < 6;b++ ){
- digitalWrite(led[b],LOW);
- }
- }
- }
复制代码 小弟利用了 小个的 LED 做了实验没有问题,
Mosfet 那边做了一组 也没问题
sw1 会接上 timer
把里面的结构稍微改装一些就可以了..
本帖最后由 angels1026 于 3-5-2013 05:24 PM 编辑
|
|
|
|
|
|
|
|
发表于 4-5-2013 09:50 AM
|
显示全部楼层
angels1026 发表于 3-5-2013 05:23 PM
计划卷土从来...
小弟最近研究了 arduino 和 MSP430 要向以前做不到的东西宣战
渐渐熄灯现在已经 50% 完成 ... sw1 会接上 timer
把里面的结构稍微改装一些就可以了.. 既然你已经用了arduino / MSP430
又何必在使用上面这种timer 呢?
直接编个程序做计时/时钟, 要更精确的就用RTC real time clock + 电池, 或加个LCD显示,
如不要显示,也不要RTC, 就假设每次reset, 你的Arduino的内部时钟 12:00am 开始, 然后你在12:00am reset后, 就不要关电了。
继续挑战LCD显示 和做时钟吧。。。
|
|
|
|
|
|
|
|
楼主 |
发表于 5-5-2013 03:45 PM
|
显示全部楼层
[quote]pic 发表于 4-5-2013 09:50 AM
既然你已经用了arduino / MSP430
又何必在使用上面这种timer 呢?- int led[] = {
- 3, 5, 6, 9};
- int a,b,c,i;
- int h,m,s,ms;
- int timer = 1;
- int masterClock;
- void setup(){
- Serial.begin(9600);
- for(i = 0; i < 4; i++){
- pinMode(led[i],OUTPUT);
- }
- }
- void loop(){
- masterClock++;
- if(masterClock == 1){
- ms++;
- masterClock = 0;
- }
- while(ms == 100){
- s++;
- ms = 0;
- disply();
- }
- while(s == 10){
- s = 0;
- m ++;
- }
- while(m == 10){
- m = 0;
- h ++;
- ledstate();
- }
- while( h == 24){
- h = 0;
- }
- }
- void disply(){
- Serial.print("hours ");
- Serial.print(h);
- Serial.print("\t");
- Serial.print("mins ");
- Serial.print(m);
- Serial.print("\t");
- Serial.print("sec ");
- Serial.print(s);
- Serial.print("\t");
- Serial.print("ms ");
- Serial.print(ms);
- Serial.println("");
- }
- void ledstate(){
- while( h == 7){
- for(a = a; a < 4; a++){
- for(b = 0; b < 255; b ++){
- analogWrite(led[a],b);
- for(c = 0; c < 10; c++){
- delay(timer);
- }
- }
- digitalWrite(led[a],HIGH);
- }
- return;
- }
- while( h == 20){
- for( a = a; a > -1; a-- ){
- for(b = 255; b > 0; b --){
- analogWrite(led[a],b);
- for(c = 0; c < 10; c++){
- delay(timer);
- }
- }
- digitalWrite(led[a],LOW);
- }
- return;
- }
- }
复制代码 时间 7 点亮灯... 12am reset 。。 开始计时
到了 7 点灯会亮.. 可是 问题计时器不会走了 需要等到 LED 亮完了才会动..
24 小时计算没有了但是时间准不准就不知道..
难道是要用两粒 mcu吗 一粒做 clock 一粒 做效果- void loop(){
- masterClock++;
- if(masterClock == 1){
- ms++;
- masterClock = 0;
- }
- while(ms == 100){
- s++;
- ms = 0;
- disply();
- }
- while(s == 10){
- s = 0;
- m ++;
- }
- while(m == 10){
- m = 0;
- h ++;
- ledstate();
- }
- while( h == 24){
- h = 0;
- }
- }
复制代码 实际的 value 是
masterClock = 1600
ms = 100
s = 60
m = 60
agak agak okok 的
为了实验所以加快了一些
本帖最后由 angels1026 于 5-5-2013 03:46 PM 编辑
|
|
|
|
|
|
|
|
发表于 5-5-2013 04:16 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 6-5-2013 04:56 PM
|
显示全部楼层
angels1026 发表于 5-5-2013 03:45 PM
[quote]pic 发表于 4-5-2013 09:50 AM
既然你已经用了arduino / MSP430
又何必在使用上面这种timer 呢? ...
你应该把核对时间的代码置在for(b = 0; b < 255; b ++)之後
|
|
|
|
|
|
|
|
发表于 7-5-2013 12:15 AM
|
显示全部楼层
angels1026 发表于 16-7-2012 11:13 PM
回复 61# koksoon980
小弟的灯在亮完之后要一只保持亮.. 直到 按钮 A 被按下 然后灯就会慢慢关.. 要让灯 ...
这个PWM可以吗? 555 做三角波,比较器 。
当电容充点是,灯是100% 开着,然后电容和电阻放电,PWM就会从100%慢慢下降。。加上是exp线,灯可能会比较长时间才全灭。
要慢慢亮呢加relay 通过电阻充电容,电压会慢慢升起。。等就慢慢亮。。
|
|
|
|
|
|
|
|
楼主 |
发表于 7-5-2013 12:54 AM
|
显示全部楼层
sougisyou 发表于 7-5-2013 12:15 AM
这个PWM可以吗? 555 做三角波,比较器 。
当电容充点是,灯是100% 开着,然后电容和电阻放电,PWM就 ...
时间不够久... 慢慢熄灯/开灯 要在 一小时里面 发生.. 也就是说 LED brightness 0~100% happen in 1 hours
现在改用了 arduino 方便了很多
arduino + 12V power + pwm driver 就完成了
这个是我做的差不多完成了..现在要研究 arduino + timer + led fade 不需要买 extra timer
|
|
|
|
|
|
|
|
发表于 8-5-2013 01:26 AM
|
显示全部楼层
angels1026 发表于 7-5-2013 12:54 AM
时间不够久... 慢慢熄灯/开灯 要在 一小时里面 发生.. 也就是说 LED brightness 0~100% happen in 1 hou ...
那个电路可以发生在1小时以上都可以只要调RC , 不过用MCU还是比较可靠。。
|
|
|
|
|
|
|
|
楼主 |
发表于 19-7-2013 11:47 AM
|
显示全部楼层
来看看完成品..暂时使用了... 还有改进版本
Loading FB Video...
安装的时候我把它调慢了 x15 倍
从不会爬帖爬到会.. 感谢google 和 cari 的大哥们
本帖最后由 angels1026 于 19-7-2013 11:50 AM 编辑
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|