湿敏电阻HR202L使用记录

采用湿敏电阻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

猜你喜欢

转载自blog.csdn.net/u013830926/article/details/107732695