#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define TASTER 8
#define LED_R 7
unsigned long alteMillisTemp = 0;
const long intervallTemp = 5000;
int sensorpin1 = A0;
float value;
int anzahlMessung = 10;
int TempDigiSumme = 0;
float Mittelwert;
unsigned long aktuellMillisTemp = millis();
void setup()
{
pinMode(LED_R, OUTPUT);
pinMode(TASTER, INPUT_PULLUP);
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop()
{
digitalWrite(LED_R, Schalter());
float sensorTemp = analogRead(sensorpin1);
LCD(Temperatur(sensorTemp));
Serial.print("TemperaturDigiwert: ");
Serial.println(sensorTemp);
}
bool Schalter(){
static bool Status = LOW;
static bool Flankenmerker = LOW;
if(digitalRead(TASTER) == LOW && Flankenmerker == LOW){
Flankenmerker = HIGH;
Status = !Status;
Serial.print("Status: ");
if(Status == LOW) Serial.println("Ein");
else Serial.println("Aus");
delay(20);
}
if(digitalRead(TASTER) == HIGH){
Flankenmerker = LOW;
delay(20);
}
return Status;
}
float Temperatur(float sensorTemp) {
for (int i = 0; i < anzahlMessung; i++) {
TempDigiSumme = TempDigiSumme + sensorTemp;
}
Mittelwert = TempDigiSumme / anzahlMessung;
if (digitalRead(TASTER) == LOW) {
value = ((Mittelwert * 5.0 * 100) / 1023.0);
return value;
}
}
void LCD(float Schalter) {
lcd.setCursor(0, 0);
lcd.print("Temp.:");
lcd.setCursor(6, 0);
lcd.print(Schalter);
lcd.setCursor(10, 0);
lcd.print("\337C");
}