打印
[技术讨论]

AS6221-EK_V1.0 i2c温度传感器+Arduino Uno

[复制链接]
54|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

#include <Wire.h>
#define AS6221_ADDR 0x48  // 默认 I²C 地址

void setup() {
  Serial.begin(9600);
  Wire.begin();// 初始化I²C总线
}

void loop() {
  float temp = readAS6221();
  Serial.print("Temperature: ");
  Serial.print(temp, 2);  // 保留两位小数
  Serial.println(" °C");
  delay(1000);
}

float readAS6221() {
  Wire.beginTransmission(AS6221_ADDR);
  Wire.write(0x00);  // 温度数据寄存器地址(高字节)
  Wire.endTransmission();

  Wire.requestFrom(AS6221_ADDR, 2);
  if (Wire.available() >= 2) {
    uint8_t msb = Wire.read();
    uint8_t lsb = Wire.read();
    int16_t raw = (msb << 8) | lsb;
    return (raw >> 2) * 0.0078125/2-2; //0.03125;  // 转换公式(见数据手册)
  }
  return -999;  // 错误值
}




这个温度的换算和手册里不符,只能用四则运算模拟趋近,
环境温度22.9度。

修改:

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

868

主题

3134

帖子

5

粉丝