1. 引言
在占我国大部分人口的农村地区,电风扇依然是防暑降温必备的电器设备。在换季时节,天气气温变化较快,晚上的气温可能比较低,但是风扇的转速并不会进行相应的调整,这对夜晚入睡人们的健康影响较大,很容易造成身体不适。常用电风扇可以调节到不同档位,但还是需要手动调节,这对于处于休息状态的人来说就比较麻烦。有的风扇会带有定时功能,当定时时间结束后,气温可能依旧较高,而此时风扇已经关闭,其转速并不会随气温变化而改变,十分影响睡眠质量。同时,市场上的风扇,档位相对固定,传统风扇往往采用交流电机,不便于调速,且功耗较高,极大地浪费能源,而且长时间以固定风速吹风对身体健康会有影响。
为解决上述问题,本文将传统的风扇档位控制技术和智能温控等前沿的技术进行融合,使用FPGA开发板和温湿度传感器等设备进行室内环境温湿度检测处理,从而达到利用温度监控指标来控制风扇的运行。
2. 整体方案设计
本次设计的智能温控调速直流风扇系统以EP4CE10E22C8 [1] 型现场可编程门阵列(FPGA)开发板为控制核心,设计有手动调速与自动温控调速两种控制方式,手动控制调速方式为传统风扇的档位控制方式,设计有高速与低速两档,采用KCD1船型开关进行切换;自动温控调速方式为系统通过FPGA与DHT11温湿度传感器通信,读取传感器测得的温湿度值,并交由FPGA进行数据处理,把温度数据作为控制信号输出给电机驱动模块程序中,采用温度自适应调节,输出与转速相对应的PWM调制信号给L9110电机驱动模块带动风扇以不同转速转动,达到智能温控的目的。同时,FPGA将读取到的温湿度值以数码管动态扫描的方式输出给8位数码管,实时显示当前环境的温湿度。系统采用KCD1船型开关进行自动手动模式切换,防止按键抖动造成的误动作。为了系统更加人性化,本次设计在数码管下面设置有LED呼吸灯,在提供夜间照明的同时,提高整体设计的外观水平。系统设计的总体框图如图1所示。
3. 系统硬件设计
本次设计的智能温控直流风扇系统采用模块化电路设计,对整个系统电路按功能划分为几个模块电路。系统硬件电路可分为温湿度数据采集模块电路、直流电机风扇控制模块电路、数码管显示模块电路和开关电路四个部分,温湿度采集模块电路和直流电机风扇控制模块电路之间通过FPGA进行电路连接,温湿度采集模块电路采集环境温湿度数据,与FPGA进行单总线通信使FPGA开发板获取温湿度数值,FPGA分析数据信息后驱动8位数码管与直流电机,将所测得的温湿度信息显示在数码管上,并调节电机转速。系统具备开关电路,通过船型开关来进行自动模式与手动模式的转换以及手动模式下转速档位的切换,系统使用传统的USB电源线进行供电,FPGA开发板在电源接通的情况下也可以为其他外设电路提供3.3 V与5 V的固定电源。
![](//html.hanspub.org/file/3-2960139x9_hanspub.png)
Figure 1. Overall control block diagram of the system
图1. 系统总体控制框图
3.1. 温湿度数据采集模块电路
温湿度采集模块电路的主要元器件是DHT11温湿度传感器。DHT11是一款温湿度复合传感器 [2],其优点是相对湿度和温度测量、成本低、长期稳定、响应快、抗干扰能力强 [3]。DHT11采用单总线通信,每次传送40位数据,从高位到低位依次输出。输出的40位数据中,前16位为湿度数据,中间16位为温度数据,最后8位为校验位。在本系统中,DHT11每2 s采集一次数据,确保数据的实时性与准确性。
3.2. 直流电机风扇控制模块电路
本次设计用到的电机驱动为L9110电机驱动模块,L9110是为控制和驱动电机设计的两通道推挽式功率放大专用集成电器器件 [4]。本次设计中需要控制的电机是5 V 3 W的直流电机,因此在驱动模块中,VCC接板载5 V电源,GND接地,1A,1B接FPGA开发板输出的PWM信号,模块输出端的OA,OB接直流电机正负极。当接通VCC,GND时,电源指示灯亮,当A-1A输入高电平,A-1B输入低电平时,直流电机正转,这就要求在程序设计中A-1A固定输入高电平,A-1B固定输入高电平。L9110电机驱动模块原理图如图2所示。
![](//html.hanspub.org/file/3-2960139x10_hanspub.png)
Figure 2. Schematic diagram of L9110 motor drive module
图2. L9110电机驱动模块原理图
3.3. 数码管显示模块电路
数码管显示模块电路的主要元器件为8位共阳极数码管,同时带有12个LED灯,数码管用于显示温湿度,LED可供用作夜间呼吸灯使用。温湿度传感器传回FPGA的数据经过数据处理后,需要将温湿度值实时显示在8位数码管上。在显示时采用动态扫描的显示方式,扫描间隔时间为1 ms [5],利用人眼的视觉暂留来达到8位数据同时被看到的效果。
3.4. 开关电路
开关电路采用的不是常见的按键开关,而是由KCD1型船型开关为主要元器件。开关电路中选用的船型开关为KCD1-101型,它属于三脚两档型开关,三个引脚中,左侧引脚接一上拉电阻再接5 V电源,右侧引脚直接接地,中间引脚作为I/O输入进行后续控制。此时开关电路相当于一个1位的按键,开关拨到右侧相当于按键按下,输入0;开关拨到左侧相当于按键松开,输入1。其电路原理图如图3所示。
本次设计的开关电路中包含有三个开关。一是手动模式与自动模式的转换开关,二是手动模式下档位的转换开关,三是用于通断电机驱动模块的电源,控制电机的停转。
![](//html.hanspub.org/file/3-2960139x11_hanspub.png)
Figure 3. Schematic diagram of switch circuit
图3. 开关电路原理图
4. 系统软件设计
本次设计的软件部分依然采用模块化设计思路,将整个系统主程序分为DHT11温湿度传感器驱动模块、数据处理模块、数码管显示模块、电机驱动模块和LED显示模块 [5],同时需要一个顶层模块来调控所有子模块。各个模块在顶层模块中进行例化处理,连线组成系统原理图,顶层模块只是负责将子模块之间连接起来,并与系统的输入输出进行搭配,形成完整的软件结构,具体功能由各个模块在各自的Verilog程序文件中实现 [6]。根据系统的硬件结构与要实现的功能得出的系统软件工作流程如图4所示。
软件设计模块结构图如图5所示。
![](//html.hanspub.org/file/3-2960139x13_hanspub.png)
Figure 5. Software design module structure diagram
图5. 软件设计模块结构图
5. 系统仿真与实现
5.1. 系统仿真
此次设计的仿真实验中,采用Quartus II与Modelsim软件进行联合仿真 [7]。在仿真文件中首先需要产生系统时钟信号sys_clk和系统复位信号sys_rst_n,再针对各个功能模块编写对应的激励信号进行仿真。仿真波形如图6~9。
![](//html.hanspub.org/file/3-2960139x14_hanspub.png)
Figure 6. Simulation results of data processing module
图6. 数据处理模块仿真结果图
![](//html.hanspub.org/file/3-2960139x15_hanspub.png)
Figure 7. Simulation results of motor drive module
图7. 电机驱动模块仿真结果图
![](//html.hanspub.org/file/3-2960139x16_hanspub.png)
Figure 8. Simulation results of digital display module
图8. 数码管显示模块仿真结果图
![](//html.hanspub.org/file/3-2960139x17_hanspub.png)
Figure 9. Simulation results of LED display module
图9. LED显示模块仿真结果图
通过系统仿真显示出系统的软件编写与功能实现部分正常,完全能够把预期实现的目标要求全部实现。
5.2. 系统实现
仿真结束之后,固化系统程序,上电检测,拨动船型开关,首先手动两档切换正常,高速模式下的风扇转速明显高于低速模式;检测自动调速模式时,用手捂着温湿度传感器,发现温度湿度的数值都在上升,同时风扇转速也在不断提高;数码管一直不停的输出温湿度数据,LED呼吸灯正常显示。至此,系统整体功能完全实现,并根据元器件尺寸定制亚克力板进行成品封装。
智能温控调速直流风扇的成品图如图10所示。
![](//html.hanspub.org/file/3-2960139x18_hanspub.png)
Figure 10. Display of intelligent temperature control and speed regulation DC fan system
图10. 智能温控调速直流风扇系统展示图
6. 结束语
本次设计的智能温控调速直流风扇系统,具有效率高,精确度高,方便,功能完善,可升级优化等优点,并且在设计过程中选用的元器件价格都比较低,使得整个设计的成本大大降低,非常符合普通大众的需求,是一款提高生活质量的智能化风扇。更重要之处在于此设计系统可以接入任何一款老款直流风扇,实现功能改造。
系统的整体设计包括硬件电路、软件设计和仿真分析 [8]。首先在硬件电路中采用Atlera旗下的FPGA核心开发板为控制核心,利用DHT11温湿度传感器检测环境温湿度,采用L9110电机驱动模块驱动直流电机并带动风扇,利用KCD1型船型开关控制电机驱动电源、自动模式与手动模式的转换以及手动模式下高速与低速的切换。其次是在软件设计中将各个模块的程序调试完整,DHT11与FPGA进行单总线通信 [9] 并将环境温湿度采集下来,FPGA开发板将温湿度传感器模块采集的温湿度数据进行相应处理,输出两个有效的控制数据,一个发往数码管显示模块将温湿度数值实时显示出来,另一个发往直流电机驱动模块用于风扇转速的控制。最后在仿真分析系统调试阶段应用Quartus II与Modelsim进行联合仿真,确保每个模块的程序编写及对应的功能都准确无误后,进行系统硬件连接与调试 [10],直至所有功能都能正确运行,再将其封装为成品。至此,整个智能温控调速直流风扇系统设计完毕。