#include <LiquidCrystal_I2C.h>
// Adresse des LCD-Displays meistens 0x27 oder 0x3F
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int LED_BLINK_TIME = 500;
const float BETA = 3950; // Koeffizient des NTCs
int timeLED = 0;
bool statusLED = false;
// ----------------------------------------------------
void setup()
{
Wire.begin(8);
timeLED = millis();
Serial.begin(9600); //Kommunikation starten
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(7, INPUT_PULLUP);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0); // Spalte 0, Zeile 0
lcd.print("Temp:");
lcd.setCursor(12, 0);
}
// ----------------------------------------------------
void loop()
{
int sensorWert = analogRead(A0);
// Temperatur < 0°C
if (sensorWert > 788)
{
if (millis() - timeLED > LED_BLINK_TIME)
{
statusLED = !statusLED;
digitalWrite(8, statusLED);
timeLED = millis();
}
}
// Temperatur >= 0°C
if ((sensorWert < 788) || (sensorWert == 788))
{
digitalWrite(9, HIGH);
}
else
{
digitalWrite(9, LOW);
}
analogRead(A0);
Serial.println(sensorWert);
delay(250);
float Grad = 1 / (log(1 / (1023. / sensorWert - 1)) / BETA + 1.0 / 298.15) - 273.15;
lcd.setCursor(6, 0);
lcd.print(Grad, 2);
lcd.print(char(223));
lcd.print("C ");
}