莫强华
(郑州工业应用技术学院,河南 郑州451100)
从节约能源方面以及使用效果考虑,未来智能化的家居必然代替传统的家居,人们对于照明不再仅仅局限于灯光的亮灭,而是更在乎其体验感。一般而言,人们在午夜的时候,对于灯光的亮度需求不会太高,只需要简单的照明即可,同时白天的时候,对于光照强度大的地方,也不需要灯光。对于在傍晚时分,人们对于灯光的智能化要求最高。若仅仅依靠光敏电阻的感光来决定灯光的强弱,显然无法完成复杂的控制。并且其可靠性低,易被外界光照干扰,同时午夜时分的灯光亮度最高,白白浪费能源。为解决该现象,同时结合传统灯光控制手段,设计一种基于红外控制的无线调光灯。
本系统设计的功能如下:
2.1.1 按键1 按下或者红外按键长按切换模式(自动模式,手动模式)。
2.1.2 按键2 或者红外按键短按调节灯亮度,屏幕会显示亮度具体值。
2.1.3 自动模式MODE : automatic,表示模式为自动模式;PERSON:NO 表示:附近无人PERSON :YES 表示附近有人,LIGHT:H_light 表示光照强度充足。
2.1.4 自动模式下,光照强度充足则关闭灯;光照强度不足时,若附近无人光照强度为20%,若监测到有人在附近则光照强度为100%。
本设计利用单片机作为主控制芯片,采用OLED 作为显示模块,通过按键或者红外遥控器控制灯的开关。总体框图如下图1 所示。
图1 总体框图
选择STM32F1 系列处理器作为主控芯片,该系列单片机内核频率相对较高,运行内存和FLASH 充足,运行速度快。而且外设资源丰富,且具备常用通信总线。可以完成本设计控制,而且方便后期系统升级。
考虑到本产品显示部分较多,需要显示灯光亮度等级,因此无法使用数码管作为显示器部分,从价格以及使用寿命方面考虑,选择OLED 显示屏作为显示器。利用驱动芯片SSD1306 控制OLED,可采用SPI 或者IIC 进行单片机与OLED 之间的通讯,OLED 具有主动发光的特性,无需背光源,每个点都可以自己发光,可显示汉字、图案等,并且屏幕具有较宽的视角,即使从侧面看,显示部分也不会失真。
本设计用两个按键模块控制对灯的亮度的调节,一个按键用来增加亮度,另外一个实现降低亮度。采用接下拉电阻的按键,当IO 口设置输入模式,常态低电平,按键按下时输入高电平。
本设计采用的红外接收模块型号为HX18388,可以数据数字量,供电电压为5V,可以通过串口对其接收数据之后对其进行解析。
热释电红外接收模块也是基于红外线技术的自动控制产品,人离开之后可以自动输出低电平,同时可以设置延时时间。该模块还自带光敏电阻,可以通过硬件跳线选择是否设置该项。
硬件原理总图如图2 所示。
系统在上电复位后,先对单片机系统、红外遥控模块、OLED显示模块等各个硬件模块初始化、赋予初始默认值,设置定时器及中断系统的工作方式等初始化工作。在系统初始化完成之后,OLED 屏上显示“MODE/PERSON/LIGHT”等信息,同时热释电人体红外传感器模块一直处于激活状态,若人体处于其感应范围内时,输出高电平;人离开其探测范围时,自动将引脚电平拉低。另外其红外接收端一直处于接收状态,当接收到红外遥控器发出的信号后,通过解调后执行相关指令。
图2 硬件原理总图
为方便展示,本设计利用面包板作为底板,将各模块通过焊接的方式与主控制芯片连接在一起。将主控制器通电,电源指示灯常亮,同时OLED 屏幕显示出亮度等级、模式、附近是否有人信息。此时,可以利用红外遥控器对其进行灯亮度调节,或者使用按键开关对其进行调节。整体调试图片如图3 所示。
图3 总体调试页面
本设计是基于单片机的红外调光灯设计,第一点要做的就是要保证红外传感器的接收与发射的正确,在我调试该部分时,发现解码成功率不高,通过查阅资料以及实际测量电路发现,红外发光二极管与其限流电阻内部接触不良导致遥控器失灵,解码成功率不高。在OLED 屏显示界面中,因为要进行几个页面的切换,所以都要进行清屏处理,但是如果每刷新一次屏幕都清屏一次,会出现刷屏的问题,后来我想到UCOSII 操作系统里的向量集思想,在每个界面刷新设置一个标志位,只在每次界面切换的时候刷新一次屏幕,这样就解决了刷屏的问题。在热释电红外传感器模块的学习过程中,一开始对这个模块没有了解,无从下手,后来请教他人,自己也在网上找资料,了解整个模块的工作流程以及工作原理,使用时只需要对其通电,读取其输出引脚的高低电平状态即可。