
2021年-K题-LED稳定可调台灯-牛子队
简介
这是根据2021年全国大学生电子设计大赛K题要求制作的照度表和可控台灯
简介:这是根据2021年全国大学生电子设计大赛K题要求制作的照度表和可控台灯开源协议
:GPL 3.0
描述
一.前言
这算是自己第一次参加大型赛事,之前报名的一些比赛都很不幸的夭折了,不过这样使得我有很充分的时间来备战电子设计大赛。因为是第一次参加,我们基础不是很好,所以老师指导就很关键,老师的悉心教导是我们得奖的原因之一。暑假期间,我与队友一起在实验室学习单片机技术和一些模电知识,因为比赛延期举行,这就使得我们能有更多的时间去学习、备赛。到了比赛选题的时候,我们选择了K题,选择K题是因为这个题与我们校赛题目有相似之处,而且解题的方法也是简单粗暴——直接上模块。
二.队伍介绍
温XX:也就是我,在队里属于是指挥担当,各种知识都知道一些,但不是很精通,电赛主要是软件调试,设计一些简单模块的原理图。
农XX:我的舍友,队里的作品设计和焊接担当,能把作品做得更美观、更实用。作品的搭建他下了很大的功夫,队里的手工大佬。
谭XX:因志趣相投而相识的队友,作品的构思就少不了他,对模块的选择从没让我们失望过。
三.题目分析
根据题目要求,我们首先想到的是要做两样东西,一样为数字照度表,一样照度稳定可调的LED台灯。既然是做关于光感的题目,自然少不了的就是光照强度传感器了,起初我们想到的是光敏电阻,但是实验的时候数据非常飘,正当我们一筹莫展的时候,学长跟我们说他用过一个非常好用的光照传感器——基于BH1750的光照传感器模块。因为学长之前做有,我们就直接用上他之前做的模块来测试,发现实验结果非常好,随后我们就确立了使用BH1750光照强度传感器。之后的光源控制模块我们采用了我们实验室已有的MV-AP1024-2T光源控制器,这个模块需要用rs232模块实现单片机与光源控制器的通信。因为这个光源控制器需要24V才能正常工作,所以我们就给这个控制器配上了一个升压恒流模块,这样就能使控制器正常工作了。灯板的话我们是选择了与控制器配套的24VLED灯板(本来我们是打算买一个大型的LED灯板来应对光照均匀的问题的,但是买材料的时候出了个大乌龙,本来跟商家说好的30x30cm变成了30x30mm的LED灯板,加上买的都没有配套的灯板工作效率高,所以我们就选择了与控制器配套的LED灯板),至于单片机的选择我们显得随意很多,考虑到学校是用arduino教学单片机的,我们就向老师要了些ATMEGA328核心板来进行做题,这里我得感谢老师和学校的支持,没有他们的支持也就没有作品的呈现了。因为单片机核心板是5V供电使用的,对于只能输出10~15V的题目要求(可控台灯部分),我们就给单片机安排上了一个5V稳压模块,保证单片机不被烧毁。为了实现亮度可调,我们额外设计了按键模块,用于这个系统功能的切换和亮度的加减。最后就是显示屏了,我们选择了我们常用的1602显示屏来减缓编程的压力。框图如下:
四.理论分析与计算
1.电源效率设计
(1)设计要求在灯板 0.5m 高度下的光照强调显示数字能够达到 1000 以上;
(2)台灯供电电压在 12V 时,电源效率(LED 灯板消耗功率与供电电源输出功率之比)不低于 90%。
经过计算与查阅资料可得出结论,灯板功率使用 24W 可满足要求。LED 单个灯珠的额定工作电压为 3V,如果用 12V 直接给灯板供电,每个支路只能承载 3-4 颗灯珠。为保证光照度,只能通过多并联支路来实现,这样势必会造成工作电流较大,2A 以上。工作电流大会造成沿程功率损失大,发热量大,对灯珠及电子元件的排布也会造成影响,从而使照度无法保证达到要求。
I=P/U=24/12=2A(式 1)
P=I2*R(式 2)
由公式计算得出 12V 灯板无法达到足够的光照度,工作效率达不到要求。直接采用 12V灯板无法满足设计要求。
台灯的工作效率
η=P 灯板/ P 电源(式 3)
根据公式可以得出提高台灯的工作效率主要有两个方式:一是提高灯板的工作功率,二是降低驱动模块的功率损耗。
采用了 24V 灯板,在相同工作电流下,电压提高可以使能够承载的灯板功率提高 1 倍。
满足上述方式的第一条。
采用 24V 灯板,相较 12V 灯板,在相同照明功率下电流减小了一半,根据公式(2)可知,
驱动模块的损耗功率可以显著下降,满足上述方式第二条。
综上,本设计采用 24V 灯板,用高效率升压模块将 12V 直流电压提升至 24V,再经过 24V直流驱动模块控制灯板。根据经验 12V 转 24V升压模块效率可以做到 96%,灯板驱动模块效率最大可达 96%,整体效率η可以达到 92%,满足设计要求。
2.数控恒流源设计
MV-AP1024-2T光源控制器,是以MCP19114/5 芯片来实现控制亮度的,该芯片是一个数字增强型电源模拟同步下桥臂 PWM 控制器。当MCP19114/5 的开关频率由单边沿 8MHz 内部时钟产生。通过配置 PR2 寄存器设置 MCP19114/5开关频率。驱动允许的最大占空比可进行调节并由 PWMRL 寄存器控制。开关频率的可编程范围为 31.25kHz~2MHz。低于 2MHz 的可用开关频率定义为 FSW=8MHz/N,其中 N 为整数(4≤N≤256)。PWM 的占空比由输入给 PWMRL 的寄存器确定的,一般采用如下公式来计算:
PWM=PWMRL×TOSC×TPrescalevalue
其中,PWMRL 位可以随时写入,但在 PR2 与 TMR2 之间发生匹配后,占空比会锁存到 PWMRH中。
五.电路设计
1.结构框架
电路总体模块如图所示。本设计的内容是照度稳定可调 LED 台灯和一个数字显示照度表,硬件设计以 ATMEGA328为主要控制芯片,台灯主要包括照度检测电路、控制电路、LED 灯板三部分,控制模块根据采集到的照度值的实时控制 LED 灯板亮度,保证照射区域的照度稳定,形成闭环控制系统。照度表主要包括照度检测电路、LCD1602 液晶显示屏,电源采用移动式可充电电源供电,液晶显示屏实时显示环境的照度值。调光台灯由 LED 灯板和照度检测、调节电路构成。照度表是用于检测台灯的调光水平,所以二者可以采用相同规格的照度检测传感器。
2.按键电路
按键主要是用做+/-亮度、自动控光模式的切换及一键最大亮度(测效率方便)的作用。连接电路时需注意使用按键对角的连接方式保证按键能发挥作用。
3.照度表LCD1602显示电路
LCD1602主要用于显示光照强度。R1主要是用来调背光的,这个阻值我选择就大了,因为实验室没有10K的电位器了,所以选择电位器上最好用10K的电位器,不然弄得会很麻烦。
4.模块的选择(含购买链接)
(1)升压模块
我升压模块选择的是实验室现有的400W升压恒流模块,选择这款升压模块是因为它具有高达96%的转换效率,输入的电压可以为DC8.5V~50V,输出电压10~60V可调,完全符合了我们的需求。链接: https://m.tb.cn/h.fjewtoV?sm=394f45
(2)GY-302 BH1750模块
BH1750 一款数字型光强度传感器集成芯片,BH1750 的内部由光敏二极管、运算放大器、ADC 采集、晶振等组成。PD 二极管通过光生伏特效应将输入光信号转换成电信号,经运算放大电路放大后,由 ADC 采集电压,然后通过逻辑电路转换成 16 位二进制数存储在内部的寄存器中。BH1750 引出了时钟线和数据线,单片机通过 I2C 协议可以与 BH1750 模块通讯,可以选择 BH1750 的工作方式,也可以将 BH1750 寄存器的光照度数据提取出来。链接:https://m.tb.cn/h.fRU5bun?sm=a54859
(3)MV-AP1024-2T光源控制器
详见理论分析。链接:https://m.tb.cn/h.fRUgAsM?sm=8d3a9f
(4)RS232模块
使用RS232模块主要是为了于光源控制器进行通信,使光源控制器识别光照光感器的数据进行调光。链接:https://m.tb.cn/h.fQWypId?sm=aca481
(5)降压模块
考虑到单片机不能承受10~15V的电压,我们给单片机配上了一个降压模块,这样可以使得单片机工作时不会被烧毁。
(6)ATMEGA328核心板
使用 Arduino 是因为 Arduino 是一款便捷灵活、方便上手的开源硬件产品,具有丰富的接口,有数字 I/O 口,模拟 I/O 口,同时支持 SPI,IIC,UART 串口通信。能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他装置来反馈、影响环境。它没有复杂的单片机底层代码,没有难懂的汇编,只是简单而实用的函数,而且具有简便的编程环境 IDE,极大的自由度,可拓展性能高。链接:https://m.tb.cn/h.fQ3ZEvr?sm=7d6d3b
六.PCB设计
1.按键模块PCB
按键模块的制作算是比较简单的,只需注意按键的电气特性。
2.1602显示部分PCB
PS:因为我们是自行制板,就随意了一些。
七.实物展示
此作品能够完成亮度持续可调和自动调节,但是对于功耗来说只能保持在85%左右,发挥一就看台灯摆放。
八.作品装配
九.程序设计
1.程序框架
照度稳定可调的 LED 台灯软件总程序设计,流程图如下所示。
程序功能描述
1) 按键功能:设置 LED 灯的照度值
2) 采集台灯环境照度:控制系统模块实时读取光照度传感器的照度值
3)自动控制调节 LED 灯照度:主要通过 PID 方式控制恒流源,输出电流使得 LED 灯调整亮度,保持环境照度稳定。2.按键模块
本台灯系统中按钮功能模块,主要通过按键+、按键-,调整台灯的照度值增加或减少,实现亮度从最亮到完全熄灭连续可调,部分程序如下所示。
if (digitalRead(2) == 0)
{
key = key + 2;
delay(50);
if (key > 255)
{
key = 255;
}
sendVision();
autoComm = 0;
digitalWrite(13, LOW);
}
if (digitalRead(3) == 0)
{
key = key - 2;
delay(50);
if (key <= 0)
{
key = 0;
}
sendVision();
autoComm = 0;
digitalWrite(13, LOW);
}
3.采集台灯环境照度模块
本台灯系统中采集台灯环境照度模块,主要负责实时读取台灯的环境照度值,主要程序如下所示。
Wire.beginTransmission(ADDRESS_BH1750FVI);
Wire.write(ONE_TIME_H_RESOLUTION_MODE);
Wire.endTransmission();
delay(150);
Wire.requestFrom(ADDRESS_BH1750FVI, 2);
highByte = Wire.read();
lowByte = Wire.read();
sensorOut = (highByte << 8) | lowByte;
illuminance = sensorOut / 1.2;
4.自动控制调节 LED 灯照度模块
当功能启用时,通过参考光感(最亮时的照度)来调节LED的亮度变化。
if (autoComm == 1)
{
if (illuminance > initlightValue +10)
{
key = key - 5;
if (key < 0)
{
key = 0;
}
sendVision();
}
else
{
key = key + 5;
if (key > 255)
{
key = 255;
}
sendVision();
}
}
PS:源程序文件会在附件中给出
十.总结
对于我们这些只能参加两次的大专生来说,能在第一次比赛拿下国奖是真的谢天谢地了,第二次参加也只能是区赛了。说到我们的作品的话,它是会发脾气的作品,有时候让它去做发挥部分的工作,它就跟我们厥,直接死机,有时候就不会,当时弄得我们挺慌的,好在比赛答辩的时候它心情非常好,给我们一组比平常测得都好的数据,随后听到我们的作品有国二心情直接兴奋到了极致。再次回看电赛,我们也搞出了不少乌龙,杂物堆堆着被我们烧毁的模块,有些模块对于我们初次使用真是不够友好,升压模块初始状态直接是50V输出是我们没有想到的,VCC与GND的“相见”差点把我电脑端口给烧了,莫名其妙的问题一个接着一个,好在都成功的解决了。总的来说,这对于喜欢动手操作的我来说是一次前所未有的体验,和队友在比赛时一起研究代码编写,一起研究模块的选择,一起研究作品的制作...经过电赛4天3夜的比赛,成功治好了我的失眠,如果让我再比的话我一定会在比完之后睡个一整天!
视频链接:https://pan.baidu.com/s/1KqpBIxHd_xCXDt_UbFXrag
提取码:0803
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | DB9_Male | DB1,DB2 | DSUB-TH_DMR-9P | 2 |
2 | 电源 | J1 | HDR-M-2.54_1X2 | 1 |
3 | 5V稳压模块 | J2 | HDR-M-2.54_2X2 | 1 |
4 | 400W升压恒流模块 | J3 | HDR-M-2.54_2X2 | 1 |
5 | 光照传感器模块 | J4 | HDR-M-2.54_1X5 | 1 |

评论