Da dürfte dann so aussehen:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#define ONE_WIRE_BUS 30 // Temperatursensor pin 30
LiquidCrystal lcd(22, 23, 24, 25, 26, 27, 28);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Sensor[] = {{0x28, 0xCD, 0x9B, 0xDA, 0x03, 0x00, 0x00, 0xF2},
{0x28, 0x1F, 0xA3, 0xDA, 0x03, 0x00, 0x00, 0xE2},
{0x28, 0x2D, 0xB9, 0xDA, 0x03, 0x00, 0x00, 0xA0},
{0x28, 0x37, 0x88, 0xDA, 0x03, 0x00, 0x00, 0x7D}};
int backLight = 29;
uint8_t k[] = {31, 32, 33, 35}; //relais HIGH = Aus; LOW = An
uint8_t knopf1 = 34;
uint8_t buttonState = 0; //knopf
int buttonPushCounter = 0;
uint8_t lastButtonState = 0;
uint32_t previousMillis = 0;
uint32_t interval = 31000;
uint32_t zeit = 31000;
int mpxPin = 5; //drucksensor
int mpx;
float pkPa;
uint8_t ledPin = 9; // (kemo)
uint8_t fade;
uint8_t status;
void setup() {
pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH);
lcd.begin(20, 4);
sensors.begin();
uint8_t i;
for (i = 0; i < 4; i++) {
pinMode(k[i], OUTPUT);
digitalWrite(k[i], HIGH);
}
pinMode(knopf1, INPUT);
int status=0;
}
void loop(){
sensors.requestTemperatures();
uint8_t i;
for (i = 0; i < 4; i++) {
lcd.setCursor(0, i);
lcd.print("T");
lcd.print(i+1, DEC);
lcd.print(":");
if (sensors.isConnected(Sensor[i])) {
lcd.print(sensors.getTempC(Sensor[i]));
lcd.print("C");
} else {
lcd.print("AUS ");
}
}
mpx = analogRead(mpxPin);
pkPa = (mpx/1023.0-0.04)/0.0018;
lcd.setCursor(10, 0);
lcd.print(pkPa);
lcd.print("mb ");
lcd.setCursor(10, 1);
lcd.print(fade);
buttonState = digitalRead(knopf1);
if (buttonState != lastButtonState && buttonState == HIGH) {
buttonPushCounter++;
}
lastButtonState = buttonState;
if (buttonPushCounter % 2 == 0 && status == 0) {
digitalWrite(k1, HIGH);
} else {
programm1();
}
}
void programm1() {
static uint32_t previousMillis = 0;
static uint32_t thresholdMillis = 0;
if (sensors.getTempC(Sensor[0]) >= 25.8 && status == 0) {
digitalWrite(k[0], HIGH);
status = 1;
previousMillis = millis();
} else if (status == 1 && millis() - previousMillis > 60000L) {
digitalWrite(k[1], LOW);
digitalWrite(k[2], LOW);
digitalWrite(k[3], LOW);
fade = 0;
analogWrite(ledPin, fade);
previousMillis = millis();
status = 2;
} else if (status == 2 && millis() - previousMillis > 30) {
previousMillis = millis();
analogWrite(ledPin, ++fade);
if (fade >= 51) {
status = 3;
}
} else if (status == 3 && millis() - previousMillis > 120000L) {
previousMillis = millis();
analogWrite(ledPin, ++fade);
status = 4;
} else if (status == 4 && millis() - previousMillis > 30) {
previousMillis = millis();
analogWrite(ledPin ++fade);
if (fade >= 102) {
status = 5;
}
} else if (status == 5 && millis() - previousMillis > 180000L) {
previousMillis = millis();
analogWrite(ledPin, ++fade);
status = 6;
} else if (status == 6 && millis() - previousMillis > 30) {
previousMillis = millis();
analogWrite(ledPin ++fade);
if (fade >= 153) {
status = 7;
}
} else if (status == 7 && millis() - previousMillis > 240000L) {
previousMillis = millis();
analogWrite(ledPin, ++fade);
status = 8;
} else if (status == 8 && millis() - previousMillis > 30) {
previousMillis = millis();
analogWrite(ledPin ++fade);
if (fade >= 255) {
status = 9;
}
}
if (sensors.getTempC(Sensor[0]) >= 99.0 && thresholdMillis == 0) {
digitalWrite(k[1], HIGH);
} else if (thresholdMillis && millis() - thresholdMillis > 300000L) {
digitalWrite(k[2], HIGH);
digitalWrite(k[3], HIGH);
analogWrite(ledPin, 0);
thresholdMillis = 0;
previousMillis = 0;
status = 0;
}
}