Das dauert nur 1 sek.
Das dauert zum einen über 1.5s, zum anderen wird dann wieder alles gestoppt.
Ich habe jetzt mal die bibliothek aktualisiert und das neu programm ausprobiert.
Welche Version? Diejenige von mir oder die angepasste mit der Bibliotheksfunktion?
aber den knopf kann ich nur zum anschalten benutzen nicht zum ausschalten während des programmes
Davon wusste ich nichts. Was soll denn ausgeschaltet werden? Alles, also eine Art Reset-Knopf? Vergiss nicht, wir wissen immer noch nicht, wozu das alles dienen soll.
Wenn ich die verzögerung beim faden auf 3 stelle denn braucht es 8 sek um von 0 auf 51 zu faden, diese 8 sek verschieben aber auf dauer alles.
Das ist so, ist aber auch sehr seltsam. Wir müssten jetzt herausfinden, was soviel Zeit braucht.
Versuche mal, die loop()-Funktion durch diese hier auszutauschen:
void loop(){
// check if conversion is done
static uint32_t sensorTime = millis() + 200;
if (millis() > sensorTime && oneWire.read_bit()) {
uint8_t i;
sensorTime += 200;
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 ");
}
buttonState = digitalRead(knopf1);
if (buttonState != lastButtonState && buttonState == HIGH) {
buttonPushCounter++;
}
lastButtonState = buttonState;
if (buttonPushCounter % 2 == 0 && status == 0) {
digitalWrite(k[0], HIGH);
} else {
programm1();
}
}
Dadurch wird die Temperatur höchstens alle 0.2s ermittelt, selbst wenn eine höhere Rate möglich wäre. Das sollte die Fades deutlich beschleunigen und trotzdem einen häufigen Update des Displays ermöglichen.
Desweitern wird der fadewert zum schluss nicht auf 0 gesetzt.
Das wird er doch auch bei der meiner Lösung nicht. Oder verstehe ich da auch etwas falsch?