APP下载

基于STM32的无叶风扇控制器设计

2019-06-11钱成国田志勇

电子技术与软件工程 2019年7期
关键词:子程序风扇风速

文/钱成国 田志勇

无叶风扇作为一种新型风扇,因无扇叶,因此不会吸附尘土,也不存在扇叶伤人的情况;采用无级变速控制,阻力小,无噪音,空气流和传统风扇相比较更加平稳,风量均匀,能耗低,仅为传统风扇的一半,价格相仿,与空调相比性价比高,具有危险系数低、污染小和节约能源等优点,越来越受人们的喜爱,具有广阔的市场前景。然而,当前市场上已有的无叶风扇仍存在手动设置风速档位、无法依据人体位置移动而实时调整风力等情况。

针对以上情况,本文设计了一种基于STM32的无叶风扇控制器方案。该控制器既具备传统无叶风扇的控制功能,同时可依据人体位置变化从而实时地、智能地调节风扇送风风量。

1 系统总体设计

如图1所示为基于STM32的无叶风扇控制器系统总体结构。由图可知,该控制器以ST公司生产的低功耗高性价比的STM32系列单片机为核心,辅以温度采集电路、压力采集电路、人体红外检测模块、人机交互界面、电机驱动模块和电源模块等外围模块构成。

图1:总体结构框图

图2:人体监测电路

系统可通过人机交互界面设置当前系统工作模式、工作温度和风速档位,也可通过人机交互界面实时观测当前环境温度和当前风速等信息。

若系统选择为传统工作模式,人体红外检测模块作用仅为检测当前环境下是否有人体存在。若无人存在,系统则不工作;若有人存在,微控制器则控制电机驱动模块启动电机,并根据当前设置的温度和风速档位,根据算法调整电机风速。

若系统选择为智能调节模式,人体红外检测模块作用则主要通过检测是否有人存在,并通过红外测距传感器检测人体与风扇之间的距离,并反馈给微控制器。微控制则通过当前环境温度、设置温度、人体红外信号、距离信息、当前风速等数据,自动调节风扇角度及风力。

图3:传感器信号处理电路

图4:电机驱动电路

2 系统主要硬件设计

2.1 人体检测电路

人体监测电路包括人体感应电路和红外测距电路两部分。人体感应电路采用以LHI778探头设计的HC-SR501模块为核心设计。该模块能监测人体发射红外线,将红外转化为电信号输出,可感应0~7m范围,灵敏度高,可靠性强。红外测距部分采用Sharp公司的GP2Y0A21YK0F红外测距传感器。该传感器采用5V供电,能测量10~80cm范围内的距离,对应输出模拟电压为2.4~0.5V。因在10cm以内该传感器存在盲区,无法精确测量出实际距离,故在设计时需将该传感器安装在距离无叶风扇出风口距离为10cm处。如图2所示为人体监测电路,HC-SR501模块输出端通过一限流电阻与三极管s8050连接,接至STM32的IO脚。当人体进入其感应范围,则STM32接收到低电平;当人体离开干感应范围,HCSR501模块则自动延时关闭,STM32接收到高电平。红外测距模块连接至STM32自带的A/D转换管脚。

图5:人体检测流程图

图6:电机驱动子程序

2.2 压力采集电路

本系统采用美国飞思卡尔MPXV7002DP集成硅阻式传感器,应用广泛,最大测量压差为8kPa,功输出电压范围为0.5~4.5V。传感器当前测得压力与输出信号之间关系如式1所示。

其中VS为芯片工作电压5V;P为测得的压力,单位是kPa;VFSS为量程范围,常用值为4V;由此可知,当P=0时,VOUT=2.25V~2.75V。即上电后,输出电压(即补偿电压)为2.25V~2.75V。因压力变化信号属于一个小信号,不能直接送到微控制器进行采样,否则精度不够或者无法识别,因此须先经过放大电路对其进行处理。如图3所示为传感器输出信号的偏置补偿和放大电路。

2.3 电机驱动电路

电机驱动电路主要用于调节无叶风扇风速,遵循“人近风小,人远风大”的原则,通过脉宽调制控制风速,使人感受到恒定的风速,如图4所示为电机驱动电路。由+3.3V直流电通过LED1输入到光耦TLP521-2,当STM32单片机输出低电平是光耦导通,一路通直流电机正极,另一路通负极并使IRF540导通,是强电部分直流电机工作。电机驱动使用MOSFET,提供大电流来驱动电动机;D1和D2为续流二极管,可有效的防止电压电流突变,为其提供通路。通过此电路,可完成对电机的控制已经对电机控制电路的保护。

3 系统软件设计

系统软件设计主要包括人体检测程序、压力采集程序、电机驱动程序、液晶显示程序、按键扫描程序、温度检测程序等子程序。

3.1 人体检测子程序

人体检测子程序包含人体感应子程序和距离检测子程序两部分,主要完成人体红外感应、人体与无叶风扇之间距离的检测。其流程如图5所示。首先,单片机通过检测IO脚是否为高电平。若为高电平,代表当前环境下无人则不启动无叶风扇。若为低电平,则判断是否是智能调节模式。若为智能调节模式,则通过单片机自带的12位ADC获取人体距离无叶风扇出风口的距离,并将此距离数据传给风速调节子函数。

3.2 电机驱动子程序

电机驱动子程序,即根据所检测到的人与无叶风扇之间的距离和当前检测到的压力值,通过输出相应占空比的PWM波进而控制电机转速,从而实现调节无叶风扇出风速度的功能,其流程如图6所示。

该部分程序设计时,采用输出固定频率的PWM波,通过检测当前压力值和人体距离无叶风扇出风口距离或设定的压力值两者之间的对比,通过控制其高低电平输出时间来控制PWM波的占空比,进而控制电机转速来进行风速调节。若设定的压力值或当前距离所需的压力值大于当前压力值,则增大占空比,加快电机转速,增大风速;反之,若小于当前压力值,则减小占空比,降低电机转速,减少出风量。

4 系统调试试验

系统主要进行人体检测电路、压力采集电路、电机驱动电路和人机交互界面等功能进行调试。

人体检测电路主要测试在系统设定的最大感应距离内能否准确发现有人,并能测量出当前所在位置。经测试发现,当有人在距离无叶风扇出风口5m、左右50°角度范围内时,控制器均能感应到有人,并且人机界面能正确显示当前人体所在位置。当超出范围时,无叶风扇无法感应到人体,因此停止出风。

电机驱动电路主要测试在人体距离无叶风扇出风口位置变化时,电机转速即无叶风扇风速的变化情况。测试时,利用一台风速测量仪进行记录,在设备感应范围内,人体随机进行移动。经测试,当人体在距离无叶风扇出风口1m以内时,风速随着距离的增加而增加;当超出1m范围之后,风速不再增加,恒定不变。

5 结论

本文提出了一种基于STM32的新型无叶风扇控制器方案。该控制器既具备传统无叶风扇的控制功能,同时可通过检测人体位置的变化,控制PWM波占空比,从而实现智能调节风扇送风量。该控制器操作灵活,可靠性高,提高了无叶风扇的智能化控制,可达到节约能源的效果。

猜你喜欢

子程序风扇风速
基于Kmeans-VMD-LSTM的短期风速预测
基于最优TS评分和频率匹配的江苏近海风速订正
基于GARCH的短时风速预测方法
基于智能手机控制风扇运行的实现
新蒙迪欧车冷却风扇常高速运转
考虑风速分布与日非平稳性的风速数据预处理方法研究
子程序在数控车加工槽中的应用探索
奇瑞A5车散热风扇无低速挡
简化编程与子程序嵌套的应用