自动调速跟踪风扇系统的设计
一. 概述
本系统采用STM32,ATmega16,AT89S52三款单片机为控制器,分为主控台和工作区两部分。系统通过热释红外传感器定位人群信息,在主控台设置阈值温度、转速与温度的对应关系。通过STM32控制NRF24L01将信息发送至工作区,工作区通过AT89S52控制NRF24L01接收到信号,将信号传给ATmega16,并将DS18B20温度传感器检测到的温度通过NRF24L01回传给主控台,ATmega16将接收到的信号进行处理,进而控制直流电机的转速和舵机的转角。
二 . 系统设计
1. 系统总体设计
如图所示为自动调速跟踪风扇系统的总体框图。本系统由主控台和工作区两部分组成。主控台通过TFT液晶触屏设定阈值温度等信息后,由单片机STM32F103经无线收发模块传送至工作区。
工作区内由单片机AT89S52控制DS18B20采集环境温度,当温度达到设定阈值时,AT89S52单片机与ATmega16单片机交换信息,ATmega16控制热释红外传感器进行人群位置定位,从而通过PWM控制电机和舵机做相应动作。
2. 检测模块
方案一:采用红外成像仪它具有被动式的非接触的检测与识别,隐蔽性好,不受电磁干扰,能远距离精确跟踪热目标,但成本高、价格昂贵。
方案二:采用热释红外传感器检测,它具有传输距离远,可靠性强,且能准确的进行人体移动探测。
综上考虑采用方案二热释红外传感器。
3. 环境温度采集模块
方案一:采用热敏电阻,可满足 40 摄氏度至 90 摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差。
方案二:采用温度传感器DS18B20,它具有测量范围广,且测量精度高,可采用单片机直接进行温度的读取,使用方便。
方案三:采用LM35温度传感器,其优点在于:输出电压与温度成正比(10mV/°C),易于读取。
价格低廉,适合成本敏感的应用。然而这个方案也存在缺点,因为此方案需要ADC进行模拟到数字的转换。
温度范围有限(-55°C 至 150°C)。
基于DS18b20的以上优点,系统决定采用方案二来采集温度。
4. 电机模块
方案一:采用舵机同直流电机搭配,舵机具有扭力大容易控制。小型直流减速电机,减速电机控制精度低,且速度均匀性好,控制简单,电源要求低,易于实现。
方案二:采用步进电机同直流电机搭配,步进电机具有精确度高转角范围广但扭力小控制复杂。小型直流减速电机,减速电机控制精度低,且速度均匀性好,控制简单,电源要求低,易于实现。
方案三:采用伺服电机,其结合了高扭矩和高精度的优点,非常适合需要精确定位的应用。然而,其成本通常高于舵机或直流电机。控制较为复杂,需要更高级的控制策略和可能的PID调节。电源要求可能更高,因为伺服电机在高负载条件下需要较大的电流。
由于只需要转动180度的转角,以及成本方面的考虑,因此选择方案一。
5. 数据传输模块
方案一:采用RS232传输线传递数据,虽然监测方便编程容易但数据传输线要求太长且妨碍机车的正常运行。
方案二:采用NRF24L01无线收发芯片进行数据传输,NRF24L01无线收发芯片具有功耗低、控制简单、可自动处理字头和CRC校验的优点,不仅利于单片机间的数据通信而且体积小不会妨碍机车的运行。
由于本设计要求能对机车进行远程监测及数据无线传输,因此采用第二种方案。
6. 显示模块
方案一:采用12864液晶显示,此液晶显示信息容量小,界面友好型差,且不能很好的显示图像信息。
方案二:采用彩屏显示,此液晶显示信息容量大,且界面友好,能够进行图像信息的显示及触摸屏设置。
综上考虑选择方案二进行显示。
7. 最终方案
经过仔细的分析和论证,系统各模块的最终方案如下:
1、微控制器模块:采用STM32F103VET6单片机控制主控台,采用AT89S52和ATmega16单片机控制工作区。
2、检测模块:采用热释红外传感器。
3、环境温度采集模块:采用DS18B20温度传感器。
4、电机模块:采用舵机与直流电机搭配。
5、数据传输模块:采用NRF24L01无线收发模块。
6、显示模块:采用彩屏液晶显示。
三. 主控台硬件电路的设计
1. 控制器电路的设计
如图为STM32F103单片机最小系统电路原理图。该最小系统电路主要包括时钟、按键复位和供电电路三部分。
8MHz石英晶体振荡器和微调电容跨接在单片机OSC_IN与OSC_OUT引脚间,构成STM32工作所需的稳定自激振荡器。
时钟电路工作后,NSET管脚端保持高电平10ms以上,单片机就会实现复位。在图1中,NSET管脚连接0.1μF电容,此电容的作用是避免干扰串入复位端引起的单片机内部某些寄存器的错误复位。
为了吸收电源线上的波纹,在VCC与地之间接入了100pF的去耦电容,这个电容既作为蓄能电容,又可滤除CPU产生的高频噪声,切断噪声通过供电回路进行传播的通路。电容和电源之间的距离限定在20mm以内可以取得更好的滤波效果。
2. 无线射频电路的设计
如图所示,为NRF24L01无线数据传输电路原理图。发射数据时,首先NRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入NRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据。
接收数据时,首先将NRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则NRF24L01进入空闲模式1。(工作区无线射频接收电路的设计与此相同)。
3. 显示电路的设计
如图所示,为2.4寸TFT彩色触屏显示电路原理图。该触屏提供友好的操作界面,可以很方便的设置阈值温度来启动系统,也还可以触屏设置环境温度高低与电机转速快慢的对应关系,从而调节电机的转速。当环境温度较高时,电机转速快;温度低时,电机转速相对较慢,以此来降低功耗。此外,可以通过触屏显示当前运行阶段的总耗电量,并根据电费价格计算电量消耗的总费用。
四. 工作区硬件电路的设计
1. 驱动电路的设计
如图所示,为电机/舵机驱动电路原理图,由ATmega16单片机控制。当进入工作状态后,热电释红外传感器检测人群的范围,ATmega16单片机通过PC6引脚输出PWM信号,调节其占空比,可以改变舵机转动的角度。占空比越大,舵机转角越大;占空比越小,舵机转角越小。
温度传感器DS18B20将采集到的环境温度与设置的参数进行比对,然后由ATmega16的PC7引脚输出PWM信号,调节占空比,改变直流电机的转动速度。电机的转速与PWM信号的占空比成正比关系,即占空比越大,转速越快。
2. 热释红外传感器电路的设计
如图所示,为热释红外传感器电路原理图,主要用来检测人群所处的位置信息。本系统共采用6个HC-SR501型热释红外传感器,按半圆形排列,每一个传感器感应30°范围内的人群信息。HC-SR501配有菲涅尔透镜,检测距离达到7米,在6个传感器的共同作用下,最大检测扇角为180°,满足实际应用的需求。
3. 测温电路的设计
如图所示测温电路原理图。本系统采用DS18B20温度传感器检测工作区的环境温度信息。DS18B20是一种数字输出形式的温度传感器,所以抗干扰能力较强。本系统中DS18B20主要其两方面的作用,首先是在系统启动前检测环境温度,并将其与事先设定的阈值温度比较,当达到阈值温度时,系统开始运行。另一方面,当系统处于运行状态时,将实时的环境温度与设定好的转速调节温度相比较,根据不同等级,改变电机转速。
五. 系统软件设计
1. 参数设置程序设计
主控台可以通过触摸彩屏对工作区阈值温度、温度和转速的对应关系以及电量的价格等信息进行设置。其设置流程图如下图所示。
2. 射频电路程序设计
利用射频模块实现主控台与工作区的信息转换。主控台设置启动温度、温度与转速转换对应关系等信息,通过NRF24L01射频模块传到工作区。工作区将采集到的环境温度通过射频模块回传给主控台,当达到启动温度时,整个系统开始运行。
信号无线传输的工作流程如图所示:
主控台射频电路程序流程图和工作区射频电路程序流程图 :
3. 驱动电路程序设计
驱动电路主要包括电机驱动和舵机驱动两部分。根据人群位置的信息,计算改变舵机的转角;根据环境温度的高低,调节风扇电机的转速。其程序流程图如图所示。