SHTC3温湿度传感器的使用

Posted h1019384803

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 Command
14 #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 Command
18 #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 Command
22 #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 Command
26 #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温湿度传感器的使用的主要内容,如果未能解决你的问题,请参考以下文章

温湿度传感器

Arduino和C51开发DHT11温湿度传感器

传感器课程设计之温湿度传感器

树莓派连接DHT11温湿度传感器(python)

玩转传感器——DHT11温湿度传感器(STM32版)

温湿度传感器DHT11