const int inPin = A0;
const int ledPin = LED_BUILTIN;
const int threshold = 80; //LEDを消灯する基準の華氏温度の定義(=閾値)
const float BETA = 3950; //サーミスタの特性を説明するための係数(BETA値)
void setup() {
Serial.begin(9600);
}
void loop() {
int value = analogRead(inPin); //温度のアナログ値を取得
/*アナログ値を温度値に変換する*/
float millivolts = (value / 1024.0) * 5000; //inPinから読み取ったアナログ値を電圧に変換
float celsius = 1 / (log(1 / (1023. / value - 1)) / BETA + 1.0 / 298.15) - 273.15;
//↑電圧を摂氏温度に変換
float fahrenheit = (celsius * 9) / 5 + 32; //摂氏温度を華氏温度に変換
Serial.print("["); Serial.print(millis()); Serial.print("] ");
Serial.print("C: "); Serial.print(celsius); Serial.print(", ");
Serial.print("F: "); Serial.println(fahrenheit);
//高温時にLEDを点灯させる
if (fahrenheit > threshold){ //閾値より華氏が高いとき
digitalWrite(ledPin, HIGH); //LEDを点灯
} else {
digitalWrite(ledPin, LOW); //低ければLEDを消灯
}
delay(1000);
}