练习 - 二路温湿度传感器及自动报警加热
实现功能
板上有两路温湿度传感器,用来检测不同位置的环境温湿度;
板上有两组三位一体数码管用于显示温度和湿度,两路传感器每隔 2s 交替显示温湿度;
每路传感器对应一块加热器,当环境湿度大于设置的湿度起动阈值时,打开对应加热器,低于设置的湿度截止阈值或高于设置的高温阈值时退出加热模式;
当:
有传感器湿度高于起动阈值后未降低至截止阈值,此时传感器温度均低于高温阈值;
有传感器湿度高于起动阈值后未降低至截止阈值,此时有传感器温度高于高温阈值;
传感器湿度均低于截止阈值,此时有传感器温度高于高温阈值。
为以上每种情况配置不同频率的报警频率;
湿度启动阈值/湿度截止阈值/高温阈值通过自拟协议实现上位机修改,并每隔2s将二路传感器的温湿度数据上报给上位机;
设置6路开关量输入接口,当开关量有输入时,板上有对应LED亮灯反馈。
硬件设计
电源模块
选用AC-DC电源模块HLK-PM01NBX,依照数据手册设置EMC解决方案电路。
隔离电源模块
选用B0505S-1W隔离电源模块,依照数据手册设置纹波噪音严格方案线路。
MCU
选用STC89C52RC-40I-LQFP44,输入+5V;
VCC引脚处选用一个100nF去耦电容与一个10μF滤波电容;
复位引脚采用:+5V ---> 10μF电解电容/常开按钮 ---> RST ---> 10kΩ电阻 ---> GND,确保可靠高电平复位;
外接晶振选用11.0592MHz频率,配备2*47pF电容。
报警模块
选用2.4kHz有源蜂鸣器,并联整流二极管用以控制反向电动势(设计选用M7,实际选用M1),
单片机P42引脚接三极管MMBT3904-E基极控制蜂鸣器电路通断;
两个LED为共阴极设计,接单片机P20/P21。
数码管
使用P00-P07配合SN74HC245D段选,P15-P17配合SN74HC138DR位选,P0口根据数据手册特性说明,外接10kΩ上拉电阻;
由数据手册,SN74HC138DR的G1接高电平,G2A#/G2B#接低电平时有效;
因为数码管为6位,而138可输出Y0-Y7八位,此处接Y0-Y5,Y6/Y7悬空;
因为SN74HC245D的Ax接单片机P0x,Bx接数码管A-DP,需要:Ax输入,Bx=Ax。根据数据手册,配置OE(输出使能输入)引脚低电平,DIR(传输方向控制)引脚高电平;
六路开关量输入
使用EL817C光电耦合器进行电气隔离,发射端接入隔离电源并设置一个2*6的12P排针作为外部开关量输入接口控制光耦发射端通断;
接收端集电极分别接单片机P22-P27引脚并接+5V上拉,发射极接地;
简单设置P32-P37引脚控制六个LED用以反馈外部开关量状态。
IIC硬件
IIC硬件总共使用:一个EEPROM,两个AM2301B温湿度传感器。
AM2301B传感器地址唯一且固定,所以选用了TCA9548APWR作为多路IIC开关;
EEPROM选用M24C64-RMN6TP,WC写入控制脚接P13;
TCA9548APWR的RESET引脚接P12;
因为STC89C52RC没有IIC模块,所以选用P40做SDA,P41做SCL,使用软件模拟IIC信号进行通讯,
P40/P41接EEPROM以及TCA9548APWR,TCA9548APWR的SC7/SD7和SC6/SD6接两排4P端子用以外接AM2301B。


