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