1.简述
TIP
如果真的有心在嵌入式上玩的更深入,务必要学会去看数据手册,以及尝试去使用STC、ARM之类性能更高的单片机
简述: 我写这篇文章的原因是翻阅这个传感器相关文章的时候发现很多小白都在提问为什么AHT11的相关例程都没有定义接口,我这里主要是想解释下这个。
原因: 因为他使用的是自带的I2c😋,如果你去翻源码就会发现其调用了一个名为Wire.h
的库,这是Arduino自带的一个第三方类库,使用它可以简单的实现I2c协议,至于它用到了什么引脚,根据不同的Arduino会有差别,具体可以查看数据手册,下面贴出UNO3的引脚
出自:Arduino UNO R3 DataSheet,真心推荐去读读
接线:
- SDA --> A4
- SCL --> A5
- GND --> GND
- VIN --> 3V3
2.驱动
前言: Arduino驱动AHT11很简单,到库管理器,搜Adafruit_AHTX0
下载它,然后参考它的例程就能将AHT11跑起来了
adafruit_aht_test.ino:
#include <Adafruit_AHT10.h>
Adafruit_AHT10 aht;
void setup() {
Serial.begin(115200);
Serial.println("Adafruit AHT10 demo!");
if (! aht.begin()) {
Serial.println("Could not find AHT10? Check wiring");
while (1) delay(10);
}
Serial.println("AHT10 found");
}
void loop() {
sensors_event_t humidity, temp;
aht.getEvent(&humidity, &temp);// populate temp and humidity objects with fresh data
Serial.print("Temperature: "); Serial.print(temp.temperature); Serial.println(" degrees C");
Serial.print("Humidity: "); Serial.print(humidity.relative_humidity); Serial.println("% rH");
delay(500);
}
输出:
Adafruit AHT10/AHT20 demo!
AHT10 or AHT20 found
Temperature: 23.28 degrees C
Humidity: 64.91% rH
库及代码作者: Adafruit_AHTX0