练习 - 二路温湿度传感器及自动报警加热

实现功能

板上有两路温湿度传感器,用来检测不同位置的环境温湿度;

板上有两组三位一体数码管用于显示温度和湿度,两路传感器每隔 2s 交替显示温湿度;

每路传感器对应一块加热器,当环境湿度大于设置的湿度起动阈值时,打开对应加热器,低于设置的湿度截止阈值或高于设置的高温阈值时退出加热模式;

当:

  1. 有传感器湿度高于起动阈值后未降低至截止阈值,此时传感器温度均低于高温阈值;

  2. 有传感器湿度高于起动阈值后未降低至截止阈值,此时有传感器温度高于高温阈值;

  3. 传感器湿度均低于截止阈值,此时有传感器温度高于高温阈值。

为以上每种情况配置不同频率的报警频率; 

湿度启动阈值/湿度截止阈值/高温阈值通过自拟协议实现上位机修改,并每隔2s将二路传感器的温湿度数据上报给上位机;

设置6路开关量输入接口,当开关量有输入时,板上有对应LED亮灯反馈。

硬件设计

SCH_P1_2_2025-12-13.pdf

电源模块

选用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。


相关文章

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。