当前位置:首页Arduino > 正文

使用Arduino Wire Library读取温湿度传感器AM2321

作者:野牛程序员:2023-08-17 12:18:19Arduino阅读 2682

要使用 Arduino Wire Library 读取 AM2321 温湿度传感器,需要连接传感器到 Arduino,并编写代码以初始化传感器并读取数据。以下是一个基本的示例,展示如何使用 Wire Library 读取 AM2321 传感器的温度和湿度数据:

  1. 硬件连接:

    • 将 AM2321 的 VCC 引脚连接到 Arduino 的 3.3V 电源。

    • 将 AM2321 的 GND 引脚连接到 Arduino 的 GND。

    • 将 AM2321 的 SDA 引脚连接到 Arduino 的 SDA 引脚(通常为 A4)。

    • 将 AM2321 的 SCL 引脚连接到 Arduino 的 SCL 引脚(通常为 A5)。

  2. 在 Arduino IDE 中创建一个新的 Sketch。

  3. 添加以下代码:

#include <Wire.h>

// AM2321 I2C 地址
#define AM2321_ADDR 0x5C

void setup() {
  Serial.begin(9600);
  Wire.begin();
}

void loop() {
  // 初始化 AM2321
  Wire.beginTransmission(AM2321_ADDR);
  Wire.write(0x03); // 发送读取命令
  Wire.write(0x00); // 请求数据长度
  Wire.endTransmission();

  delay(2); // 等待传感器响应

  // 读取数据
  Wire.requestFrom(AM2321_ADDR, 8);
  uint8_t buf[8];
  for (int i = 0; i < 8; i++) {
    buf[i] = Wire.read();
  }

  // 解析数据
  int humidity = buf[2] << 8 | buf[3];
  humidity /= 10;

  int temperature = buf[4] << 8 | buf[5];
  temperature /= 10;

  // 打印数据
  Serial.print("湿度: ");
  Serial.print(humidity);
  Serial.print("%   温度: ");
  Serial.print(temperature);
  Serial.println("°C");

  delay(5000); // 每 5 秒读取一次数据
}

在上述代码中,首先包含了 Wire.h 头文件,然后在 setup() 函数中初始化 Wire Library 和串口通信。在 loop() 函数中,首先向 AM2321 发送读取命令,然后等待传感器响应。接下来,从传感器读取 8 个字节的数据,并解析湿度和温度数据。

请注意,这只是一个基本示例,实际使用中可能需要进行错误处理和更详细的数据解析。还要注意,AM2321 传感器使用 3.3V 电压供电,确保与 Arduino 的 3.3V 引脚连接。

在代码运行时,打开串口监视器(Serial Monitor)将会显示 AM2321 传感器读取的温度和湿度数据。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击