单片机驱动温湿度传感器MTH01程序

  • 学习4014次

MTH01是一种温湿度传感器模块,可以测量温度和周围环境的相对湿度。温度测量范围从-40摄氏度到70摄氏度。湿度测量范围从18%到98%,湿度测量值在温度为0~50摄氏度时可以保证精度。该模块外接6条引脚,分别是VCC GND RESET SDO SCK CS。从引脚名称就可以看出,该模块采用SPI与单片机通信。VCC范围是2.0~5.5V,属于宽电压,3.3V的单片机和5V的单片机都可以用了。

mth01温湿度传感器

1.读数据程序

unsigned char MTH_ReadByte(void)
{
 unsigned char ucValue;
 unsigned char i,cnt=0;
 for(i=0;i<8;i++ )
 { 
   while(MTH_SCK_DOWN&&(cnt<250))
   {
     cnt++;
     delay_mth(1);
   }
   delay_mth(20);
   ucValue <<= 1;
   if(MTH_SDO_UP)ucValue |= 1;
   while(MTH_SCK_UP&&(cnt<250))
   {
     cnt++;
     delay_mth(1);
   }
 }
 return ucValue;
}

2.获取温湿度程序

void fetch_mth(void)
{
 uint16_t cnt;
 MTH_CS_LOW;
 while(MTH_SCK_DOWN&&cnt<5000)
 {
   cnt++;
   delay_mth(1);
 }
 if(cnt>=5000)
 {
   MTH_CS_HIGH;
   return;
 }
 else 
 {
   Temp_Offset=MTH_ReadByte();
   Temp_Offset<<=8;
   Temp_Offset=Temp_Offset+MTH_ReadByte();
   Humidity=MTH_ReadByte();
   CRC=MTH_ReadByte();
 }
 MTH_CS_HIGH;
}

发表评论