【I²C总线】AHT20温湿度传感器
下载例程代码: 下载代码 如何使用例程【点击查看教程】
AHT20温湿度传感器(I2C_AHT20)
通过I²C读取AHT20温湿度计
板载AHT20传感器规格:(详细可参考资料包中的手册)
参数 | 值 |
---|---|
芯片型号 | 广州奥松 AHT20 |
I²C地址 | 0x70 |
温度范围 | -40 ~ 85 ℃ |
温度误差 | ± 0.3 ℃ |
温度分辨率 | 0.01 ℃ |
湿度范围 | 0 ~ 100 %RH |
湿度误差 | ± 2 %RH |
湿度分辨率 | 0.024 %RH |
学习板上的AHT20传感器:
如何使用例程
编译并下载程序到学习板
使用配套TYPE-C数据线,将学习板连接到计算机
- 打开 波特律动 串口助手 (baud-dance.com) 在线串口调试助手,点击“选择串口”,选择USB Single Serial
- 此时即可收到温湿度信息,如图所示
例程讲解
下面介绍了如何自己实现该例程的功能
1、工程配置
打开I²C外设:Pinout&Configuration -> Connectivity -> I2C1,将I2C模式选择为I2C
打开串口2外设:Pinout&Configuration -> Connectivity -> USART2,将Mode选择为Asynchronous
配置工程:在Project Manager -> Code Generator页面中,勾选Generate peripheral initialization as ... per peripheral
启用float打印:在cubeIDE菜单栏中,Project Properties -> C/C++ Build -> Settings -> Tool Settings -> MCU Settings,勾选Use float with printf ... -nano
默认情况下,sprintf函数不能打印小数。因此我们需要配置一下编译器,使其能够打印小数
2、代码
(1) 初始化过程
拷贝库文件:将aht20.c文件拷贝到Core -> Src目录下,将aht20.h文件拷贝到Core -> Inc目录下。
在main.c中添加include:aht20.h
引用头文件:需要使用 sprintf 打印输出,在 main.c 引用头文件:
#include "stdio.h"
#include "string.h"初始化AHT20:
// 初始化AHT20
AHT20_Init();
(2) 读取数据
AHT20_Read(float *Temperature, float *Humidity)
预先定义两个float类型的变量,将指针传入该函数,用于接收读取结果
建议读取间隔大于500毫秒
3、AHT20与DHT20、DHT11的区别
三种型号都是广州奥松的温湿度传感器,他们的主要区别如下
AHT20 vs DHT20
AHT20、DHT20在程序上通用,可以相互替代
AHT20是贴片封装,DHT系列是插针封装
AHT20精度比DHT20稍高一些
DHT20 vs DHT11
DHT20、AHT20 是DHT11的全新升级产品,提升了精度、响应时间、测量范围、稳定性,不推荐使用老产品。
DHT20是标准的I²C通信,DHT11是单总线通信
DHT20 内部结构: