指点成金-最美分享吧

登录

SHTC3温湿度传感器的使用

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了SHTC3温湿度传感器的使用相关的知识,希望对你有一定的参考价值。

1、SHTC3简单说明  

  SHTC3是一个检测温度、湿度的传感器,可以检测-40℃~125℃的温度范围和0%~100%的湿度范围。

  SHTC3使用的通讯方式是I2C,通讯速率可以达到400KHz。

  SHTC3的管脚图如下:

 

 

  从图中可以看到,SHTC3只有4个引脚,电源和地、2个I2C通讯引脚。

  关于SHTC3更多说明,可以查看它的规格资料。

2、SHTC3的设备地址和命令

  在SHTC3的规格资料内,SHTC3的I2C设备地址为0x70,如下:

 

 

  在实际的使用过程中,SHTC3的设备地址需要与读写数据/命令方向位组成一个字节同时发送,字节的最低位为读写数据/命令方向位,高7位是SHTC3的设备地址。

  如果要通过I2C写数据或命令给SHTC3,在I2C起始信号之后,需要发送“1110 0000”,即0xE0给SHTC3,除了通过高7位“1110 000”的设备地址寻址还通过最低位“0”通知SHTC3接下来是写数据或命令操作。

  如果要通过I2C读取SHTC3中的数据,在I2C起始信号之后,需要发送“1110 0001”,即0xE1给SHTC3,除了通过高7位“1110 000”的设备地址寻址还通过最低位“0”通知SHTC3接下来是读取数据的操作。

  SHTC3的命令由2个字节组成,在发送命令时,主机需要通过I2C发送2个字节命令给SHTC3。SHTC3有如下命令:

 

 1 //SHTC3地址 2 #define SHTC3_ADDRESS                   0x70 3  4 //SHTC3 命令 5 #define SHTC3_WIRTE_CMD                 ((SHTC3_ADDRESS<<1)&0xFE) 6 #define SHTC3_READ_CMD                  ((SHTC3_ADDRESS<<1)|0x01) 7  8 #define SHTC3_SOFT_RESET_CMD            0x805D//软件复位命令 9 #define SHTC3_READ_ID_CMD               0xEFC8//读取SHTC3 ID命令10 #define SHTC3_WAKE_UP_CMD               0x3517//将芯片从睡眠模式唤醒命令11 #define SHTC3_SLEEP_CMD                 0xB098//使芯片进入休眠命令12 13 //Normal Mode Clock Stretching Enable Measurement Command14 #define SHTC3_NOR_READ_TEMP_FIR_EN_CMD  0x7CA2//15 #define SHTC3_NOR_READ_HUM_FIR_EN_CMD   0x5C24//16 17 //Normal Mode Clock Stretching Disable Measurement Command18 #define SHTC3_NOR_READ_TEMP_FIR_DIS_CMD 0x7866//19 #define SHTC3_NOR_READ_HUM_FIR_DIS_CMD  0x58E0//20 21 //Low Power Mode Clock Stretching Enable Measurement Command22 #define SHTC3_LOW_READ_TEMP_FIR_EN_CMD  0x6458//23 #define SHTC3_LOW_READ_HUM_FIR_EN_CMD   0x44DE//24 25 //Low Power Mode Clock Stretching Disable Measurement Command26 #define SHTC3_LOW_READ_TEMP_FIR_DIS_CMD 0x609C//27 #define SHTC3_LOW_READ_HUM_FIR_DIS_CMD  0x401A//

 

  主机发送2个字节命令给SHTC3的代码如下:

 1 void SHTC3_WRITE_CMD(uint16_t cmd) 2      3     I2C_START(); 4     SHTC3_ERR = I2C_WRITE_BYTE(SHTC3_WIRTE_CMD); 5     if(SHTC3_ERR != 0) 6      7         SHTC3_ERR = I2C_WRITE_BYTE((cmd>>8) & 0xFF); 8         if(SHTC3_ERR != 0) 9             10             SHTC3_ERR = I2C_WRITE_BYTE(cmd & 0xFF);    11             if(SHTC3_ERR != 0)12                      13                I2C_STOP();14             15         16     17 

  SHTC3_SOFT_RESET_CMD是SHTC3的软件复位命令,主机通过发送该命令来复位SHTC3。一般在上电初始化时,主机通过发送该命令来复位一下SHTC3。通过调用SHTC3_WRITE_CMD(SHTC3_SOFT_RESET_CMD)函数来软件复位SHTC3。

  

 

 

   

 

以上是关于SHTC3温湿度传感器的使用的主要内容,如果未能解决你的问题,请参考以下文章