在Arduino的软件可调吊灯

长期以来,迈着轻盈的念头,连续可调,甚至远程。 H4>虽然LED灯是不受欢迎的,昂贵的,和白炽灯不想,因为电压和消费。
和天然后来到...

最近完成了一个alpha版本的智力吊灯,这只能如果系统管理员拿起烙铁和C ++发生。

在您分享一些技术来告诉她什么都知道,什么我没能实现 H5> - 启用时,枝形吊灯包括在最大(不奇怪),即它可作为与物理开关的普通吊灯;
- 枝形吊灯从控制面板(四为Arduino的),​​以及远程控制;
- 亮度可以连续地(相对)来回通过的两个按钮来调节。在这种周期性的调整,也就是说,如果你犯了一个明亮的最大 - 指示灯熄灭(重置为0),如果你的收入少于最低 - 最高上转(让触摸遥控器上的一个按钮,吊灯,可以打开和关闭)
- 半小时后之后,吊灯位复位亮度。明亮的光线不总是必要的,而这一点拐杖到冷却系统。重置亮度后,它可以为半小时重新到最大,并再次。
- 这里是一个必然的吊灯睡眠定时器。默认情况下,它是一个小时。使用遥控器(按压的按钮中的一个)可以被安装在半小时,二小时或向后一小时。但它不是愚蠢的,因为计时器:
- 我们有一个运动传感器的灯,分别定时器计数的最后检测到的运动后的时间;
- 在夜间,当检测到运动时,吊灯接通很少亮度为一分钟。在白天它不工作,因为吊灯应光传感器。运动需要几个(约5秒),吊灯,当我在床上翻身不包括在内;
- 惠誉包括吊灯,晚上关闭按下遥控器上的按钮,因为“夜间”为光线感应器对人体的概念略有不同;
- 当你到达超时断 - 光芒渐渐开始被扑灭,如果当时的运动发生 - 光将回到其旧的价值;
- 吊灯能够表明其身份使用svetodiodika,即使是最吊灯

要读更多的渴望?然后继续前进。

照亮普通的中国人选择了LED灯20瓦,暖白光




要管理被选为逻辑部分的Arduino迷你


运动传感器提供IT


这里的一个光传感器它


此遥控器使用,例如


驾驶员普通中国人。


我不会扰乱读者连接在每个块完全无用的本原理论不必要的电路。
传感器的遥控器有四个输出,按下遥控器上的按钮返回单位。他们,我们连接到数字输入。运动传感器了。光传感器被连接到模拟输入A0。
彩绘的天花板被带到太便宜和中国。

特别应注意调光器,可调软件。在互联网上一堆方案,很多现成的设备。我去了一个简单的方法,并设置一个单一的MOSFET,IRF840。顺便说一句,作品。

我的手绘示意图道歉,原理唉,我不是特别的。这里的原则是连接: H5>

我的代码道歉,唉编程我不规格: H5> <前>&LT;代码级=&QUOT; CPP&QUOT;&GT; //特别利布,使用digitalRead \ digitalWrite时,从而降低了延迟。 #包括LT&; digitalWriteFast.h&GT; INT LED = 7; //平,这是连接指示灯INT MOV = 5; //平,其中的运动传感器连接INT TRA = 9; //平,也就是FET的整数向上= 12的连接栅极; //销,其中销A诠释下来= 11; //针,其中针B INT SWI = 10; //针,其中针C的int SWI1 = 6; //针,其中针D弦BTN; INT TMP; INT MV; INT定时器,inttimer; //定时器变量int BR = 255; //亮度LED默认INT CUR = 255; //服务可变亮度INT STEPP = 5; //多少改变亮度INT移动; //去诠释出= 3600后症状工作; //超时之后,光被关闭INT SVET = 60; //多少开灯的时候,晚上无效设置(){pinMode(LED,OUTPUT)行驶; pinMode(TRA,OUTPUT); pinMode(13,OUTPUT); pinMode(MOV,INPUT); pinMode(上,输入); pinMode(下降,INPUT); pinMode(SWI,输入);定时器= 0; Serial.begin(9600); analogWrite(TRA,255); }虚空环(){//我们增加定时器定时++; inttimer ++; INT sensorValue = analogRead(A0); //读取光MV = MV + digitalReadFast(MOV)的亮度;如果(MV == 7){MV = 0;} //计数多少动作,和复位如果喜欢7 BTN = buttonpressed(); //读取如果按下按钮,按钮被按下遥控器上的//,作用,如果成形(BTN = QUOT;!&QUOT){如果(BR大于10){STEPP = 10;} //如果当前值大于10然后增加设置为10。这使得在亮度,如果一个更加明显的变化(BTN ==&QUOT; A&QUOT;){BR = BR + STEPP;}如果(BTN ==&QUOT; B&QUOT;){BR = BR-STEPP;}如果(BTN ==&QUOT; C&QUOT;){//如果按下Option键超时,那么如果(出== 7200){OUT = 3600;眨眼(8,50);延迟(1000);} //否则如果当前超时两小时,然后重置为一个小时,blimkaem 8次,如果(出== 1800){OUT = 7200;眨眼(0,2000);延迟(1000);}其他//如果当前的超时半小时,然后换上两个和一个blimkaem长的时间,如果(出== 3600){OUT = 1800;眨眼(50,15);延迟(1000);} //如果当前的超时时间,然后把上半小时,闪灯}如果(BR&LT ; 0){BR = 255;} //如果亮度阈过低,则设置为最大(开灯)如(BR&GT; 255){BR = 0;} //如果亮度超过阈值,然后复位为0(禁止光)CUR = BR; analogWrite(TRA,BR); //设置电压在PWM的Arduino的输出,并相应地在栅极tranzictora按压各按钮计时器= 0之后//重置变量; inttimer = 0;移动= 0;延迟(250); } //如果有检测到运动,计数重新开始,如果(digitalReadFast(MOV)== 1){定时器= 0; digitalWriteFast(13,HIGH); }其他{digitalWriteFast(13,LOW); }如果((BR&GT; 240)和(inttimer == 1800)){BR = 180; CUR = 180; analogWrite(TRA,CUR);} //如果它已经一个半小时,而灯的亮度高,然后重置有点//要达到一定的计时器逐渐熄灭的光,而是以回收,如果在这个时刻,如果(定时器==出)来检测运动{对于(INT I = BR; I&GT; = 0; I--){analogWrite(TRA,i)的; BR = 0;如果(digitalReadFast(MOV)== 1){计时器= 0; BR = CUR; analogWrite(TRA,CUR);打破; }延迟(100); }} //如果打开和关闭的光,如果((定时器== SVET)和(移动== 1)),定时器负载夜灯{BR = 0;移动= 0; MV = 0; CUR = 0; analogWrite(TRA,BR); } //如果有运动,并在灯的亮度 - 一个零,然后打开在Pyaterochka的光并重置计时器,如果((MV→5)和(BR == 0)和(sensorValue&GT; 1020)){BR = 5; CUR = 5;定时器= 0;移动= 1; MV = 0; analogWrite(TRA,BR); }}虚空闪烁(诠释计数,诠释德尔){的for(int i = 0; I&LT; =计数;我++){//设置值(范围从0到255):延时(DEL); digitalWriteFast(LED,HIGH);延迟(DEL); digitalWriteFast(LED,LOW); }}字符串buttonpressed()//函数来确定拐杖,按键盘+暂停{BTN =&QUOT;英寸;的for(int i = 0; I&LT; = 1000;我++){如果(digitalReadFast(下)== 1){BTN =&QUOT; B英寸;}如果(digitalReadFast(上)== 1){BTN =&QUOT;一英寸;}如果(digitalReadFast(SWI)== 1){BTN =&QUOT; C&英寸;}如果(digitalReadFast(SWI1)== 1){BTN =&QUOT; D&英寸;}如果(BTN =&QUOT;!&QUOT ;){眨眼(0,20);断裂;}延迟(1); }返回BTN; }&中尉; /码&GT; PRE>
一个位的工作流程: H5>
 







一个小的视频演示: H5>

令人失望的一点: H5> - 设计,这是在拍摄视频 - 不可用。两个20瓦LED暖光raskochegarilsya散热器到这样的程度,熔融锡,这对他们是焊接导线。换成两个20瓦的热情,4个10瓦中性,并引入了拐杖降低亮度。
- 中性白光LED - 讨厌的,不愉快的眼睛
。 - 我想不出一个计算机键盘上的仿真夹紧键。正因为如此,在喷光线的变化,因为延迟 - 固定。
- 遥控定期proglyuchivaet,即没有抓到接收机,因此,当他已经在遥控器上点燃的指标 - 信号传递的不是一个保证。为了这个目的,有必要引入在吊灯的指示器
- 大规模的散热器两个20瓦的LED灯 - 是不够的,或者他们的工作在极端模式。明天我测量电流,并把它放在一个电阻。
- 礼貌灯 - 完整的废话,因为它显示了电线所有的鼻涕。我打算订购磨砂亚克力,使散射白光。
- 没有找到市场KREN5A因为这个(令人难以置信,但却是事实),用于Arduin不得不把多余的。电源,但是我想从司机喂她。
- 鼻涕 - 这是不好的,Arduino的了。蚀刻费atmegi,来程序员 - 甩掉多余的粘液

感谢您阅读,直到结束。 H4>你有没有兴趣,我贴有改进的吊灯另一篇文章的事实? <表> 是 TD> TR> 没有 TD> TR> TABLE>投票数242人。 40人弃权。只有注册用户可以参与投票。 注册,请。

来源: habrahabr.ru/post/247151/