DIY创意家庭:实现LED台灯的智能化,提供软硬件解决方案的设计细节
扫描二维码
随时随地手机看文章
一、设计摘要
按需照明一直是照明科技领域最求的最佳形式。在台灯为千万人的生活带来便利的同时,相应问题也一一出现,如不离开时忘记关灯、灯光亮度不可调等,这些都导致了严重的电能浪费。而此时,LED绿色照明理念正以一种前所未有的趋势席卷全球。在这种背景下,基于微控制器和环境光线传感器的全自动控制LED照明台灯应运而生。本台灯以CYPRESS PSoC3为控制核心,输出PWM信号控制LED驱动器控制和调节LED台灯,通过光线传感器采集的环境光线强度和利用超声波测得的用户使用距离综合决定PWM波的占空比,从而实现了智能控制LED台灯的亮度以及台灯开启熄灭的功能。
本设计最终实现了人走灯灭和智能LED照明亮度调节两大功能,从而实现了按需照明的理念,达到经济节能、环保绿色无污染的目的。本设计最终完成的作品完全到达市场应用需求,必将有助于推动当前所全球倡导的“绿色、低碳、智能生活”理念。
二、创新点
人走灯灭
作为本设计的智能控制之一,实现了“人走灯灭”的功能,这是本设计的两大创新点之一。这就为那些拥有不良使用台灯习惯的用户解决了一个很大的问题。即使他们离开时忘记关灯,本台灯也会智能识别,然后自动将LED亮度调到最低,进入睡眠低功耗模式,达到了节能的目的。
根据环境光线强弱自动调节LED亮度
能够在维持用户视野内光线强度稳定的基础上,根据环境的光线强弱来智能的改变LED自身的发光强度:当外界环境光线强时,减弱LED亮度,达到进一步节能的目的;当外界环境光线弱时,自动增加LED发光强度,保持用户使用视野的光强恒定,保障用户正常学习工作。这又是本设计的另一个重大创新点。
另外,本台灯的用户使用视野光强和自动开启/关闭距离均可通过按键进行设置,设置的具体光强和台灯使用距离均在1602的LCD屏上实时显示,从而使本台灯的设计和使用更加人性化。
三、系统框图
整个设计由220V交流市电提供电源,经AC/DC电源转换器转换后得到5V/2A的LED台灯供电和控制系统电压,分别给LED驱动电路和PSoC3以及各个传感器供电。
PSoC3的ADC通过采集环境光线传感器输出得到环境光线强度,据此改变输出的PWM信号占空比,PWM的输出控制后级的LED驱动器调节LED台灯亮度;
另一方面,超声波测距为MCU智能控制LED开启/关闭提供可靠依据(当用户距台灯一定距离时,实现台灯自动开启/关闭,以进一步加强节能效果)。
用户设置模块用于完成用户对台灯自动开启/关闭距离和照明光强的自定义设置。
1602液晶显示模块用于实时显示用户自定义设置的LED台灯亮度(光强)和用户使用距离值,以便于人机交互设置信息。
整个智能LED台灯系统框图设计如下,详细流程参见技术原理和流程图部分。
图一、系统框图
四、技术原理
4.1、超声波测距:
本系统中使用的到超声波收发模块URF04如下图所示:
图二、超声波测距模块实物图
管脚定义如下:
VCC:工作电压5V TRIG:控制端口5V ECHO:响应输出端口5V GND:接地 OUT:不用
工作原理:MCU通过控制口TRIG向URF04输出一个持续时间20us以上的高电平,然后模块自动发送8个40KHz的方波并自动检测是否有信号返回。当有信号返回时就通过ECHO输出一个高电平给MCU,高电平的持续时间就是超声波从发射到接收的时间。这个时间间隔被PSOC3内部的16bit定时器中断捕获。具体计算距离公式如下:
D=340*t/2(m)
其中t 为定时器计算出的时间。PSoC3内部电路设计如下:
图三、PSoC3内部定时器捕获电路实现
4.2、光线传感器测环境光强:
本系统中使用的光线传感器模块(就是光敏传感集成电路)如下图所示:
图四、环境光线传感器
其接口如右图所示。
板上的核心元器件就是一个光敏电阻,可以将环境光线强度转换成模拟电压输出。输出电压范围是0.5V~VCC-0.5V。PSoC3通过内部16位精度的模数转换器(ADC)采集、转换后,得到环境光线强度所对应的数字量,此数值的大小与光线强弱成反比,即,光线越强,AD转换值越小;光线越弱,AD转换值越大。
PSoC3内部ADC电路实现如下:
图五、PSoC3内部16-bit ADC实现电路
4.3、PWM波形输出驱动LED:
系统中使用到的LED如下图所示:
其额定工作电压为3.0V,最大工作电流为36mA,故额定功率就是108mW。利用PWM波的平均输出功率正比于其占空比,CYPRESS输出的PWM波如下图所示:
图六、PWM输出波形
一个周期T内的有效电平时间为Ton,即V(value)=V*Ton/T)*100%.由功率计算公式:
P=I*U=U(value)2/R
其中R在一定情况下是固定的,所以PWM波输出功率就与U(value)2成正比。所以改变占空比可以PWM输出功率,即LED输入功率,也就可以改变LED的亮度了。
PSoC3内部PWM实现电路图如下:
图七、PSoC3内部PWM电路实现
4.4、按键防抖实现
由于按键本身的机械特性使得,按键使用过程中均存在不同周期的抖动,主要是按键按下和按键释放时,为此,在使用按键输入时,都必须对其进行防抖处理,传统的按键防抖包括软件延迟和硬件中断+定时器两种方式,或多或少都会占有一些系统资源。
这里,本设计充分利用PSoC3内部的数字逻辑器件,利用D触发器和与门,实现并行内部硬件电路防抖,取得了非常好的防抖效果,保证了用户设置的可靠输入。
具体的PSoC3内部按键硬件防抖电路如下,串联的3个D触发器均有同一个200Hz的时钟触发,每个按键的输入与三个D触发器的输出一起相与后输出,可以去除4*5ms=20ms的按键抖动,相应的按键输入信号和硬件防抖后的信号对比如图所示:
图八、PSoC3内部按键硬件防抖电路实现
图九、按键防抖效果(逻辑分析仪截图)
五、系统软硬件设计
5.1、硬件设计
CYPRESS独特的PSoC器件编程特性以及PSoC Creator 1.0软件所提供的丰富外设模拟数字资源,使得整个智能LED台灯的设计和编程变得十分灵活和简单。
整个智能LED台灯硬件设计电路图如下:
图十、整个智能LED台灯硬件设计电路图
特别是其关键的随意分配,极大提高了硬件电路的设计灵活性和效率。硬件管脚分配如下:
图十一、硬件管脚分配表
5.2、软件设计
1)PWM波形输出 :流程
环境光线采集修正PWM控制LED亮度流程图如下:详细的软件代码参见附录6.3 的modules.c——函数SmartAdjust().
2)超声波 中断测距 :
超声波测距离控制LED台灯开启/关断 流程图:
详细的软件代码参见附录6.3 的modules.c——函数DistanceMeasure().以及CY_ISR(isr_ECHO_Interrupt)
3)光强AD转换
详细的软件代码参见附录6.3 的modules.c——函数ADC_LightingSample ().
4|)按键中断流程
详细的软件代码参见附录6.3 的三个按键中断函数以及超声波测距中断函数
——CY_ISR(isr_INC_Interrupt)和CY_ISR(isr_DEC_Interrupt)
智能台灯使用距离/光强用户自定义+/-按键中断处理流程:
5)整体流程(main主循环和个按键中断处理流程图)
详细的软件代码参见附录6.3 的main.c和三个按键中断函数以及超声波测距中断函数——CY_ISR(isr_ADJ_Interrupt)
整个智能LED台灯设计工程软件编译结果(报告)如下:
segment .xdata is 514 bytes long
segment .bss is 35 bytes long
segment .pdata is 0 bytes long
segment .text is 14558 bytes long
segment .bit is 9 bytes long
segment .sfr is 0 bytes long
Flash used: 14557 of 65536 bytes (22.2 %).
SRAM used: 514 of 8192 bytes (6.3 %).