You are on page 1of 1

#include <Wire.

h>
#include "SparkFun_AS6212_Qwiic.h"

int thermistorPin = A3; // 熱敏電阻輸入引腳


float R1 = 10000; // 熱敏電阻的標稱阻值,單位為歐姆
float logR2, R2, T_thermistor, T_AS6212;
float beta = 3907.6;

AS6212 mySensor; // 宣告 Qwiic AS6212 溫度感測器物件

unsigned long previousMillis = 0; // 上一次寫入串口繪圖工具的時間戳


const long interval = 1000; // 時間間隔,即每隔 1000ms(1 秒)記錄一次

void setup() {
Serial.begin(9600); // 初始化串口通信
Wire.begin(); // 初始化 I2C 總線
mySensor.begin(); // 初始化 Qwiic AS6212 溫度感測器
while (!Serial) { } // 等待串口連接
Serial.println("Time,T_thermistor,T_AS6212"); // 輸出 CSV 表頭
}

void loop() {
unsigned long currentMillis = millis(); // 獲取當前時間戳
if (currentMillis - previousMillis >= interval) { // 如果到了記錄的時間
previousMillis = currentMillis; // 更新上一次記錄的時間戳
int rawADC = analogRead(thermistorPin); // 讀取模擬輸入引腳的值
R2 = R1 * (1023.0 / rawADC - 1.0); // 計算熱敏電阻的阻值
T_thermistor = 1.0 / (log(R2/R1)/beta + 1.0/298.15) - 273.15; // 使用史坦哈特-哈
特方程式計算熱敏電阻的溫度值
T_AS6212 = mySensor.readTempC(); // 讀取 Qwiic AS6212 溫度感測器的溫度值
//Serial.print(currentMillis / 1000.0); // 橫軸為時間,單位為秒
//Serial.write(',');
Serial.print(T_thermistor); // 熱敏電阻溫度為紅色
Serial.write(',');
Serial.print(T_AS6212); // Qwiic AS6212 溫度為藍色
Serial.println();
}
}

You might also like