//void setup() {
// // put your setup code here, to run once:
//
//}
//
//void loop() {
// // put your main code here, to run repeatedly:
//
//}
//void setup() {
// pinMode(LED_BUILTIN, OUTPUT); // 初始化 LED 引脚为输出模式
//}
//
//void loop() {
// digitalWrite(LED_BUILTIN, HIGH); // 点亮 LED
// delay(1000);
// digitalWrite(LED_BUILTIN, LOW); // 熄灭 LED
// delay(1000);
//}
#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); // 保留两位小数
// const char* str = "'temp','*C'"; // 十六进制转义
// uint8_t data[] = ('temp',0xC2,0xB0,'C');//
Serial.println(" `C");
// Serial.write(data, sizeof(data)); // Arduino
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-5.77; //0.03125; // 转换公式(见数据手册)
}
return -999; // 错误值
}