void loop(){
// check if conversion is done
if (oneWire.read_bit()) {
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 ");
}
}
// start next conversion
sensors.requestTemperatures();
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);
}
if ( bouncer.update() ) {
if ( bouncer.read() == HIGH) {
if ( buttonState == LOW ) {
programm1();
buttonState = HIGH;
} else {
uint8_t i;
for (i = 0; i < 4; i++) {
digitalWrite(k[i], HIGH);
}
analogWrite(ledPin, 0);
thresholdMillis = 0;
nextMillis = 0;
status = 0;
buttonState = LOW;
}
}
}
}
Das ist der teil wo die sensorwerte und der fadewert abgefragt und auf das display übertragen wird. Und der meine frage betreffende teil mit dem startknopf ist enthalten:
if ( bouncer.update() ) {
if ( bouncer.read() == HIGH) {
if ( buttonState == LOW ) {
programm1();
buttonState = HIGH;
} else {
uint8_t i;
for (i = 0; i < 4; i++) {
digitalWrite(k[i], HIGH);
}
analogWrite(ledPin, 0);
thresholdMillis = 0;
nextMillis = 0;
status = 0;
buttonState = LOW;
}
}
}
Der nächste teil ist das programm1 das mit dem startknopf(knopf1) gestartet und resetet werden soll, sodass man es wieder verwenden kann:
void programm1() {
if (status == 0){
digitalWrite(k[0], LOW);
status = 1;
} else if (sensors.getTempC(Sensor[0]) >= 22.5 && status == 1) {
digitalWrite(k[0], HIGH);
status = 2;
nextMillis = millis() + 30000L;
} else if (status == 2 && millis() > nextMillis) {
digitalWrite(k[1], LOW);
digitalWrite(k[2], LOW);
digitalWrite(k[3], LOW);
fade = 0;
analogWrite(ledPin, fade);
fade = 51;
analogWrite(ledPin, fade);
status = 3;
nextMillis = millis() + 30000L;
} else if (status == 3 && millis() > nextMillis) {
fade = 102;
analogWrite(ledPin, fade);
status = 4;
nextMillis = millis() + 30000L;
} else if (status == 4 && millis() > nextMillis) {
fade = 153;
analogWrite(ledPin, fade);
status = 5;
nextMillis = millis() + 30000L;
} else if (status == 5 && millis() > nextMillis) {
fade = 255;
status = 6;
}
if (sensors.getTempC(Sensor[0]) >= 22.7 && thresholdMillis == 0) {
digitalWrite(k[1], HIGH);
thresholdMillis = millis() + 30000L;
} else if (thresholdMillis && millis() > thresholdMillis) {
digitalWrite(k[2], HIGH);
digitalWrite(k[3], HIGH);
analogWrite(ledPin, 0);
thresholdMillis = 0;
nextMillis = 0;
status = 0;
fade = 0;
}
}
Frag einfach falls ich etwas schlecht beschreibe oder du noch fragen hast.