1 简介
AHT10温湿度传感器模块
2 PIN
4根引脚,名称与功能如下;
VIN 3.3V供电
GND 地
SCL I2C通信模式时钟信号
SDA I2C通信模式数据信号
3 寄存器
1)地址
观察板子上面的地址选择电阻的焊接是在 0x38还是0x39。这里以0x38 (0011 1000) 为例。
0x38 再在低位加入读写位则 写地址: 0x70(0111 0000) 和 读地址: 0x71(0111 0001)
2)初始化
初始化写入命令 [0xe1, 0x08, 0x00]
3)读数据
写入读数据指令 [0xac, 0x33, 0x00]
4 代码
static unsigned int humi = 0, temp = 0;
void aht10_init(void)
{
unsigned char i2c_tx_buff[3] = {0xe1, 0x08, 0x00};
i2c_master_write(0x70, i2c_tx_buff, 3);
}
void aht10_get_info(void)
{
unsigned char i2c_tx_buff[3] = {0xac, 0x33, 0x00};
i2c_master_write(0x70, i2c_tx_buff, 3);
delay_ms(80);
unsigned char data[6] = {0};
i2c_master_read(0x70, data, 6);
if ((data[0]&0x08) == 0x08)//bit[3] == 1 已校准
{
humi = (data[1]<<12) | (data[2]<<4) | (data[3]>>4); //提取数据
temp = ((data[3]&0x0f)<<16) | (data[4]<<8) | (data[5]); //提取数据
humi = (humi * 100.0/1024/1024+0.5); //公式换算
temp = (temp * 2000.0/1024/1024+0.5)/10.0-50; //公式换算
printf("humi:%d temp:%d \n", humi, temp);
}
else
aht10_init();
}
5 实测
初始化
读数据指令
读到的数据
LOG
16:05:36.995 <285> temp: 00 00 00 27
16:05:37.094 <286> humi: 00 00 00 60
16:05:37.094 <287> temp: 00 00 00 27
16:05:37.196 <289> temp: 00 00 00 27
16:05:37.295 <290> humi: 00 00 00 63
16:05:37.295 <291> temp: 00 00 00 27
16:05:37.394 <292> humi: 00 00 00 64
16:05:37.395 <293> temp: 00 00 00 27
16:05:37.494 <294> humi: 00 00 00 66
16:05:37.494 <295> temp: 00 00 00 27
16:05:37.595 <296> humi: 00 00 00 67
16:05:37.596 <297> temp: 00 00 00 28
16:05:37.693 <298> humi: 00 00 00 68
16:05:37.693 <299> temp: 00 00 00 28
16:05:37.794 <300> humi: 00 00 00 69
16:05:37.794 <301> temp: 00 00 00 28
16:05:37.894 <302> humi: 00 00 00 69
16:05:37.894 <303> temp: 00 00 00 28
16:05:37.996 <305> temp: 00 00 00 28
16:05:38.109 <306> humi: 00 00 00 71
16:05:38.109 <307> temp: 00 00 00 28
16:05:38.194 <308> humi: 00 00 00 71
16:05:38.194 <309> temp: 00 00 00 28
16:05:38.294 <310> humi: 00 00 00 72
16:05:38.295 <311> temp: 00 00 00 28
16:05:38.394 <312> humi: 00 00 00 72
16:05:38.394 <313> temp: 00 00 00 29
16:05:38.494 <314> humi: 00 00 00 72
16:05:38.494 <315> temp: 00 00 00 29
16:05:38.595 <316> humi: 00 00 00 73
16:05:38.595 <317> temp: 00 00 00 29
16:05:38.694 <318> humi: 00 00 00 73
16:05:38.694 <319> temp: 00 00 00 29