资讯详情

资讯详情

基于HR202和LM393的湿敏传感器开关量检测电路设计与应用

简介这是一份面向电子设计、单片机开发与传感器应用的湿敏传感器模块技术资料包适合在校学生、电子竞赛备赛团队以及初级硬件开发者参考。资料以湿度检测开关传感器为核心给出从电路原理图到程序实现的一体化设计内容可用于毕业设计、课程设计或小型项目中的环境湿度检测功能开发。压缩包内共21个文件主要包含C语言测试程序与汇编启动文件.c/.a51、编译生成的Hex与Obj文件、原理图与产品使用手册文档.doc/.bmp以及若干图片备份文件整体大小仅734KB结构紧凑且便于本地查阅。目前已有141人学习浏览。通过学习这份资料读者可掌握湿敏传感器的TTL输出测试方法、单片机程序编写框架并参照原理图与芯片资料完成硬件选型和电路搭建是快速上手湿度检测模块设计的实用参考资料。1. 湿敏传感器资料包拆解一个可用的湿度开关长什么样解压《湿敏传感器设计方案原理图程序芯片资料.zip》后你会看到一套典型的国产湿度开关模块资料原理图 doc、产品使用手册、Keil C51 工程、STARTUP.A51 启动文件、hex 文件还有两张实物照片。这套东西的定位很明确——用 HR202 湿敏电阻感知环境湿度由 LM393 比较器把湿度变化整形成 TTL 电平51 单片机读取这个电平去控制继电器和 LED。它不直接输出湿度百分比而是输出一个“湿度是否越限”的开关量。这种设计在学生毕设里常见在工业现场也大量存在因为很多场合只需要在湿度过高时启动风机或切断电源并不需要精确数值。你要做的就是看懂信号链、掌握阈值设定方法然后把这个模块接到自己的控制板里。2. 从 HR202 到 LM393阈值开关式湿度检测的组网原理2.1 为什么选 HR202 电阻式湿敏传感器HR202 是一颗阻抗型高分子湿敏电阻阻抗随相对湿度变化。在 25℃、1kHz 测试条件下30%RH 时典型阻值约 200kΩ60%RH 时降到约 30kΩ90%RH 时只有几 kΩ。这个非线性变化范围跨了两个数量级用来做开关量判断非常方便只要设定一个中间电阻作为翻转点湿度一过线电阻就会明显变小分压点电压产生清晰跳变。相比 DHT11 这类数字传感器HR202 不需要严格时序协议也不会因为通信失败卡死主机在长时间通电、震动、油污环境中更不容易跑飞。新收到的 HR202 建议先做一次“活化”处理在 25℃、60%RH 环境下放置 24 小时让高分子感湿层恢复稳定。另外要注意湿度传感器的阻值参数都是在特定交流测试频率下得到的1kHz 是厂家常用测试条件因为纯直流下感湿膜容易极化导致阻值逐步漂移。这块资料里的方案没有用 555 振荡器激励而是直接让 HR202 和一个固定电阻对电源分压分压点送入 LM393 比较器。直流激励会带来极化效应长时间工作确实会漂移但对开关量应用只要定期校准电位器就能接受。如果你之后要做精密湿度计可以改成交流方波激励再整流那是另一套电路了。2.2 LM393 比较器与阈值设定电阻比怎么算LM393 是双路开漏比较器这里只用其中一路。基本接法是HR202 一端接 VCC另一端接一个固定电阻 R1 到 GND分压点接 LM393 同相输入端反相输入端接 10k 电位器抽头。当环境湿度升高HR202 阻值下降分压点电压 V VCC × R1 / (Rs R1) 也下降。当 V 低于电位器设定的 Vref 时比较器输出变低LED 亮、继电器吸合。反过来当湿度回落Rs 变大V 上升输出恢复高电平。电位器必须接成三端分压形式而不是只把抽头和一端串联当成可调电阻。三端分压时Vref 的调节范围是 0VCC且调节曲线接近线性两端接法会造成 Vref 在低端严重压缩很难在 60%RH 附近精细调到位。具体设定关系是Vref VCC × (R_lower / (R_pot_total))其中 R_pot_total 是电位器总阻值R_lower 是抽头对地那一段的阻值。电位器旋到不同位置Vref 随之变化翻转点也就变化。假设 VCC5V、R1100kΩ你希望相对湿度 60% 时翻转HR202 约 30kΩ则 V 5 × 100 / (10030) ≈ 3.85V。因此把 Vref 调到 3.85V比较器就会在 60%RH 附近切换。实际由于 HR202 的温度漂移这个计算值只作起点最后以现场湿度计校准为准。想提高翻转点对应的湿度就把 Vref 调低想降低翻转点就把 Vref 调高因为 V 随湿度升高而下降。2.3 开关量输出与数字传感器的选型边界很多人在选型时纠结既然 DHT11 输出数字信号、直接读湿度为什么还要用这套模拟开关方案一个重要原因是可靠性。DHT11 的时序要求挺严格尤其在单片机同时处理继电器、按键时偶尔一个长中断就可能导致读到的数值全为 0xFF而 LM393 输出的 TTL 电平只有高低两个状态单片机只需查询一个引脚误判概率很低。另一个原因是成本整套模块元件不到两块钱还没算单片机 IO 占用。缺点也很明确没有湿度数值只有阈值且受温度和传感器老化影响。所以这套资料适合做湿度边界报警、自动控制不适合需要连续记录湿度曲线的项目。另外要注意LM393 是开漏输出不接上拉电阻时不能老实输出高电平。这个上拉最好接 4.7kΩ 左右接到模块 VCC。如果要接到 3.3V 单片机也可以把上拉电阻单独接到 3.3V这样输出高电平就是 3.3V直接兼容一点几伏的 IO 阈值。但模块里 LED 和继电器驱动的电源仍用 5V两端电源共地即可。3. 原理图工程化分压网络、电位器和检查清单3.1 分压网络怎么接HR202、R1 和电位器原文件里的原理图是用 Word 文档和 BMP 位图保存的放大后能看清网络编号。首先确认电源模块用 5V 供电LM393 的 VCC 接 5VGND 共地。分压网络由 HR202 和 100kΩ 电阻串联构成这里要注意方向HR202 接 VCCR1 接 GND分压点再进比较器同相端。HR202 的引脚没有严格极性但焊接时要小心陶瓷基体引脚根部折弯容易断裂建议先弯脚再焊接。电位器是 3296 多圈可调电阻引脚 1 接 VCC引脚 2 接 LM393 反相端引脚 3 接 GND这样调节起来线性度更好。在重画或移植这个电路时我一般会加上两个电容一个 10uF 电解电容在电源入口去耦一个 0.1uF 瓷片电容在 LM393 电源附近。原图里不一定有但在继电器吸合瞬间电流冲击会造成电压跌落没有去耦电容的话比较器会在跳变点附近来回抖动这是现场经常踩的坑。更讲究一点的会在比较器输出与同相端之间接一个几百 kΩ 的正反馈电阻形成约几十毫伏的滞回进一步抑制临界抖动但会改变翻转点需要重新标定。3.2 元件清单与参数计算位号规格/型号数量作用备注U1LM3931双电压比较器只用一半另一半可以并联或悬空RsHR2021湿度敏感电阻阻值 30%RH 约 200kΩ60%RH 约 30kΩR1100kΩ 1/4W 金属膜1分压串接电阻改变它可调整检测范围RP13296W-10kΩ1阈值电位器多圈可调精度高R24.7kΩ1LM393 开漏输出上拉不加上拉高电平无效R31kΩ1LED 限流如果 LED 直接接比较器输出C110uF/50V 电解1电源去耦继电器吸合时稳住 VCCC20.1uF 瓷片1LM393 高频旁路防止输出振荡参数计算的核心是分压点电压。若把 R1 放在地侧、HR202 接 VCC则湿度升高时 V 下降。翻转条件为 V Vref即 Rs R1 × (VCC / Vref - 1)。比如希望 60%RH 时翻转取 R1100kΩ预先用万用表测 HR202 在 60%RH 下的阻值约 30kΩ那 Vref VCC × R1 / (100kΩ 30kΩ) ≈ 3.85VVCC5V。如果把 R1 换成 150kΩ那么同样 Vref 下翻转点对应的 Rs 更大也就是在更低湿度就翻转。反过来R1 越小需要更潮湿才能触发。所以 R1 是传感器量程粗调电位器是精调。3.3 用立创 EDA 检查和重画原理图的几个关键点如果需要在原图基础上做 PCB不要直接抄位图建议用立创 EDA 照着重画。要注意几个细节HR202 的库在立创 EDA 里可以直接搜到但引脚封装需要确认是否兼容常见的立式封装LM393 是 SOIC-8 还是 DIP-8 要提前确定因为 PCB 封装选择会影响焊盘间距。如果你画过 DHT11 的最小系统原理图再看这个图会很快上手因为它比 DHT11 直连更简单只是多了一个比较器和分压网络。画完原理图后用 DRC 检查网络是否只有一个 VCC、一个 GND重点查 LM393 的 7 脚OUT是否接上拉到 VCC以及电位器抽头是否连接到反相端而不是接成可变电阻。还有一个容易错的地方HR202 分压点要接到比较器的同相端反相端接电位器如果接反输出逻辑会完全反过来变成湿度越高越不报警。这些错误在初学原理图时最常见花几分钟检查比打板后飞线省时得多。4. C51 测试程序复位从源码到 HEX 的完整路径4.1 工程文件里每个文件是干什么的解压后有几个后缀名第一次接触的人会发懵chengxu.lnp、chengxu_Opt.Bak、chengxu.Uv2、STARTUP.A51、chengxu.OBJ、chengxu.hex、chengxu.M51。这里简单归类Uv2 是 Keil 工程文件C 源码和 STARTUP.A51 参与编译OBJ 是编译产生的中间文件hex 是最终烧录文件lnp 和 M51 分别是链接脚本和存储器布局Bak 是备份LST 是编译列表。其中 STARTUP.A51 是 Keil C51 启动代码负责清零内部 RAM、调用 main 函数一般不需要修改。你真正要改的是 chengxu.c 和工程里的芯片型号、晶振频率。hex 文件是 Intel HEX 格式烧录时不需要关心地址计算STC-ISP 软件会自动解析。4.2 主程序查询比较器输出带消抖驱动继电器下面这段代码模拟了资料里 chengxu.c 的核心逻辑端口定义以 STC89C52RC 为例#include reg51.h sbit HUM_IN P3^2; // LM393 输出接 P3.2低电平表示湿度过高 sbit RELAY P1^0; // 继电器控制低电平导通 sbit LED P1^1; // 湿度超标指示 void delay_ms(unsigned int ms) { unsigned int i, j; for (i 0; i ms; i) for (j 0; j 123; j) // 12MHz 下约 1ms ; } void main(void) { bit over 0; // 当前湿度是否超标 bit last_over 0; // 上一次状态 RELAY 1; // 上电默认不吸合 LED 1; while (1) { if (HUM_IN 0) // 第一次检测到低电平 { delay_ms(20); // 消抖避开继电器弹跳和比较器临界抖动 if (HUM_IN 0) over 1; } else { delay_ms(20); if (HUM_IN 1) over 0; } if (over ! last_over) // 状态变化时才驱动外部设备 { last_over over; RELAY over ? 0 : 1; // 超标时继电器吸合 LED over ? 0 : 1; // 超标时 LED 点亮 } } }代码的逻辑很直接HUM_IN每 20ms 采样一次连续两次读到同一电平才确认状态避免比较器在翻转点附近振荡导致继电器频繁吸合。over表示当前湿度超标只有状态翻转时才对继电器和 LED 输出这样控制动作一次到位不会周期性重启。delay_ms函数在 12MHz 晶振下内层循环 123 次约 1ms如果换到 11.0592MHz 晶振这个数字不需要改因为这里不依赖精确时基但若之后要加串口通信就必须重新校准延时或改用定时器。引脚分配上P3.2 同时也是 INT0可以改成下降沿中断方式当湿度从正常变为超标比较器输出从高变低触发中断在中断服务函数里吸合继电器。不过中断方式要处理抖动反而复杂查询方式在这种低速信号下更可靠。代码里继电器和 LED 共用over状态实际项目中可以把它们分开比如只驱动 LED 调试继电器留给你自己的控制逻辑。4.3 Keil C51 编译配置与 STC-ISP 下载打开 chengxu.Uv2 后先看 Options for Target 里的 Device 选项。如果 Keil C51 版本较老里面可能没有 STC89C52RC这时可以选 AT89S52 先把程序编译通过。STC 芯片在 Keil 中没有原生包需要从 STC-ISP 软件里找到“Keil 仿真设置”或“添加芯片型号”功能把 STC 型号库安装进去。这和 Keil MDK 需要单独安装 stm32 芯片包类似只是 C51 的安装更简单运行一次自动拷贝即可。编译前把 Target 标签里的晶振频率改成实际值比如 12MHz在 Output 标签勾选 Create HEX File。点击编译后在输出窗口会看到 “creating hex file from ...” 表示成功。然后打开 STC-ISP 软件选择芯片型号 STC89C52RC点击打开程序文件加载 chengxu.hex串口号选择 USB 转串口对应的 COM 口波特率可以先设 9600。点击“下载/编程”后对单片机冷启动先点下载按钮再给板上电直到提示下载完成。如果失败把波特率降到 2400并检查是否安装了 CP2102 或 CH340 驱动以及是否有其他软件占用串口。5. 调试阈值、排除故障和把开关量升级成模拟量5.1 现场调阈值三个测量点拿到焊好的板子不要急着接单片机。用万用表先测三个点一是 HR202 两端确认阻值在几十 kΩ 量级二是 LM393 的 2 脚反相端和 3 脚同相端正常时电位器能把 Vref 在 05V 之间调节三是 1 脚输出应看到接近 0V 或接近上拉电压约 5V中间态说明比较器在振荡或输入悬空。调阈值时把万用表表笔接到比较器输出一边缓慢旋转电位器一边对 HR202 哈气输出应该发生一次清晰的翻转。若翻转后回不了原状态把电位器稍微往回调半圈留出滞回余量。5.2 常见故障现象与对应检查项如果输出一直低电平先看同相端电压是否在所有条件下都低于 Vref——很可能是 R1 焊错或者 HR202 开路导致 V 被拉低。如果输出闪烁不止检查 LM393 供电脚是否并联 0.1uF 去耦电容以及上拉电阻是否为 4.7kΩ 左右。上拉阻值过大会造成边沿变缓接长线时被干扰。另一个隐藏问题是 HR202 在直流激励下的极化表现为用万用表电阻档测过之后再上电看阈值漂移了几百毫伏。遇到这种情况把 HR202 在干燥箱里放一会儿或反向激励几分钟即可恢复。如果继电器一吸合比较器输出就抖动说明电磁干扰串进了分压网络这时应该把继电器线圈两端并联一个 1N4007 二极管并把继电器控制线远离湿度采样线。5.3 把开关量升级成湿度值ADC 方案思路这套硬件稍微改动就能从开关量升级成模拟量把 LM393 拆掉直接将 HR202 分压点接到单片机内置 ADC比如 STC89C52RC 没有 ADC换成 STC12C5A60S2 或 STM32。用 12 位 ADC 采集 V再配合 NTC 温度补偿在 MCU 里做插值查表就能得到湿度百分比。最好的做法是先把 HR202 校准数据做成二维表格以 ADC 值和温度为索引而不是用简化公式算因为 HR202 的对数阻抗曲线在不同温度区间斜率不同。这样就相当于给毕业设计增加了一个可以展开讲的创新点而资料里的开关量电路可以作为最终控制输出级继续用。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →