LED频闪照明控制器.docx

上传人:时光煮雨 文档编号:14893193 上传时间:2022-02-23 格式:DOCX 页数:10 大小:173.52KB
返回 下载 相关 举报
LED频闪照明控制器.docx_第1页
第1页 / 共10页
LED频闪照明控制器.docx_第2页
第2页 / 共10页
LED频闪照明控制器.docx_第3页
第3页 / 共10页
LED频闪照明控制器.docx_第4页
第4页 / 共10页
LED频闪照明控制器.docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《LED频闪照明控制器.docx》由会员分享,可在线阅读,更多相关《LED频闪照明控制器.docx(10页珍藏版)》请在三一文库上搜索。

1、西安文理学院机械与材料工程学院课程设计报告专业班级2012级自动化1班课 程LED频闪照明控制器课程设计题 目LED频闪照明控制器学 号学生姓名指导教师2015年12月LED频闪照明控制器的设计方案一.设计要求1.本设计的闪烁LED灯控制器,可使小灯间隔闪烁;2.功率大约30W(可调);3.周期大于0.5秒(可调);4.频率小于2赫兹(可调);5.频闪时间小于40毫秒;6.可显示周期,频率;7.电源9-12V二.设计方案1.在用户角度,设计控制器的功能界面 LED接口 周期频率显示 输出开关闪烁周期频闪时间电源开关闪烁周期频闪时间图说明:(1)出于用户的角度考虑,为了更方便的操作,故设计一个电

2、源开关,使接入LED灯后,即可开始工作。(2)为了用户方便调节LED灯的频闪时间和闪烁周期,设置两个调节旋钮,通过旋转频闪时间旋钮便可实现对灯闪烁频率的调节,旋转闪烁周期旋钮可实现灯闪烁周期的调节。(3)为了用户方便的看到调节的参数,故设计两个LED小灯(作为指示灯)和一个显示屏,当周期灯亮时,屏幕显示LED小灯闪烁周期;当频率灯亮时,屏幕显示LED小灯闪烁频率,两个参数交替显示时间为3秒。(4)按用户需求,LED灯的开关需要是可控的,故设计一个开关控制LED灯的亮灭。2根据上述设计的需求,从用户角度考虑,设计以下模块(1)CPU模块:为了满足实际应用对实用性的要求,实现现场数据采集和信号输出

3、,作为该设计核心,可实现人机界面的交互操作和显示。(2)电源模块:为了实际设计集成电路和LED等的供电,电源模块必不可少。(3)显示模块:从用户角度考虑,方便用户对操作变化而引起的LED闪烁时长周期频率变化进行观察与记录,故设计此模块。(4)驱动模块:对LED灯的亮度要求决定了,需要一个驱动模块保证LED灯的亮度。(5)周期频率输入模块:根据上述设计,需要对LED灯的闪烁时间与周期时间可控故需要此模块。3.根据以上的设计要求模块,故有具体电路原理框图显示电源模块驱动模块CPU周期频率输入模块输入图1电路原理框图针对各模块的详细解释:CPU模块:作为设计的核心元器件,单片机的选择有多个选择,但出

4、于设计方案的复杂程度,需要2至3个定时计数器, DA转换器PWM输出等一系列模拟电路功能,在简单易行的条件下,故选用ARduino开发板。电源模块:出于对安全经济,简单便捷的角度考虑,故选用ARduino开发板上的USB供电方式。显示模块:根据课程设计要求,输出要求PWM方式,需要显示两位数字百分比020%,故选择二个1位共阳极数码管。驱动模块:因为单片机的输出电流较低,对LED灯的亮度有较大影响,故选择MOS管驱动LED灯。周期频率输入模块:基于设计要求,有按键或旋转式电位器等多种输入方式,出于简单调节速度快考虑,就选择了旋转式电位器。4.需用器材汇总:开发板1个(ARduino开发板),

5、1位共阳极数码管2个 ,旋转式电位计2个,LED灯3个,220V电阻3个,导线若干三.电路实现1.本设计对频率精度要求不高,故频率显示采用2个1位共阳极数码管,占用ARduino10个输入输出端口原理图如下: 2.Arduino开发板有模拟值读取的功能,analogRead();语句就可以读出模拟口的值,Arduino UNO控制器是10位的A/D采集,所以读取的模拟值范围是0-1023。我们在void setup()里面设置波特率,显示数值属于Arduino 与PC机通信,所以Arduino的波特率应与PC机软件设置的相同才能显示正确的数值,否则将会显示乱码或者不显示。在Arduino软件的

6、串口工具监视窗口右下角有一个可以设置波特率的按钮,选中与程序中设置的波特率语句相同的波特率,Serial.begin();括号中为波特率的值。故使用电位计输入Arduino板用于调节LED亮度和闪烁周期。电路图如下:3.由于LED都是以恒定的电流导通,故本设计采用PWM恒流调光,并且可以实现周期频率可调的要求.4.由于Arduino开发板输出的电流很小,要驱动30W的LED灯,需要增加一个MOS管驱动电路来驱动。 原理图如下:5.Ardino(微控制器)是本电路的核心,承担脉冲输出、频率显示与调节的工作使用单片机进行脉冲发生和频率控制,可使频率的控制精度大大提高,且易于频率数值的准确显示和步进

7、调节6.LED元件要与设计的功率驱动器相匹配, 该电路选用的白光LED的参量如下:电压为3.43.6,输入电流为350选用只上述参量的发光二极管,其电功率为30相比以气体放电灯为光源的传统频闪灯而言,使用该大功率LED可有效缩小电路体积、延长寿命,且LED发光元件的光效较高(上述光效约为40) ,可有效降低能耗.7.Arduino控制器上有6个PWM接口:分别是数字接口3、5、6、9、10、11。analogWrite():作用是给端口写入一个模拟值(PWM波),可以用来控制LED灯的亮度变化,或者以不同的速度驱动马达。当执行analogWrite()命令后,端口会输出一个稳定的占空比的方波。

8、除非有下一个命令来改变它。PWM信号的频率大约为490Hz。 Arduino PWM的频率是500Hz,那么两绿线之间的周期就是2毫秒。analogWrite() 命令中可以操控的范围为0-255,analogWrite(255) 表示100%占空比(常开),analogWrite(127)占空比大约为50%(一半的时间)。四.软件部分4.1简单流程图:开始 初始化开灯延时1关灯 延时1读取A0,A1A0或A1改变NA0改变Y YN提示灯2亮提示灯1亮提示灯1灭提示灯2灭显示周期显示频闪时间更新A1值更新A0值根据电路原理框图,设计一个简单流程图,将大致思路理清,方便实现下一步。五.总结这次课

9、程设计刚开始我拿到题目的时候是毫无头绪的,不知道该用什么器材,用什么单片机。然后,老师给我们分析,我们作为一个设计师首先要从用户的角度去考虑,这样是否合理;然后才是从学术的角度考虑,如何设计出这么一个作品,要考虑的约束条件有哪些,需要什么器材,等等。设计一个作品,首先要站在用户的角度考虑设计出界面(外壳);然后再考虑大概需要哪些模块,各个模块都可以选取那些器材,而这些器材哪个实用性性价比更适合我们用;接着才是考虑我们对各个模块电路的实现,以及总体的流程图;最后才是编程,调试,检查是否有问题。在老师的指导下,经过一个月的漫长实践,顺利的完成了此次课程设计任务。韩老师教导我们不要把问题想得太复杂,

10、有不懂的问题可以动手查资料,如果有实在解决不了的问题,可以去问他。韩老师在这段时间里给予了我非常大的帮助,使我的自学能力得到很大的提高,这对于我以后的工作以及学习都是一种巨大的帮助,感谢老师对我的帮助。我在本次课程设计中,从一开始选器材的毫无头绪到之后完成本次课程设计,让我懂得了不懂并不可怕,可怕的是不懂也不去探究,不去提问。大学四年,其实最大的收获也就是老师们培养了我们自我学习的能力,在此对老师们表示感谢。总之,这次LED频闪照明控制器的课程设计得到了韩老师的鼎力相助,没有他的帮忙,最终我们还不一定能完成这次课程设计,在这里对给予我帮助和鼓励的老师和同组同学们表示感谢。附录:程序int po

11、tpin1=0; /定义模拟接口0 int potpin2=1; /定义模拟接口1int val=0; /将定义变量val,并赋初值0. int ual=0; /将定义变量ual,并赋初值0.int a=0;int b=0;int i=0;#include SevSeg.h SevSeg sevseg;void setup() pinMode(1,OUTPUT);/设置数字1引脚为输出模式pinMode(2,OUTPUT);pinMode(3,OUTPUT);sevseg.Begin(1,2,3,4,5,6,7,8,9,10,11,12,13); void loop() sevseg.Prin

12、tOutput(); val=analogRead(potpin1);/读取模拟接口0的值,并将其赋给valval=map(val,0,1023,0,40);a=val;ual=analogRead(potpin2);/读取模拟接口1的值,并将其赋给ualual=map(ual,0,1023,500,2000);b=ual;for(i=0;i2000;i+)digitalWrite(1,HIGH);digitalWrite(2,LOW);digitalWrite(3,LOW);sevseg.PrintOutput();sevseg.NewNum(val,2);delay(500);for(i=

13、0;i2000;i+)digitalWrite(2,HIGH);digitalWrite(1,LOW);digitalWrite(3,LOW);sevseg.PrintOutput();sevseg.NewNum(ual*0.01,1);digitalWrite(1,LOW);digitalWrite(2,LOW);digitalWrite(3,LOW);hh:digitalWrite(3, HIGH);/开灯delay(a); digitalWrite(3,LOW);delay(b-a); /频闪时间t毫秒val=analogRead(potpin1);/读取模拟接口0的值,并将其赋给val

14、val=map(val,0,1023,0,40);ual=analogRead(potpin2);/读取模拟接口1的值,并将其赋给ualual=map(ual,0,1023,500,2000);if (val=a-2|a+2=val|ual=b-10|b+10=ual) if(val=a-2|a+2=val) for(i=0;i3000;i+)digitalWrite(1,HIGH);digitalWrite(2,LOW);digitalWrite(3,LOW);sevseg.PrintOutput();sevseg.NewNum(val,2);else for(i=0;i3000;i+)digitalWrite(2,HIGH);digitalWrite(1,LOW);digitalWrite(3,LOW); sevseg.PrintOutput();sevseg.NewNum(ual*0.01,1); elsegoto hh;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1