李震球

摘  要:本文设计了一种单片机为主控芯片的室内光线调节系统,可通过手动和自动两种模式控制步进电机的正反转,从而控制窗帘的升降来调节室内光线。该系统使用了BH1750FVI环境光强度传感器和DHT11温湿度传感器,自动模式时单片机按照程序对比当前光照强度和程序所设置的阈值控制窗帘升降,手动模式时可通过两个按键人为控制,同时系统能够通过液晶屏显示所处环境的光照强度、温度和湿度的具体数值,可以为手动控制提供参考,对正常的室内工作和休息提供很大的便利。

关键词:单片机;光强度检测;温湿度检测;步进电机

本文研究目标是设计一套操作简单、功能丰富、性价比高的室内光线调节系统,系统以51单片机为主控核心,根据采集到的光照信息自动控制窗帘的升降,也可参考光照强度和温湿度的显示值,手动按键控制窗帘升降,使室内光线达到令使用者满意的效果。具体内容要求如下。

1.本系统采用单片机作为控制器,控制电机的正反转,以此来控制窗帘的升降,从而调节室内光线的亮度。

2.选择合适的传感器,分别采集光照强度、温度和湿度的信息,并用液晶屏显示出具体的数值。

3.该控制系统分为自动控制模式和手动控制模式。选择自动控制升降模式时,单片机按照程序对比当前光照强度和程序所设置的阈值,光线过强时和夜晚光线很弱时自动降下窗帘,光线昏暗时自动升起窗帘,系统完成自动调节室内光线的任务。选择手动控制升降模式时,可以参考显示的光照强度、温度和湿度的数值,根据使用者个人的判断和需求,通过按下两个按键来分别控制卷帘的升降任务,使室内光线达到满意的效果。

一、系统的总体设计方案

该控制系统以51单片机为控制核心,采用光强度传感器和湿度传感器为执行部件,通过液晶显示器实时显示采集到的数据,使用钮子开关完成模式选择的任务。选择自动模式时,单片机处理环境光强度传感器采集到的数据,判断光线是否需要调节,决定步进电机是否执行任务。选择手动模式时,单片机对两个按键进行扫描,判断按键按下状态,控制步进电机完成对应的操作。

二、系统的硬件设计

根据设计目标和可行的总体设计方案,从硬件设计开始具体方案的实施工作,硬件的设计和搭建为整个系统的运行奠定基础,也为之后系统的软件设计提供准确的依据。

1.单片机系统选择

单片机最小系统是指满足能够使单片机正常工作的前提下,用最少的元件组成的系统,单片机最小系统的原理图如图3所示。

2.光照采集模块选择

本设计光照强度的采集使用GY-30数字光强度模块,该模块由BH1750FVI芯片、低功耗3.3V稳压器和电平转换电路组成。BH1750FVI是一种用于两线式串行总线接口的数字型光强度传感器集成电路,可检测1lx-65535lx大范围的光照强度变化,能够输出对应光照强度的具体数值。模块内部的通信电平转换电路可使模块直接与单片机I/O口相连接,使用方便。

3.温湿度采集模块选择

选用DHT11数字温湿度传感器为本设计实现温湿度采集功能,该传感器输出的信号是经过校准后的数字信号,内部是将一个电阻式湿度感测元件和一个NTC温度测量元件与一个8位高性能的单片机连接起来,并用4针单排引脚封装,20米以上的距离也可接收到传感器的信号,不论是引脚连接还是数据使用都显得格外方便。

4.显示模块

本系统采用LCD1602液晶屏进行显示。LCD1602液晶实际上是由许多7行5列或者11行5列的点阵组成的液晶模块,外部共有16个引脚。

5.步进电机驱动模块

28BYJ48步进电机通过四根线与ULN2003驱动模块的四个OUT引脚对应连接,ULN2003步进电机驱动模块的四个IN引脚与单片机的P2.4~P2.7引脚对应连接,四个引脚的不同电平排列驱动单片机执行对应的正反转和转动的步数。

三、软件设计方案

硬件设计的完成相当于系统有了整体的框架,框架需要软件的内容来填充配合才能构成一个整体,硬件和软件的呼应维持整个系统的运转。在对软件设计时,考虑到本设计使用到较多的模块,如果全部编写在一个程序中,不仅要定义很多不同的变量,使整个程序很长不利于编写,而且在编译过程中出现问题会难以排查和调试,所以将不同模块编写自己的子程序,最终在主程序中调用,这样会降低软件设计的难度和出错率。

1.液晶显示部分软件设计

液晶显示部分的程序需要包含写命令子函数、写数据子函数、初始化子函数、延时子函数和显示函数,使用LCD显示模块,LCD1602是没办法辨认出ASCII码以外的数据,若要显示的数据不是ASCII码的形式,必须要提前转换。

2.光照强度采集模块软件设计

BH1750光照强度采集模块上电后经过短暂的延时初始化,连续读出数据,并将这些数据合成光照强度数据,之后计算数据并通过LCD1602显示出来。需要注意的是LCD1602只能识别ASCII码数据,所以需要把数据先转换成其对应的ASCII码,否则无法显示正确的数值。

传感器采集到的光照强度数据还要在自动模式时对电机进行控制,由于不同的室内场景需要的光照强度不同,根据搜集到的测试资料显示,一般的阅览室、研究室需要150lx~300lx的光照强度,办公室、会议室、营业厅需要100lx~200lx的光照强度,一般家庭卧室需要50lx~300lx的光照强度,考虑到方便该系统的购买者购买后可直接安装使用,省去自己调整合适光线的过程,程序默认使用一般家庭卧室适合的光线强度范围,当传感器检测到光照强度高于300lx时窗帘会自动降下,光线在50lx~300lx之间时自动升起,若光照强度低于50lx,则说明外面光线很暗或者到了夜晚需要室内开灯来调节,这时候需要降下窗帘。

3.温湿度采集模块软件设计

DHT11温湿度采集模块在通电后,单片机上连接该模块的引脚低电平输出,经过短暂的延时该引脚输出高电平,再次延时后读取数据,最后用液晶屏显示读出的数据。

4.按键部分软件设计

钮子开关中间引脚接单片机的P1.7口,另外两端分别接电源线和地线,单片机通过判断接收高低电平来对应执行自动或手动模式的选择,两个按键一端接地,对角线一端分别接单片机的P3.4和P3.5口,单片机在手动模式时接收到低电平信号则对应执行升降的命令。

5.步进电机模块软件设计

通过控制ULN2003步进电机驱动模块连接单片机的四个引脚的电平排列,按照表1和表2所示的正转表和反转表编写程序,步进电机对应转动期望的方向和步数。

四、系统的调试与测试

1.系统的调试硬件

原理图设计完毕后,要先对各个模块及元器件进行检测,如果出现不能正常使用的元件要及时更换,尤其是电源部分要仔细调试,稳压模块要确保输出正常,否则通电后可能会损坏大量元件。调试前先把单片机最小系统焊接完成,在焊接时要仔细核对好引脚连接,整理好思路,保证每一个焊点的有效性,尽量避免焊接错误而返工,焊接完成后要用万用表检测每条线路的连接,对线路进行全面的检查。

2.系统整体测试。

各个模块和器件测试完毕,开始将所有的模块和元器件按照原理图整合焊接,焊接完成后再进行整体的调试。

电路焊接完毕后,进行程序下载。用万用表再检测一遍电源输出电压,之后给单片机上电,液晶屏会显示当前光照强度和温湿度值,先把钮子开关打到手动挡,测试两个按键能否控制电机正反转,用加热过的电烙铁靠近DHT11传感器,观察温度显示变化,再用喷雾器对该传感器附近喷洒少量的水,此时显示的湿度也发生变化,说明温湿度传感器和显示模块测试成功。把钮子开关打到自动挡,增加和遮挡GY-30传感器模块附近的亮度,看液晶屏显示值,以及电机对应亮度变化的转动情况,符合设定要求即表示系统整体运行成功。

参考文献:

[1]李晓玲.单片机原理与接口技术[M].北京:中国铁道出版社,2010:3-209.

[2]王丽杰.基于AT89C51单片机的智能窗帘控制系统[J].电脑迷,2017,06:85-86.

[3]杨雅涵,于佐军.基于单片机的温控光控智能窗帘设计[J].控制工程,2016,(10):1542-1545.

[4]王瑞杰.光控自动窗帘机[P].中国专利:CN2269152.1997-12-03.

[5]邵海龙,梁嵇晖.智能窗帘控制系统[J].微型机与应用,2017,04:56-58.