基于Arduino制作的触摸变色台灯(附原理图、PCB板图、实物图、测试流程、源代码)

合集下载

智能灯触摸台灯制作资料程序+原理图pcb分享给大家

智能灯触摸台灯制作资料程序+原理图pcb分享给大家

智能灯触摸台灯制作资料程序+原理图pcb分享给大家such808发表于 2015-7-25 13:17:12 | 只看该作者 |只看大图上传资料希望各位喜欢程序预览:1.#include<reg52.h>2.fanhui();3.duanma[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x8 0,0x90};//共阳数字段码 0-94.sbit g1=P2^1;sbit g2=P2^3;sbit g3=P2^5;sbit g4=P2^7; //位选5.sbit key1=P1^1;sbit key2=P1^5;sbit key3=P1^7;//按键6.sbit spek=P1^0; //蜂鸣器7.sbit powr=P2^0; //继电器开关8.sbit chumo=P1^3; //触摸选项9.char sum=0,s=59,min=0,h=0,add=0;10.void delay()11.{12.int a,b;13.for(a=10;a>0;a--)14.for(b=50;b>0;b--);15.}16.delay1()17.{18.int a,b;19.for(a=50;a>0;a--)20.for(b=300;b>0;b--);21.}22./////////////////////////////////////////////////////23.////////////////////时间处理函数/////////////////////24./////////////////////////////////////////////////////25.jishi()26.{27.if(s<0)28.{29.s=59;min--;30.}31.if(min<0)32.{33.min=59;34.h--;35.}36.if(h<0)37.{38.h=23;39.}40.}41./////////////////////////////////////////////////////42.////////////////////显示函数/////////////////////////43./////////////////////////////////////////////////////44.xianshi()//45.{46.P0=duanma[h/10];////小时显示47.g1=0;48.delay();49.g1=1;50.P0=duanma[h%10];51.g2=0;52.delay();53.g2=1;54.if(add>25)55.{56.P0=duanma[min/10]+0x80;/////分显示57.g3=0;58.delay();59.g3=1;60.P0=duanma[min%10]+0x80;61.g4=0;62.delay();63.g4=1;64.}65.else66.{67.P0=duanma[min/10];/////分显示68.g3=0;69.delay();70.g3=1;71.P0=duanma[min%10];72.g4=0;73.delay();74.g4=1;75.}76.}77.//////////////////////////////////////////////////////78.////////////////待机程序/////////////////////////////79./////////////////////////////////////////////////////80.daiji()81.{82.powr=1;83.g4=g3=g2=g1=1;84.delay1();delay1();delay1();delay1();delay1();85.while(1)86.{87.delay1();delay1();88.if(chumo==1)89.{90.delay();91.if(chumo==1)92.{93.while(chumo==1);94.spek=0;95.delay1();96.spek=1;97.sum=0,s=59,min=0,h=0,add=0;//重新对初始变量赋值98.powr=0;99.break;100.}101.}102.}103.fanhui();//重头开始104.}105.//////////////////////////////////////////////////////// 106.//////////////////返回起始点////////////////////////////// 107.///////////////////////////////////////////////////// 108.fanhui() //开始标号109.{110.while(1) //预备显示111.{112.g1=g2=g3=g4=0; //显示三条横线(---)0xbf113.P0=0xbf;114.delay1();115.delay1();116.delay1();117.delay1();118.g1=g2=g3=g4=1;119.delay1();120.delay1();121.delay1();122.delay1();123.124.if(key1==0)125.{126.spek=0;127.delay1();128.if(key1==0)129.while(key1==0);130.spek=1;131.break;132.}133.if(chumo==1) ///////检测有无关闭指令134.{135.delay1();delay1();delay1();delay1(); 136.if(chumo==1)137.{138.while(chumo==1);139.spek=0;140.delay1();141.spek=1;142.daiji();143.}144.}145.}146.}147.///////////////////////////////////////////////////// 148.////////////////////按键函数///////////////////////// 149.///////////////////////////////////////////////////// 150.anjian()151.{152.if(chumo==1)153.{154.delay1();delay1();155.if(chumo==1)156.{157.while(chumo==1);158.spek=0;159.delay1();160.spek=1;161.daiji();162.}163.}164.if(key1==0)165.{166.delay1();167.if(key1==0)168.{169.spek=0;170.delay1();171.spek=1;172.while(key1==0);173.while(1)174.{175.P0=duanma[h/10];////小时显示176.g1=0;177.delay();178.g1=1;179.P0=duanma[h%10];180.g2=0;181.delay();182.g2=1;183.P0=duanma[min/10]+0x80;/////分显示184.g3=0;185.delay();186.g3=1;187.P0=duanma[min%10]+0x80;188.g4=0;189.delay();190.g4=1;191.while(add>49)192.{193.g1=g2=g3=g4=1;194.}195.if(key2==0) //时调整加、、、、、、、、、196.{197.delay1();198.if(key2==0)199.{200.spek=0;201.delay1();202.spek=1;203.if(h==24)204.{205.h=0;206.}207.else208.h++;209.}210.}211.if(key3==0) //分调整加、、、、、、、、、212.{213.delay1();214.if(key3==0)215.{216.spek=0;217.delay1();218.spek=1;219.if(min==60)220.{221.min=0;222.}223.else224.min++;225.}226.}227.if(key1==0) //调试确定并退出调试状态228.{229.delay();230.if(key1==0)231.{232.spek=0;234.spek=1;235.while(key1==0);236.break; //跳出本while语句,即本函数结束237.}238.}239.}240.}241.}242.}243.///////////////////////////////////////////////////// 244.////////////////////主函数/////////////////////////// 245.///////////////////////////////////////////////////// 246.void main()247.{248.TMOD=0x01;249.TH0=(65535-20000)/255;250.TL0=(65535-20000)%255;251.EA=1;252.ET0=1;253.TR0=1;254.chumo=0;255.while(1)256.{257.if(chumo==1)258.{259.delay1();260.if(chumo==1)261.while(chumo==1);262.spek=0;264.spek=1;265.powr=0;266.break;267.}268.}269.fanhui(); //调用初始返回函数270.while(1) //执行主程序271.{272.xianshi();273.anjian();274.if(h==0)275.{276.if(min==0)277.{278.if(add<25)279.{280.g4=g3=g2=g1=1;281.delay1();282.delay1();283.delay1();284.delay1();285.}286.if(s==0)287.{288.daiji();289.}290.}291.}292.}293.}294.///////////////////////////////////////////////////// 295.////////////////////秒表定时中断服务函数///////////// 296.///////////////////////////////////////////////////// 297.dingshi()interrupt 1298.{299.TH0=(65535-20000)/255;300.TL0=(65535-20000)%255;301.add++;302.if(add==50)303.{304.add=0;305.s--;306.jishi();307.}308.}复制代码。

触摸调光台灯

触摸调光台灯

触摸调光台灯原理说明一、工作原理:SM电路由输入缓冲器、锁相环、控制逻辑、亮度记忆、相角指针、数字比较器和输出驱动器组成。

其框图见图一:电路的基本工作原理为(调光为例):人体带电与市电同频,当人体接触触摸片时,经输入缓冲级的削波、放大、整形,成为标准的MOS电平。

触摸持续时间大于32毫秒小于332毫秒时,控制逻辑部分控制电路呈开关工作状态。

当触摸持续时间大于332毫秒时,控制逻辑部分控制电路呈调光工作状态,输出触发脉冲相位角在41度至159度之间连续周期变化,并根据人眼的感受力,分为快、慢和暂歇三个过程。

当触摸结束时,亮度记忆对该时相位角进行记忆,若再施与大于32毫秒,小于332毫秒的触摸,电路呈关状态时,相位角仍由该部分记忆,保证电路在下一次开状态时,保持原选定相位角,光源保持原亮度。

触发脉冲与市电的同步,由锁相环保证,电路的工作时钟,也均由其产生。

同时,电路还具有遥控(即远端触发)功能,和渐睡(即由亮至暗,最后关闭)功能,其延续时间由外电路设置。

三、管脚排列和功能说明:管脚功能说明:1. Vss —5V电源。

2. Doze —渐暗功能。

当导通角最大(159°)时。

外界对该脚施于83±3个脉冲,则SCR的导通角从159°连续变至40°,最后截止(不输出触发脉冲)。

3. Cap —锁相环外接滤波电容(参考值0.47μF)。

4. Syn —市电频率同步信号输入端。

5. Sen2 —触摸控制端。

低电平触发,人体触摸点。

6. Sala —远距离控制端。

高电平触发,抗干扰好,适于较远距离的按键式调光控制。

7. VDD —0V。

8. Out —输出触发脉冲。

触摸调光台灯原理图普通台灯加装此套件可使普通台灯升级为“节能+视力保健”型台灯,它具有触摸开关灯、触摸调光和测光功能,本电路主要采用了一块新型专用调光集成电路SM7232。

该集成电路的主要电参数为:工作电压4.5~4.9V,静态电流400μA,可控制50Hz及60Hz交流电。

触摸式带记忆台灯调光电路设计

触摸式带记忆台灯调光电路设计
2.1 触摸式调光台灯开关设计
该调光台灯开关摆脱了传统的机械式拨动开关调光,电位器调等形式,通过 人手触摸电极片(金属片)来实现对灯光的开,关及连续调光控制。
2.2 电路原理
触摸式调光台灯开关的电路图如图 4 虚线右边所示。左边是为了便于说明电 路原理而绘出的被控台灯电路。在该电路图中,H 为不大于 100W 的白炽灯,可用 1A/400V 的双向晶闸管 VS 来控制。若白炽灯功率大于 100W,则应该相应加大双 向晶闸管 VS 的额定电流(最大可达 10A)。芯片 A(NB7232)使用的 5V 直流电源直 接由 VD1,VD2,R1 与 C1 组成电阻降压半波整流稳压电路从 220V 交流市电中获取。 同时,市电经 C2 虑出尖脉冲干扰,由 R2 将截取捕获的 过零同步信号送入芯片 NB7232 的同步输入端,使内部锁相环电路与市电保持同步 相角。VD3 作为放电二极管,用于保护 C2 不被击穿。C3 是芯片内部锁相环电路 的外接虑波电容器。电容器 C4 用于降低 8 脚输出的控制脉冲电压,R3 为双向晶 闸管 VS 控制极的限流,隔离电阻器,它可以防止因晶闸管 VS 控制极出现故障高 压而导致芯片 NB7232 的损坏。M1 为手触电极片,用铁片或黄铜片等材料加工而 成,形状和大小均无严格要求。R5, R6 为两只串连的高阻电阻器, 阻值之和应大于 6 M,而且不能用一个电阻器来代替。这样,使用中 万一有一个电阻器受潮或碰触短路,也能确保使用者的安全。人体触 摸信号(与市电同频率的微弱交流电泄漏信号)经过保安电阻器 R5,
图2
波,放大,整形成为标准的 MOS 电压。当手指触摸时间大于 32 毫秒,小于 332 毫秒时, 控制逻辑控制芯片电路呈开关工作状态。当触摸时间大于 332 毫秒时, 控制逻辑控 制芯片电路呈调光工作状态, 输出触发(可控硅)脉冲相位角在,之间连续周期变化 (根据人眼的感受力,分为快,慢和暂停三个过程)。当停止触摸时, 亮度记忆电路对该 时刻相位角进行记忆,若再施与大于 32 毫秒,小于 332 毫秒的触摸, 电路即呈关状态, 相位角仍由该部分进行记忆保证电路在下一次呈开状态时, 保持上次选定相位角, 光源保持原亮度。该芯片要求输出触发(可控硅)脉冲与市电同步,这由锁相环电路保 证, 电路的工作时间也由它产生。同时,该芯片电路还具有遥控(即远端触发)功能 和渐睡(即由亮到暗,最后关闭熄灭)功能,其延续时间可由外电路设置。

基于Arduino的电子调光台灯设计

基于Arduino的电子调光台灯设计

拟信号的电平进行编码通过调制方波的占空比来实现ꎮ 电
量并显示电子调光台灯的工作电压、电流、功率数据ꎬ实时显
压则是以一种通或断的重复脉冲序列被加到模拟负载上去
示人体与电子调光台灯的距离ꎬ当距离小于设定值时发出警
的ꎮ 占空比是指有效电平在一个周期之内所 也可设定
灯工作时的电压、电流、功率时ꎬ可能由于此仪器不能同时测
得电压和频率的变化ꎬ接线错误导致 PWM 损坏ꎮ
烧录程序并供电ꎬ调试超声波测距模块及显示器显示距
离ꎬ通过串口传回数据实时检测超声波工作状态ꎮ 通过串口
用同样的方法调试光敏传感器及其他模块的工作状态ꎮ 测
试得各模块工作正常ꎬ程序与硬件连接良好ꎮ
图 2 电路原理图
随着科技全球化ꎬ越来越多的新技术被创造出来ꎬ我们
影响ꎮ 所以本设计控制系统采用在 Arduino 扩展板上搭建单
片机技术和 PWM 调节方式结合起来实现台灯光强调节ꎮ 通
少ꎬ价格较贵一些ꎮ
切换控制ꎬ包含全亮和熄灭ꎮ 通过将环境光传感器、超声波
实现变电压
的生活方式在科技创新中不断地被更新ꎮ 本设计通过将单
摘 要:将 220V 交流电变为 5V 电源( 直流电) 供电给 ArdunioꎬArduino 通过 PWM 方式控制与电源并联的可控硅模块ꎬ实
现变电压ꎮ 感知环境功能用 Arduino 连接各种各样的传感器来实现ꎬ反馈、影响环境功能用 Arduino 控制灯光、马达和其他的
装置来实现ꎮ
关键词:ArduinoꎻPWMꎻ可控硅模块ꎻ自动调节ꎻ交直流转换器
过电子调光台灯上的亮度增减按键ꎬ实现其多个档位的亮度
传感器、LCD 显示屏、蜂鸣器连接到 Ardunioꎬ来实现根据环
片机ꎬ这种方法比面包板搭建方便、简单ꎬ易于搭建ꎬ连线较

毕业设计(论文)-触摸式调光台灯设计[管理资料]

毕业设计(论文)-触摸式调光台灯设计[管理资料]

学士学位毕业设计(论文)触摸式调光台灯设计学生姓名:学号:2XX指导教师:所在学院:信息技术学院专业:电子信息工程中国·大庆2013 年 5 月摘要台灯是人们生活中用来照明的一种家用电器。

随着社会的发展和科技的进步,台灯的种类、样式,以及其功能越来越多。

技术上在不断的突破和完善,满足了人们的日常需求。

此次设计的触摸式调光台灯相比传统的按键式台灯更为方便和灵敏。

采用LED灯更加的节能和环保,而且还可以根据不同人的需求调节不同的亮度。

本文介绍了以SGL8022W芯片为控制核心,用12V稳定电源,通过触摸来调节不同光度。

该触摸式调光台灯电路并不复杂,很大程度上节省电能,延长LED灯寿命,经济适用。

本次课题的研究不仅可以使自己更加了解专业知识还可以对市场上台灯的设计起到一定的参考作用,设计出更加合理便捷的产品来满足人们生活中的需要。

关键词:触摸式LED台灯SGL8022W 调光ABSTRACTThe lamp is used to illuminate a household appliances in people's lives.With the development of society and the advancement of technology,lamp type, style, and more and more powerful.Technical breakthrough in constant and perfect,to meet the daily needs of the people.The design of the touch lamp dimmer compared to traditional push-button lamp is more convenient and sensitive.LED lights more energy-saving and health,but also according to the needs of different people of different brightness.This article describes that the SGL8022W chip as the control core,stable power supply with12V touch to adjust the different luminosity.The touch dimmer lamp circuit is not complicated,largely to save energy and prolong the life of LED lights, affordable.The research projects can not only a better understanding of expertise can also play a reference role in the design of the lamp market design more reasonable and convenient products to meet the needs of our lives.Keywords:Touch LED lamp SGL8022W Dimming目录摘要 (I)ABSTRACT (II)前言 (IV)1 绪论 (3) (3) (5)2 硬件电路设计 (6) (6)12V直流电源设计 (8) (10) (12) (17)3 电路调试与功能实现 (18) (18) (18)4 总结与体会 (20)结论 (20)参考文献 (22)致谢 (23)附录.................................... 错误!未定义书签。

基于单片机的智能LED台灯设计,附电路图、成品演示图、源程序

基于单片机的智能LED台灯设计,附电路图、成品演示图、源程序

关闭的功能。该传感器检测距离通过编写程序控制。 以上的程序见附录三。
4 总结
该设计实现了自动检测屋内是否有人并自动开启/关闭功能;台灯具有光亮 度调节功能;具有时间显示功能;具有温度显示功能;具有闹铃功能。但在细节 方面还有不足之处。LED 亮度达不到很亮的程度,只能在一个很小的范围变化, 以致于光亮度不够。
附录一 实物照片
附录二 硬件电路图
附录三 程序
#include<reg52.h> #include<shizhong.h> void delay(uint z) {
uint x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--); } void delay1(unsigned char t)
图 9 红外传感电路
检测屋内是否有人我们选用 BIS0001 红外热释传感器,因为该传感器灵敏度 好,好控制,而且价钱不贵。3 脚接电源 VCC,1 脚接地,2 脚通过一个 NPN 型 的三极管接至单片机的 P37 口。由于该传感器的带负载能力较弱,加一个三极管 作为其驱动电路,当 P37 口给低电平时有效。检测距离可通过软件调节。
图 6 时钟模块电路
因为 DS12C887 时钟芯片的集成度都很高,而且它自带锂电池,即使断电了 时钟仍然在工作,所以我们选择了 DS12C887 时钟芯片作为时钟。各脚的连接见 图 6.由于其集成度很高,我们只需按照其数据手册焊接电路即可。 2.6 闹铃模块电路设计 闹铃模块电路如图 7,
图 7 闹铃模块电路
2.2 按键模块电路设计 按键模块电路如图 3,
图 3 按键模块电路
按键 K5、K6 用来调节台灯的亮度,K7 控制模式,即控制台灯是工作在感应 模式下还是工作在手动模式下,亦或是关闭状态。其余的用作调节时钟以及闹铃。 按键均采用低电平有效连接方式。通过按下按键 K5 可以让台灯变暗,按下按键 K6 可以让台灯变亮。其余几个 S1 到 S4 按键可以对时钟进行设置调节,并调节 设置闹铃,当时间与设置的时间一致是闹铃报警,即蜂鸣器响。

基于Arduino开发平台下智能台灯的设计

基于Arduino开发平台下智能台灯的设计

大多数智能产品原型设计的需要。[2] 1 总体设计 智能台灯的系统首先通过集成蓝牙 4.0 的 Arduino 主控板
与手机蓝牙模块连接,进而与手机端建立通信协议,用 Arduino1.6.8 开发环境向 Arduino 主控板烧录分功能程序代码,实 现台灯功能的设计。手机 APP 通过继电器来控制台灯开关, 灯泡应用雷达感应球,感知人体和光亮变化,再而控制台灯的 开关。台灯通过 UNO 开发板与 Bluno Accessory Shield 扩展 板的连接,其中 RGB LED 集成于扩展板,可以通过手机 APP 显示丰富的颜色,具有良好的夜光效果,并且可实现温度湿度 等环境变量通过 128x64 OLED 显示屏显示手机 APP 端输入 的字符的功能,电路硬件连接图如图 1,2 所示。[4-5]
学科探索
基于 Arduino 开发平台下智能台灯的设计
侯羽张黔
(北京林业大学理学院 北京 100083)
摘 要 Arduino 是目前较为流行的电子互动平台,基于 Arduino 系统的开发,可以制作出集成度高,使用简单的产品,
因为其烧录程序简单,与扩展板和传感器的兼容性较高且价格低廉的特点,在互动电子系统的开发上得到了广泛的应
Abstract The Arduino is a currently popular electronic interactive platform, based on the single-chip microcomputer system development, which can produce an easy-to-use with a high level of integration product. Because of its characteristics of simple burning process, high compatibility with extended board and sensor and the low price, Arduino is widely used in the aspects of electronic system design and interactive product developments. This design is based on the 4.0 Arduino UNO board integrated bluetooth, combining with the characteristics of the development of Smart Home, using the rich integration capabilities of Accessory shields extension board, which realizes the two big functions of showing the corresponding parameters of acquisition through the phone APP and automatic extinguished lamp when people leave the room. Finally, we achieve a high efficiency and energy saving, low cost with a favorable user experience intelligent lamp. Key words Electronic Information Engineering; Intelligent lamps; Arduino; Bluetooth

Arduino创意设计:炫彩LED灯

Arduino创意设计:炫彩LED灯

我 们 知道 ,
R GB灯 分 别 连 接 A r d u i n o板 的数 字 端 口5 、6 、9,
只要 分 别将 3个 数 字 端 口设 置 为高 电平 并 上 传
“ 淀 粉 ”们 ,制 作 ቤተ መጻሕፍቲ ባይዱ 了炫 彩 L E D灯 ,可 以 用
3 1 )软 件 为 它 设 计 一 个 漂 亮 的 外 观 ,再 用 3 D打 印 机打 印 出来 。这样 一来 我们 的作 品就 更有 价值 了 , 期待大 家 的精 彩分 享 !

A r d u i n o板 的 数 字 端 口 3 、5 、6、9 、
1 0 、1 1 也 可 以作 为模 拟 输 出端 口使 用 ,取
值 范 围 为 0~2 5 5 ,为 了便 于 识 别 ,板 子 上 都标记 了波浪线 。
要 编 程 控 制 R GB灯 每 一 个 灯 的 亮 度 ,我 们 需 要 定 义 3个
择 红 、 绿 、 蓝 、 灰 4种 颜色 的 “ 针 一孔 ” 类 型
Ar dui n o UR O

圈 盘 两 I
鳕 ■I
l 1块
的 杜 邦 线 ,连 接 方 式 如 下 :红 色 线 接 R针 脚 , 绿 色 线 接 G 针 脚 ,蓝 色
U S B 数 据 线 嘲 谶
些 舞 台灯 是 由一 个 个三 色 L E D灯 组成 的 。它们 也 被
称为 R GB灯 。
四种颜色依次变换阿烁的效果。R GB灯在封装过程
中有 三 种 封 装 形 式 : 四脚 共 阴 极 、 四脚 共 阳极 和 两 脚 自带 l C控 制 I 一 般也 称 为七彩 了解 了R GB灯 的 相 关 知 识 ,我 们 就 可 以 利 用 开 源 硬 件 Ar d u i n o  ̄开源 软 件 Mi x l y来 动 手设 计 一款炫 彩 L E D灯 。

Arduino台灯(课件)

Arduino台灯(课件)
许多家长给孩子买来护眼灯,以求保护视力,它 既能提供令人舒适的光照空间,又能很好地满足人的 生理健康需求,是环保的健康光源。长期使用可保护 视力,预防近视。
接下来我们尝试用按键开关,来控制LED灯的开关
二、认识硬件
知识点——按键模块
按键传感器是Arduino学习入门数字开关量输入模块, 通过编程可以实现发光灯控制,发声器控制,LCD显示按键 选择功能等。五色按键帽满足你的所有场景需求,美观实 用,手感舒适,按制传感器可在各种单片机控制器上应用, 尤其在Arduino控制器上更为简单,通过3P传感器连接线插 接到Arduino专用传感器扩展板上,按下按键输出高电平, 本按制传感器具有五色可选,红色,蓝色,绿色,黑色,白色.当按 制按下时为低电平,按制松开时为高电平。
数字输入模块可以检测到两种状态: 高电平状态:可以用数字1表示 低电平状态:可以用数字0表示
复习——数字信号
第一节课我们学过如何点亮LED灯,我们用数字输出模块来点亮,高代表亮、低代表亮。
数字输入即二进制数字信号的输入,二进制只有0和1,所以数字输入也只有0和1两种状 态,之所以采用二进制数字表示信号, 其根本原因是电路只能表示两种状态,即电路的通与 断。
台灯
一、什么是台灯?
复习之前所学过的LED灯
点亮LED灯
流水灯
呼吸灯
光敏灯 声光控制灯
除了利用编程程序来控制灯的亮度和开关,我们还可以用物理开关来控制灯
拨动开关 拉线开关
闸刀开关 按键开关
台灯的控制方式
台灯,一般指放在桌子上用的有底座的电灯,带 有开关功能,控制方式有:开关控制,触控式,亮度 可调式,甚至声控。
知识点
电源要求:+3.0V -5.5V 信号类型:数字信号 接口模式: XH2.54 × 3 引脚定义:S-信号,V-电源,G-地 尺寸:23*30mm

关于触摸屏的LED彩色台灯控制系统设计

关于触摸屏的LED彩色台灯控制系统设计

关于触摸屏的LED彩色台灯控制系统设计摘要:本文针对现有的彩色台灯控制系统,提出了一种基于触摸屏的控制方式,并设计了相应的硬件和软件系统。

该系统采用了较为简便的触摸屏操作,能够方便用户进行灯光调节和颜色选择。

此外,该系统还会在触摸屏上显示当前的灯光状态和选定的颜色,提高了用户体验。

实验结果显示,该系统稳定可靠,操作简单,色彩效果良好。

关键词:触摸屏;LED彩色台灯;控制系统;硬件;软件正文:一、引言随着人们对生活质量的要求越来越高,LED彩色台灯逐渐成为了人们生活中的必需品。

然而,现有的控制系统多采用红外遥控的方式,不仅操作麻烦,而且容易出现干扰问题。

为了解决这些问题,本文提出了一种基于触摸屏的控制方式,并设计了相应的硬件和软件系统。

二、系统硬件设计本系统使用的彩色台灯采用了三原色LED灯珠,可任意搭配产生各种颜色。

该系统核心硬件主要包括STM32微控制器、LED控制芯片和触摸屏模块。

其中,STM32微控制器是整个系统的中央处理器,负责控制LED灯的亮度和颜色,以及接收触摸屏操作。

LED控制芯片通过PWM调节电流来控制LED灯的亮度,而触摸屏模块则通过串口与STM32微控制器通信,实现灯光调节和颜色选择等功能。

三、系统软件设计该系统的软件设计主要涉及到两个方面:一是LED灯控制驱动程序,二是触摸屏操作程序。

LED灯控制驱动程序主要实现色彩混合和亮度调节功能,采用了PWM脉宽调制方式,以提高LED灯的控制精度。

触摸屏操作程序采用了STM32的IO库和触摸屏库,支持用户手指平移滑动和点击触控来实现操作功能。

四、系统实验结果本系统经测试表明,系统各部分均运行稳定,且该系统具备操作简便、灯光调节精度高、色彩效果良好的优点。

此外,该系统还会在触摸屏上显示当前灯光状态和选定的颜色,方便用户了解当前灯光情况。

五、总结与展望本系统通过引入触摸屏操作方式,实现了对LED彩色台灯的精准控制,使得系统操作更为方便快捷,同时也提高了用户的交互体验。

触摸变色台灯

触摸变色台灯

触摸变色台灯七彩台灯制作的元器件如下(元器件图在文件夹中):1、L ight Disc with 7 SMD RGB LED(彩LED灯)七彩LED灯(1).jpg (58.6 KB)2、D FRduino Nano主控芯片为ATMEGA328P板子DFRduino Nano.jpg (57.5 KB)3、C apacitive Touch Sen so 触摸开关)触摸开关.jpg (73.16 KB)4、U SB下载线一条USB下载线.jpg (72.29 KB)5、面包板一块及插针、导线若干面包板.jpg (82.31 KB)6、小纸杯一个(本来是用来罩住七彩LED灯产生绚丽效果,但是未找到合适的)七彩台灯的开发环境为Arduino,版本为arduino-0022(同上回LED魔方版本一样)。

代码大致过程是:首先确定能产生PWM信号的AVR单片机数字I/O引脚(D3、D5、D6、D9 D10、D11)用于控制RGB_LEDt彩灯的电平给入,选择D9 控制七彩灯的G引脚,D10控制七彩灯的R引脚,D5控制七彩灯的B引脚。

而单片机D2引脚控制触摸开关电平的读取。

选择定时器T/C0为外部中断,每当触摸开关电平改变,触发一次中断。

T/C2为内部溢出中断(此内部中断为普通工作模式),设定为每2ms溢出一次。

当程序下载完成,七彩灯不工作,长按触摸开关5s,彩灯处于普通模式下,再触摸开关3s,进入调光模式,调光模式下彩灯一直处于多种色彩循环亮状态。

最后长按5s 触摸开关,彩灯关闭。

(如DV 拍摄视频所示) 注:由于标志位太多,逻辑比较复杂,不大好控制,因此,暂时写这么一点小小的功能,更多功能后续补加。

复制内容到剪贴板代码:#define touch2// 设置触摸的数字IO 脚2#define LED_R10/全彩灯红色#define LED_G9/全彩灯绿色#define LED_B5/全彩灯蓝色void setup(){pinMode(touch,INPUT);〃设置数字10引脚2为输入pinMode(9,OUTPUT);〃设置数字IO引脚为输出pinMode(10,OUTPUT);〃设置数字IO引脚为输出pinMode(11,OUTPUT);〃设置数字IO引脚为输出analogWrite(LED_R,0);〃设置第10引脚为高电平,点亮led灯analogWrite(LED_G,0);〃设置第9引脚为高电平,点亮led灯analogWrite(LED_B,0);//设置第5引脚为高电平,点亮led灯timer2_init();// 初始化定时器2attachInterrupt(O, blink, CHANGE); //设置为0 号中断,中断函数blink,触发方式为change}void timer2_init(void)// 定时器2 初始化//TCCR2A = 0X00;TCCR2B = 0X07; 时// 钟源1024分频TCNT2 = 224;//2ms 溢出一次TIMSK2 = 0X01; /允/ 许中断}volatile int flag = 0;//中断状态volatile int flag_1 = 0;//工作状态标识volatile int flag_2 = 0;//工作状态标识volatile int flag_s = 0;//中断标识volatile int T = 0;// 声明volatile int 量void loop(){if(flag_s == 1)//开机状态下----可以预设为读取EPROM中的值{ analogWrite(LED_R,200);analogWrite(LED_G,100);analogWrite(LED_B,100); }if(flag_s == 2)//关机状态下analogWrite(LED_R,0);analogWrite(LED_G,0);analogWrite(LED_B,0);if(flag_s == 3)// 调光模式下{ analogWrite(LED_R,155); analogWrite(LED_G,0); analogWrite(LED_B,0); delay(200);analogWrite(LED_R,0); analogWrite(LED_G,155); analogWrite(LED_B,0); delay(200);analogWrite(LED_R,0);analogWrite(LED_G,0);analogWrite(LED_B,155);delay(200);analogWrite(LED_R,255);analogWrite(LED_G,100);analogWrite(LED_B,0);delay(200);analogWrite(LED_R,255);analogWrite(LED_G,0);analogWrite(LED_B,100);delay(200);analogWrite(LED_R,100); analogWrite(LED_G,255); analogWrite(LED_B,0); delay(200);analogWrite(LED_R,0); analogWrite(LED_G,255); analogWrite(LED_B,100); delay(200);analogWrite(LED_R,255); analogWrite(LED_G,100); analogWrite(LED_B,0); delay(200);analogWrite(LED_R,255);analogWrite(LED_G,0);analogWrite(LED_B,100);delay(200);analogWrite(LED_R,255);analogWrite(LED_G,100);analogWrite(LED_B,100);delay(200);analogWrite(LED_R,100);analogWrite(LED_G,255);analogWrite(LED_B,100);delay(200);analogWrite(LED_R,100);analogWrite(LED_G,100);analogWrite(LED_B,255);delay(200);analogWrite(LED_R,255);analogWrite(LED_G,255);analogWrite(LED_B,255);delay(200);}}void blink()// 外部中断执行函数{if(digitalRead(touch) == 1){switch(flag_1){case (0)://持续触碰按键5s,自动开机{flag = 1;break;}case (1):{if(flag_2 == 0)//持续触碰按键5s,自动关机{flag = 3;}if(flag_2 == 1)//调光模式{flag = 2;}break;}}if(digitalRead(touch) == 0){flag = 0;}}ISR(TIMER2_0VF_vect)定时器2,2ms中断溢出一次.内部溢出中断执行函数{ TCNT2 = 224;//给定时器计时初值if(flag == 1)// 开启台灯{T ++;if(T>=2500){flag_s = 1;//到5 秒标志开启台灯T = 0;flag_1 = 1;}}if(flag == 2)// 关闭台灯{T ++;if(T>=2500){flag_s = 2;// 到5 秒标志关闭台灯T = 0;flag_1 = 0;flag_2 = 0;}}if(flag == 3)// 调光模式{T ++;if(1500<= T && T <2500){flag_s = 3;// 到3 秒标志调光模式T = 0;flag_2 = 1;}}}。

基于Arduino平台的三维手势感应台灯设计与实现

基于Arduino平台的三维手势感应台灯设计与实现

基于Arduino平台的三维手势感应台灯设计与实现李袁媛;林尹雅;李想;陈玉林【摘要】台灯在人们生活工作中有广泛应用,文章设计实现了一款基于Arduino平台的三维手势感应台灯.以Arduino平台为控制核心,通过电路设计实现Arduino 控制板与手势模块以及超声波测距模块的连接,用以实现识别3组不同的手势的功能.此台灯系统利用3组常见手势分别控制台灯的亮灭,光源之间的切换以及台灯亮度调节.采用数字与模拟信息双读取实现对灯源的控制.设计实验结果表明,所设计的台灯实现了预设的3个主要功能.【期刊名称】《无线互联科技》【年(卷),期】2018(015)015【总页数】4页(P70-73)【关键词】Arduino;手势传感;台灯;非接触红外感应;超声波【作者】李袁媛;林尹雅;李想;陈玉林【作者单位】东南大学成贤学院电子与计算机工程学院,江苏南京 210000;东南大学成贤学院电子与计算机工程学院,江苏南京 210000;东南大学成贤学院电子与计算机工程学院,江苏南京 210000;东南大学成贤学院电子与计算机工程学院,江苏南京 210000【正文语种】中文随着科学技术的发展,越来越多的产品开始运用人机交互技术,这使得越来越多新的人机交互基础涌现并快速发展。

相比传统上的键盘输入、鼠标输入等模式,手势感应控制技术以其便捷、高效的特点进入人们视野并受到广泛关注[1-2]。

而手势识别的研究实际聚焦于手的时空轨迹,以识别不同的手势运动进行操作来提高使用者操作时的交互体验[3]。

开关作为一种控制元件,在电子设备中控制着电路的接通与断开[4]。

目前电子器件的开关控制类型基本有机械开关控制、电子控制以及传感器控制3种。

机械开关的可靠性较低,易受外界条件的影响,而目前较受推崇的电子控制,虽然提高了稳定性,但这种感应式触摸开关无法在空气潮湿或有金属影响的环境下,并且在黑暗状态下使用者不易找到触点位置[5-7]。

这类触摸开关基于裸手指的单词触碰使电路内部输出阶跃或脉冲信号,分为人体电磁感应式以及遮挡式两种,都需要人体接触到固定触点位置从而实现控制作用[6,8]。

一种基于Arduino的新型智能台灯设计

一种基于Arduino的新型智能台灯设计

www�ele169�com | 31智能应用1 背景及意义能源是人类活动的物质基础。

在某种意义上讲,人类社会的发展离不开优质能源的出现和先进能源技术为之提供动力。

在当今世界,能源的发展,能源的可循环利用,如何大力发展可再生能源,是全世界、全人类共同关心的问题也是我国乃至世界为之不断研究的方向[1]。

国际能源机构(IEA)发布的《2009世界能源展望》报告认为2007年到2030年,全球一次能源需求量会以每年1.5%的速度增长,从120亿吨油当量增长到168亿吨油当量,总体增幅达40%。

由于世界能源的紧张现状,新能源将被大量使用。

太阳能将会逐渐影响我们寻常的生活[2]。

针对目前这一情况,我们以日常生活中如何高效转换太阳能为切入点,结合仿生学理念,模拟向日葵的外形及其追日的特点,定时调整太阳能电池板以跟踪最大光强位置,使之最大程度地利用太阳能,达到高效利用太阳能的目的。

2 方案设计该新型智能台灯由微控制器及其外围电路模块、光电检测模块、步进电机驱动模块、电源模块、LED 照明模块、等五大模块构成。

微控制器会根据光电检测模块返回的数据自动判断天气情况以确定是否追日,其中光电检测模块由四个光敏电阻构成,四个电阻分别代表东西南北四个方向,可以根据四个光敏电阻的阻值判断最大光强位置。

步进电机驱动模块由位于太阳能电池板下面的两个互相垂直的步进电机构成,可以带动太阳能电池板的旋转和俯仰。

太阳能电池板转换的电能可以储存在电源模块里以供LED 照明,LED 照明模块选用16颗高亮度白光LED。

当晴天光照充足时,微控制器通过步进电机驱动模块控制太阳能电池板追日;当阴天光照不足时,为节省电能,太阳能电池板停止运动。

3 创新性设计以下是该项设计所具有的创新点:(1)仿生理念作者借鉴向日葵追日的特点并结合仿生理念,在白天将太阳能转换为电能的时候,为实现节能和太阳能的最大利用率,设计每半小时追踪一次太阳的方向,以实现太阳能电池板正对太阳。

自制触摸台灯

自制触摸台灯
MCROPRON1_1
开关电 220V 源模块 9V
Q2 9015
R12 560k
Q1 9014 FL PNC 触摸极板
继电器线色
R1 C1 22k 4700μ R3
R2
2.2k R8
R4
1k
10k R6 Q3 10k
9014
D1 1N4001
10k Q4 R7 9014 10k
D2
1N4001
Байду номын сангаасJ E1 继电器
现在基本的框架已经出来了。电路整理如下: 电路元件都是常用元件,非常适合自制,电路也比 较简单,所以我也没画 PCB(印刷线路板)板图,就用实 验板焊接了!先做一张做好的板子,实验证明效果良 好。我的极板用的是废万用表的底表盘,接其中的相近 的两环。也可以用两根导线平行放置! 荨
220V 电 源插头
D3 触点 LEO
Q6 8030
R5
R10 22Ω 1k
C1 47μ
C? 47μ
C2 47μ
图 1 自制触摸台灯电路原理图 家电检修技术 2010 年第 3 期 ( 总 161 页 ) 49
好了废话不多说,开始我的设计思路。 (1)选择 555 做主控芯片,这是最经典的触摸台灯 电路,价格也不贵,单极板触摸,通过 RC 放电来完成, 其电容器和电阻的大小决定了灯亮的时间。但这又一 个缺点就是你触摸一下,灯亮了,但是却不能关,必须 等到 RC 放电完才行,若 RC 设置的短一点,有时需要频 繁的触摸,显得不是很方便。 (2)有没有那种电路能让他摸一下灯亮,再摸一下 灯灭,对了你可能已经想到了双稳态触发电路。这种电 路输出就有两种状态,要么是 0,要么是 1,而且功耗极 低,前级加个放大电路就行了,简单实用。 控制电路既弱电控制强电,无非就是可控硅,或继 电器。 我的设计采用继电器,并且双重隔离,确保就算是 电路出问题了,人触摸时不会触电,这一点非常重要。 因为我看过有的厂家设计时为了减少成本,采用晶闸 管,电源采用阻、容降压的方式,我告诉你这种方式很 危险,一旦电子元件击穿,人体触摸时就形同触摸火

触控台灯的设计与制作

触控台灯的设计与制作

触控台灯的设计与制作摘要:21世纪,人类迈进了信息社会的崭新时代,信息社会的基础是电子技术。

随着电子技术的迅猛发展,它在各个工业领域的应用更加广泛。

社会对电子产品的需求也日益增多,对电子产品的要求也越来越来高。

当今电子技术应用的飞速发展,及其应用范围不断扩大。

可以说,在人们的日常生活生产中处处都离不开电子产品,它打破了人们的传统设计思想,很多都应用模拟电路、脉冲数字电路、逻辑部件来实现的功能,凭借其操作简便、智能化程度高、体积小、集成度高、功能强大、抗干扰能力强、可靠性高等独特的优点,在各个领域都得到了广泛的应用,尤其是家用电器领域发挥了更大的作用。

关键词:单稳态触发器、晶闸管、驱动电路本设计通过触摸台灯的金属部分就能控制台灯的开与关以及亮度。

同时也可以通过键控实现控制功能。

该设计主要采用模拟电路,数字电路以及电力电子的相关知识。

同时在制造电路板的过程中也运用了PCB设计的有关知识及软件。

一、硬件设计触控式台灯的工作过程是内部安装电子触摸式芯片与台灯触摸处之电极片形成一控制回路。

当人体碰触到感应之电极片,触摸信号藉由脉动直流电产生一脉冲信号传送至触摸感应端,接着触摸感应端会发出一触发脉冲信号,就可控制开灯;如再触摸一次,触摸信号会再藉由脉动直流电产生一脉冲信号传送至触摸感应端,此时触摸感应端就会停止发出触发脉冲信号,当交流电过零时,灯自然熄灭。

(—)、设计思路该装置电路(见附图一)。

当人手碰一下金属触片A,人体上的杂波信号便通过C3加到时基电路的2脚,2脚被触发,整个触发器翻转,3脚输出高电平,输出经限流电阻R加到可控硅控制极,可控硅VS导通,ZD点亮。

需要关灯时,用手碰一下金属片B,感应信号经C4加到时基电路的6脚时,6脚被触发,3脚输出低电平,可控硅失去触发电流而截止,电灯熄灭。

电路中的C3、C4是耦合电容,又能防止因个别元件的破坏而造成的麻电现象。

电路中的C1、C1、VD、VDW组成6V直流供电电源。

Arduino-uno自己DIY(制作与调试)

Arduino-uno自己DIY(制作与调试)

Arduino uno的制作与调试Arduino由一个基于单片机的开放源码的硬件平台和一套专的开发门环境组成.它可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备.经过两个星期的对三块Arduino uno板子的焊接与调试,我已经大概比较熟练的掌握了贴片元件及一些小芯片的焊接技术.现在我想讲讲Arduino uno rev1 这块板子的制作与调试过程。

一、焊接由于Arduino uno rev1 的硬件是开源的,所以我们可以直接拿来用.1. 拿到PCB板(图1)图1 Arduino uno rev1 PCB2. 根据元器件清单购置元器件元器件清单如图2。

图2 元器件清单3. 焊接元器件根据图3来焊接元器件。

图3 PCB焊接图这里我想说说焊接的方法与技巧(供初学者参考).这块板子中还是有存在一些比较难焊的地方。

1)芯片ATmega8U2Arduino UNO与之前Arduino 2009版本的最大不同在于USB转串口部分,Arduino 2009采用的是FTDI专用芯片FT232RL,而Arduino UNO采用的是用一块ATmega8U2模拟出串口的做法.这一改动着实带来了不小的麻烦,第一是该方案所采用的ATmega8U2芯片基本上在市场上很难找到,另外一点就是该芯片的封装加大了焊接的难度和成本。

芯片ATmega8U2的封装很小,而且它芯片的外面没有引脚,可以看到的是它的焊盘非常的小。

焊接方法为:在各个焊盘上滴上锡,完了后检查一下有没有焊盘连接在一起的,然后用镊子夹住芯片ATmega8U2,小心的对准位置,对准后用镊子压住芯片,用电烙铁在一边的周围滑动加热,使得焊盘上的锡熔化,则芯片的引脚就焊在了焊盘上,同样的,其他三边也这样。

焊完之后用万用表检查一下。

2)贴片晶振及其他的贴片元器件因为左手是拿镊子夹住器件对准位置,右手拿电烙铁,所以没有另外的手来添加焊锡。

台灯触摸板的制作方法

台灯触摸板的制作方法

台灯触摸板的制作方法介绍台灯触摸板能够实现触摸式控制,不仅方便而且也具有时尚感。

本文将会介绍台灯触摸板的制作方法,包括硬件设计、软件开发和调试。

硬件设计材料我们需要准备以下材料:•蓝牙模块:用于连接模块和手机。

•感应器(触摸板):可以是电容式触摸板或电阻式触摸板。

•电容模块:用于处理和放大信号。

•电源模块:用于供电,建议使用5V电源提供稳定电压。

步骤1.设计原理图:根据材料准备原理图。

2.PCB设计:进行PCB布局和连线设计。

3.元器件加工和焊接:将电子元器件焊接到基板上。

4.安装触摸板:将触摸板放在设计好的位置上,并将电源线和触摸板线连接到PCB板上。

5.测试:进行电气测试和固件调试。

软件开发软件工具我们将采用以下软件工具:•Arduino:用于编写控制程序。

•Fritzing:用于电子电路设计。

软件开发1.下载并安装Arduino和Fritzing软件。

2.在Fritzing中使用相应组件构建电路图,并导出PCB图。

3.根据Fritzing中的PCB图来焊接电路板。

4.在Arduino中编写程序并上传至板子中。

程序中要实现触摸板的控制,将信号通过蓝牙模块发送至手机来实现台灯的控制。

5.进行电气测试和固件调试。

调试在硬件和软件部分完成后,您需要进行调试来确保台灯触摸板正常工作。

1.连接蓝牙:打开手机蓝牙,寻找可连接的设备并连接。

2.触摸:在触摸板上点击不同的区域查看是否能够正常触发和判断不同的触摸指令。

3.控制台灯:使用触摸板控制台灯的开关和亮度,查看是否能够正常工作。

结论本文介绍了台灯触摸板的制作方法,包括硬件设计、软件开发和调试。

希望这篇文章对您有帮助,能够让您自己制作一个可爱又实用的台灯触摸板。

基于arduino的智能led台灯设计

基于arduino的智能led台灯设计
通过电位器的分压来改变 LED 的亮度。转动旋钮,即 可改变当前台灯的亮度。在此模式下,LED 的亮度可随意 调节,不受环境光照强度的限制,满足人们的不同需求。
2.4 LM35测温电路
2.4.1 LM35简介
LM35 是一款精密的 Celsius 集成温度传感器,其输出 电压和温度呈线性关系 [8]。
高新技术
2020 NO.1(上) 中国新技术新产品
基于ARDUINO的智能LED台灯设计
陈晶晶 吴治帆 宋 康 (四川大学机械工程学院,四川 成都 610065)
摘 要 :针对传统台灯不能自动调光的问题,为了保证人们的用眼健康,设计了一套智能 LED 台灯。该设计方案
的特点在于以 ARDUINO 为主控单元,利用程序就能实现自动调光,满足人眼的动态需求,且不需要过多的硬
的触摸传感器实现,触摸一次台灯则工作模式自动切换。5) 台灯光照强度的手动改变则由电位器完成,调节旋钮即可改 变光强。6)环境温度信号采集由 LM35 温度传感器完成,直 接输出对应的电模拟压值,程序处理后在 LCD1602 液晶显示 屏上显示。
热小、响应速度快、安全电压低、耐候性好、方向性好等优 点 [4]。因此该文采用 LED 作为光照器件,设计一款具备自动 调节亮度、温度显示和声控开关等功能的智能 LED 台灯,满
表1串口显示输出电压结果输出电压模拟值mv环境光强变暗电位器分压逐渐增大81211105864816941788571503372634523262944945175结语该文以arduino开发板为核心以光敏电阻传感器为辅助器件提出了一种自动调节台灯光强的新思路其能直接对光强信号进行软件处理达到自适应的目的节约硬件的使用简单方便
LM35 是一种电压型输出传感器,每升高 11 ℃,温度 从 -50 ℃上升至 150 ℃,电压增加 10 mV[9]。通过对 LM35 传感器的输出电压值进行处理得到空气温度。 2.4.2 LM35测温

触摸变色台灯

触摸变色台灯

触摸变色台灯七彩台灯制作的元器件如下(元器件图在文件夹中):1、Light Disc with 7 SMD RGB LED(七彩LED灯)七彩LED灯(1).jpg (58.6 KB)2、DFRduino Nano(主控芯片为ATMEGA328P)板子DFRduino Nano.jpg (57.5 KB)3、Capacitive Touch Sensor(触摸开关)触摸开关.jpg (73.16 KB)4、USB下载线一条USB下载线.jpg (72.29 KB)5、面包板一块及插针、导线若干面包板.jpg (82.31 KB)6、小纸杯一个(本来是用来罩住七彩LED灯产生绚丽效果,但是未找到合适的)七彩台灯的开发环境为Arduino,版本为arduino-0022(同上回LED魔方版本一样)。

代码大致过程是:首先确定能产生PWM信号的AVR单片机数字I/O引脚(D3、D5、D6、D9、D10、D11)用于控制RGB_LED七彩灯的电平给入,选择D9控制七彩灯的G引脚,D10控制七彩灯的R引脚,D5控制七彩灯的B引脚。

而单片机D2引脚控制触摸开关电平的读取。

选择定时器T/C0为外部中断,每当触摸开关电平改变,触发一次中断。

T/C2为内部溢出中断(此内部中断为普通工作模式),设定为每2ms溢出一次。

当程序下载完成,七彩灯不工作,长按触摸开关5s,彩灯处于普通模式下,再触摸开关3s,进入调光模式,调光模式下彩灯一直处于多种色彩循环亮状态。

最后长按5s触摸开关,彩灯关闭。

(如DV拍摄视频所示)注:由于标志位太多,逻辑比较复杂,不大好控制,因此,暂时写这么一点小小的功能,更多功能后续补加。

复制内容到剪贴板代码:#define touch2//设置触摸的数字IO脚2#define LED_R10//全彩灯红色#define LED_G9//全彩灯绿色#define LED_B5//全彩灯蓝色void setup(){pinMode(touch,INPUT);//设置数字IO引脚2为输入pinMode(9,OUTPUT);//设置数字IO引脚为输出pinMode(10,OUTPUT);//设置数字IO引脚为输出pinMode(11,OUTPUT);//设置数字IO引脚为输出analogWrite(LED_R,0);//设置第10引脚为高电平,点亮led灯analogWrite(LED_G,0);//设置第9引脚为高电平,点亮led灯analogWrite(LED_B,0);//设置第5引脚为高电平,点亮led灯timer2_init();//初始化定时器2attachInterrupt(0, blink, CHANGE); //设置为0号中断,中断函数blink,触发方式为change}void timer2_init(void)//定时器2初始化//{TCCR2A = 0X00;TCCR2B = 0X07; //时钟源1024分频TCNT2 = 224;//2ms溢出一次TIMSK2 = 0X01; //允许中断}volatile int flag = 0;//中断状态volatile int flag_1 = 0;//工作状态标识volatile int flag_2 = 0;//工作状态标识volatile int flag_s = 0;//中断标识volatile int T = 0;//声明volatile int量void loop(){if(flag_s == 1)//开机状态下----可以预设为读取EPROM中的值{analogWrite(LED_R,200);analogWrite(LED_G,100);analogWrite(LED_B,100);}if(flag_s == 2)//关机状态下{analogWrite(LED_R,0); analogWrite(LED_G,0); analogWrite(LED_B,0);}if(flag_s == 3)//调光模式下{analogWrite(LED_R,155); analogWrite(LED_G,0); analogWrite(LED_B,0); delay(200); analogWrite(LED_R,0); analogWrite(LED_G,155); analogWrite(LED_B,0); delay(200); analogWrite(LED_R,0); analogWrite(LED_G,0); analogWrite(LED_B,155); delay(200); analogWrite(LED_R,255); analogWrite(LED_G,100);analogWrite(LED_B,0); delay(200); analogWrite(LED_R,255); analogWrite(LED_G,0); analogWrite(LED_B,100); delay(200); analogWrite(LED_R,100); analogWrite(LED_G,255); analogWrite(LED_B,0); delay(200); analogWrite(LED_R,0); analogWrite(LED_G,255); analogWrite(LED_B,100); delay(200); analogWrite(LED_R,255); analogWrite(LED_G,100); analogWrite(LED_B,0); delay(200); analogWrite(LED_R,255); analogWrite(LED_G,0); analogWrite(LED_B,100);delay(200);analogWrite(LED_R,255); analogWrite(LED_G,100); analogWrite(LED_B,100); delay(200);analogWrite(LED_R,100); analogWrite(LED_G,255); analogWrite(LED_B,100); delay(200);analogWrite(LED_R,100); analogWrite(LED_G,100); analogWrite(LED_B,255); delay(200);analogWrite(LED_R,255); analogWrite(LED_G,255); analogWrite(LED_B,255); delay(200);}}void blink()//外部中断执行函数{if(digitalRead(touch) == 1){switch(flag_1){case (0)://持续触碰按键5s,自动开机{flag = 1;break;}case (1):{if(flag_2 == 0)//持续触碰按键5s,自动关机{flag = 3;}if(flag_2 == 1)//调光模式{flag = 2;}break;}}}if(digitalRead(touch) == 0){flag = 0;}}ISR(TIMER2_OVF_vect)//定时器2,2ms中断溢出一次.内部溢出中断执行函数{ TCNT2 = 224;//给定时器计时初值if(flag == 1)//开启台灯{T ++;if(T>=2500){flag_s = 1;//到5秒标志开启台灯T = 0;flag_1 = 1;}}if(flag == 2)//关闭台灯{T ++;if(T>=2500){flag_s = 2;//到5秒标志关闭台灯T = 0;flag_1 = 0;flag_2 = 0;}}if(flag == 3)//调光模式{T ++;if(1500<= T && T <2500){flag_s = 3;//到3秒标志调光模式T = 0;flag_2 = 1;}}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

with the necessary connecting hardware. The circuit will be using 3 RGB LEDs. These are common-anode Piranha type available here and contains three LEDs within its body. Each color will need a single dropping resistor (220-ohm for green and blue and 330-ohm for Red). We can also add a small LED with a 1k-ohm as an indicator. The IC we are using is an ATMega-328 microchip, available for about $5 here You will also need a 16Mhz resonator for about 35c, also available at the same site. The development and testing of the software is done using the Arduino system, so a suitable 'host' is necessary. I've used an Arduino 'Nano', a Boarduino and a RBBB board and they all work fine.
Image Notes 1. Modern Device's RBBB (with an ATMega328) acting as the host. Then the 328 is moved over to the circuit board when we're ready. 2. A "USB BUB board" to connect to the chip, and to provide power.
Arduino multi-mode lamp with soft touch switch
by qs on April 24, 2009
Table of Contents Arduino multi-mode lamp with soft touch switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Step 2: Getting started
It is a very good idea to put the microchip in a socket. Here, I've used 2 x 16-pin sockets end-to-end, because that is what I have available... The ATMel chip only has 28w empty sockets on the end. In this picture, the LEDs are along the bottom, with a resistor for each of the primary colors. The little pushbutton on the left is for the Reset, although this is not strictly needed. The yellow blob in the center is the resonator. After I've done the preliminary wiring, the circuit (and programming) is tested through jumpers connected to the 'host', an RBBB (Really Bare Bones Board ), also from Modern Devices. This lets me make sure the wiring is correct before we commit the Microchip. The process is quite straightforward - run / test with the host, then simply transplant the IC over to the circuit board.
Intro: Arduino multi-mode lamp with soft touch switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Step 1: What is needed? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Step 2: Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Step 3: A quick test... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Step 4: The circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Step 5: The 'Sketch', or program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Step 6: The latest sketch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Intro: Arduino multi-mode lamp with soft touch switch
In this Arduino-based project, we will build a lamp with multiple light displays: color sequencer, dimming light, color chaser, firelight - all selected by a touch bar on the circuit board.
相关文档
最新文档