基于ARDUINO的智能LED台灯设计
2020-01-05陈晶晶吴治帆
陈晶晶 吴治帆 宋 康
(四川大学机械工程学院,四川 成都 610065)
0 引言
绿色环保照明研究成为照明设施研发的重要方向。台灯是学生桌前必备的照明工具[1],现有的台灯仅能满足学生的照明要求,无法根据周围环境科学地调整适合学习的光照强度,为学生提供良好的光照环境[2]。
LED 作为照明光源,有节能环保、寿命长、体积小、发热小、响应速度快、安全电压低、耐候性好、方向性好等优点[4]。因此该文采用LED 作为光照器件,设计一款具备自动调节亮度、温度显示和声控开关等功能的智能LED 台灯,满足人们的学习需求。
温美逊等人设计的基于ARDUINO 的视力保护仪,使用光敏电阻、四电压比较器LM339 和发光二极管组成的光检测电路来实现测量周围光线、及时补充和调整光源的功能。另外还利用超声波测距模块提醒使用者调整自己的坐姿,同时附加定时中断提醒功能,系统工作一段时间之后报警提醒使用者休息,功能丰富[3]。
该文提出一种新的自动调整光源的方案。光敏电阻传感器采集光照强度,ARDUINO 开发板收集信息并进行程序处理,自动控制台灯的亮度,简单方便。
1 台灯系统总体介绍
台灯系统基于ARDUINO 开发板,围绕着其最小应用系统设计开发了自动调光、声控开关和温度显示等功能模块。系统如图1 所示。其中包括6 个模块。1)照明设备。2)声控开关模块,通过判断声音强度来开启台灯总电源,方便在黑暗情况下打开台灯。3)光强采集模块,光敏电阻传感器采集光强信息,直接输出模拟电压值。4)模式切换由电容型的触摸传感器实现,触摸一次台灯则工作模式自动切换。5)台灯光照强度的手动改变则由电位器完成,调节旋钮即可改变光强。6)环境温度信号采集由LM35 温度传感器完成,直接输出对应的电模拟压值,程序处理后在LCD1602 液晶显示屏上显示。
2 电路设计
2.1 ARDUINO简介
ARDUINO 是一款基于AVR 单片机的硬件电路和软件开发环境共同开源的控制系统,是交互式编程学习的一种媒介,是为嵌入式开发学习而研发的一种控制终端[5]。
ARDUINO 包括硬件(各种型号的ARDUINO 板)和软件(ARDUINO IDE)。ARDUINO 板通过USB 接口供电,电压为5 V。复位按键(Reset Button)可以使ARDUINO 重新启动,并且开始运行程序。ARDUINO UNO 有14 个数字输入/输出端口,6 个模拟输入端口。ARDUINO 编程环境可以跨平台,并且该软件可以在Windows、Macintosh OSX、Linux 操作系统上运行。另外ARDUINO 控制板价格低廉,可自行组装,也可以购买完整的产品[6]。
2.2 自动调光电路
2.2.1 光敏电阻传感器
光敏电阻的电阻值与光线有关,照射在感光面的光线亮度增加时,电阻值会变小,亮度减少时电阻值会加大。当环境光比较强时,光敏电阻的阻值减小,相反环境光较弱时,它的阻值增大,从而实现光电转换[7]。
图1 智能LED 台灯系统框图
2.2.2 自动调光模式
自动调光模式下,由于光敏电阻传感器采集的环境光强信号与LED 的亮度之和保持在一个定值,即最适合人眼的光照强度。当环境光强小于此定值时,LED 的亮度随环境光照强度的减弱而增加。当环境光强大于此定值时,LED的亮度为零,即直接通过程序处理达到自动调光的目的,保护眼睛。
2.3 手动调光电路
2.3.1 电位器
传统的电位器主要是依靠机械结构带动滑片运动,以此来对改变电阻值。电位器又称为可变电阻器(VR,Variable Resistor)或简称可变电阻,其是一种具有3 个端子,其中包括2 个固定接点与一个滑动接点,可经由滑动而改变滑动端与2 个固定端间电阻值的电子零件,属于被动元件,使用时可形成不同的分压比率,改变滑动点的电位。
2.3.2 手动调光模式
通过电位器的分压来改变LED 的亮度。转动旋钮,即可改变当前台灯的亮度。在此模式下,LED 的亮度可随意调节,不受环境光照强度的限制,满足人们的不同需求。
2.4 LM35测温电路
2.4.1 LM35简介
LM35 是一款精密的Celsius 集成温度传感器,其输出电压和温度呈线性关系[8]。
LM35 是一种电压型输出传感器,每升高11 ℃,温度从-50 ℃上升至150 ℃,电压增加10 mV[9]。通过对LM35传感器的输出电压值进行处理得到空气温度。
2.4.2 LM35测温
LM35 感受温度并将温度信号转换成可用的输出信号,输出信号有模拟电压信号和数字电压信号2 种,下面的公式采用的输出信号为模拟电压。由LM35 的灵敏度可算温度计算公式:
式中:U为ARDUINO 开发板内部的工作电压,通常为5 V。k为LM35 的灵敏度,k=10 mV/℃。temp 为当前环境温度,单位℃。analogRead(wendu)为ARDUINO 开发板读取到温度对应的模拟电压值,单位mV。
2.5 LCD1602显示
LCD1602 为工业字符型LED,可同时显示32 个字符。LCD1602 专门用来显示字母、数字、符号等。它由若干个5×7 或者5×11 等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,从而分割字符和线条。1602 表示2 行16 个字符。
1602 采用标准的16 脚接口,其中特殊的第3 引脚:V0为液晶显示器对比度调整端,实践时可以通过调节10 K 的电位器来调节第15~16 脚:空脚或背灯电源。第15 引脚为背光电源正极,第16 引脚为背光电源负极[10]。
2.6 声控开关
声控装置是智能家居设备中的重要组成部分,用户可以通过声音对家庭设备进行控制。
该声音传感器可检测周围环境的声音强度。但是只能识别声音的有无,不能识别声音强度的大小或者特定频率的声音,但对于该系统来说已经足够,灵敏度可调,且输出形式为数字开关量输出(0 和1 高低电平)。环境声音的强度小于设定的阈值时,DO 口输出高电平1,反之,环境声音强度超过设定阈值时,模块输出低电平0。
3 软件设计
3.1 自动调光子程序
void AUTO( )//光敏电阻传感器实现自动调光
{
sensorval=analogRead(analogguangpin);//将传感器输出转换成对应的模拟量
if(sensorval<300)//设定最适于人眼的光强对应模拟电压值为300
{
analogWrite(ledpin,sensorval*0.3);//根据环境光强自动控制LED 亮度
}
else
analogRead(ledpin,300*0.3);//设定最适于人眼的光强对应模拟电压值为300
}
3.2 手动调光子程序
void HAND( )//电位器实现手动调光
{
sensorval=analogRead(analogrestpin);//将电位器分压值输出转换成对应的模analogWrite(ledpin,sensorval*0.25);//根据电位器分压手动控制LED 亮度
}
3.3 主控制程序
if(digitalRead(song)==HIGH)//检测声音传感器状态
{
j=!j;
}
if(j or digitalRead(allpin))//声控开关或按键开关打开之后显示温度
{
lcd.setCursor(0,0);//设置光标到第二行第一列,1 表示第二行,从0 开始数)
int temp=analogRead(wendu);//读取温度信号并转换成模拟电压值
lcd.print(5*100*temp/1024);//计算温度值并显示在LCD1602
lcd.print(“C”);
delay(100);//模式切换
if(digitalRead(chumo)==HIGH) //读取触摸传感器的
状态
{
i=!i;//记录每一次触摸传感器的变化
}
if(i==HIGH) AUTO( );//切换到自动模式
if(i==LOW) HAND( );//切换到手动模式
}
else
digitalWrite(ledpin,LOW);
}
4 硬件实验结果及分析
实验得到结果,无论环境光强处于何种大小情况下,均可由按钮开关打开台灯总电源,或者可通过声音传感器来打开总电源。工作状态下,LCD1602 液晶显示屏显示当前环境温度,触碰触摸传感器可改变当前台灯的工作模式。
4.1 自动模式
自动模式下,当前环境亮度与系统设定的定值比较,环境亮度小于定值时,台灯的亮度随环境亮度的增强而减弱。而当环境亮度大于定值时台灯的亮度不再改变,此时台灯亮度为0,环境光照强度和台灯亮度综合后维持在最适于人眼的状态。自动模式下调节电位器旋钮不会改变台灯亮度。如图2 所示,环境光强由强到弱变化时,台灯亮度逐渐变强。
图2 环境光强逐渐减弱的台灯亮度增强
4.2 手动模式
手动模式下,环境光强不会对电位器的调节产生影响,可任意旋转电位器旋钮得到不同亮度。如图3 所示,调节电位器使台灯亮度逐增强。
图3 电位器分压逐渐增大时台灯亮度增强
4.3 串口显示结果
ARDUINO 软件执行代码,将模拟输出的LED 模拟电压值打印到串口,串口数据见表1,串口显示的结果与自动调光模式实验(图2)与手动调光模式(图3)相符。
表1 串口显示输出电压结果
5 结语
该文以ARDUINO 开发板为核心,以光敏电阻传感器为辅助器件,提出了一种自动调节台灯光强的新思路,其能直接对光强信号进行软件处理,达到自适应的目的,节约硬件的使用,简单方便。以各种传感器作为其他功能模块,实现声控开关、温度显示等功能,体现其智能化。根据个人需求的不同,增加手动调光功能,通过电位器的分压以及ARDUINO 开发板引脚的PWM 输出,达到控制LED亮度的效果。
此外,该台灯系统还存在不完善的地方,可以扩展一些其他功能,比如防止靠近桌面提醒、定时提醒和手机联网控制等功能,因此,还可以进一步提高台灯系统的智能化程度。
猜你喜欢
——以高PbI2掺杂水平的钙钛矿光阻膜、Bi2S3光阻膜、ZnO光阻膜为例