湿敏电阻HR202L使用记录
时间:2023-02-08 19:00:00
湿敏电阻HR202L收集湿度,实时显示。
硬件电路设计-(参考湿敏电阻手册):
1、 RC 阻容充放电法 -MCU必须为双向IO
湿敏电阻参数:
定额电压:1.5V AC (Max,正弦波)
定额功率:0.2mW (Max,正弦波)
工作频率:500Hz~2kHz
使用温度:0~60℃
使用湿度:95%RH 以下(非结露)
湿滞回差:≤2%RH
响应时间:吸湿, ≤20S;脱湿≤40S
稳定性:≤1%RH/年
湿度检测精度:≤±5%RH
相对湿度
条件:at25℃ 1kHz 1V AC (正弦波)
湿度: 60%RH
中心值:31 KΩ
阻抗值范围:19.8~50.2 KΩ
湿度检测精度:±5%RH
1khz的波形:
当单片机测量湿度传感器的阻抗时,传感器必须通过双向电流(即交流电流)来实现,以避免极化和电解
/********************************************************************************************************* *函数名称:void Charg_Hum(void) *函数功能:输出正弦波-1khz 1ms周期 ----JI *入口参数:void *出口参数:void *定时中调用 *********************************************************************************************************/ void Charg_Hum(void) { if(en_tnSRHCharge && (!BitChargefinish))//进入条件 { WihtchIOCharge ; // if(BitIOCharge) ///湿敏电阻 充电 128 { if(WihtchIOCharge < 4) { CHARGE_HSR_HIGH(); } else { CHARGE_HSR_LOW(); WihtchIOCharge = 0; } if(P43) { ChargeTimeHumi = ChargeTimeCnt;///保存充电计值 ChargeTimeCnt = 0; BitChargefinish = 1; //完成标志置1 } else { ChargeTimeCnt ; //计时加1 } } else //参考电阻10k { if(WihtchIOCharge == 0x01) //标准 充电 { CHARGE_HSRVRF_HIGH(); } else if(WihtchIOCharge == 0x04) //高低脉冲比 3:1 { CHARGE_HSRVRF_LOW(); WihtchIOCharge = 0x00; } if(P43)//在这里判断是否充满,保存计数值传输到变量。 { ChargeTimeIo = ChargeTimeCnt; ChargeTimeCnt = 0; BitChargefinish = 1; } else { ChargeTimeCnt ; //计时加1 } } } }
注意点1:电容器的选择不仅要考虑测量的灵敏度,还要考虑单片机的时钟频率等因素。
湿敏在常温25度下表现出最大是5.0M 。湿度越低。充电时间越长。湿度为50%。RH下对0.47uf电容充电时间为2s。
HSR波形
HSR_VREF波形
HSR_AD波形--0.47uf
HSR_AD波形--0.22uf
注意2.:计数时,判断是否饱满,千万不要等死while(!HSR_AD)。
注意3:充放电函数处理。我在这里是100ms平均滤波处理采集10次。总时间是1S改变湿度值。
先标准电阻10k,然后在放电。 然后是湿敏电阻。放电。保存数据进行处理。
放电等待delay_us(40);//延时等待电容放电.
最后计算电阻, 获得实际湿敏电阻抗值 10K电阻
公式: Rhum = T2 *R1 /T1
查表得到湿度值,显示。
若湿度精度要求不是特别严格,(从简单的数据处理规则来看
湿度传感器的温度系数为-0.4%RH/℃,公式为:
H(t)=H (25℃) - 0.4*(t – 25)
例如,实测阻抗按 25℃例如,数据表读数 35℃时读到的阻抗为
30K,按 25℃相对湿度为表格 60%RH,此时按公式计算的实际湿度应为
56%RH
使用中查阅的数据链接如下:
1.西博臣科技有限公司应用手册。
2:阿莫论坛的帖子也可以看下,有具体实现。https://www.amobbs.com/thread-5561786-1-1.html?_dsign=d5a64904