Ein ganz einfacher Sketch: 3-digit 7-Segmentanzeigem mit Punkt zur Temperaturanzeige mit einem Thermistor. Der Sketch läuft zu schnell, d.h. die Nachkommastelle flackert z.B zwischen 25.6 und 25.7. Das ist OK. Wenn ich versuche den Loop zu verlangsamen mit einem Delay, so flackern die ersten beiden Stellen sehr schnell, ist daher unlesbar. Wo liegt mein Problem?
hb9bqb
Hallo,
wenn du den Schaltplan und Sketch nachlieferst kann man sich das anschauen.
Controller?
10ms? 1000ms?
Nein...
Du darfst den gemessenen Wert nicht sofort ausgeben.
Variante 1:
Den Wert merken und nur alle xxxx ms neu messen.
Variante 2:
Den Wert in einen Zwischenspeicher aufaddieren und den Mittelwert bilden.
Und:
Du darfst für den gesamten Code kein delay() verwenden, soweit es die Anzeige nicht rechtzeitig wiederholt, kommen komische Effekte....
Danke! Ja mit delay geht es nicht, das leuchtet mir jetzt ein, also werde ich Messen und Anzeige zeitlich entkoppeln und nicht im selben Loop abhandeln.
Hallo zeitlich entkoppeln ist gut, aber es gibt nur einen Loop,
schau dir BlinkWithoutDelay an . Das basiert auf der Verwendung von millis(). Du konntest das Messen z.B nur jede Sekunde einmal machen.
im einfachsten Fall könnte das so ähnlich aussehen
Pseudocode
uint32_t altzeit ; // Variable festlegen im globalen Teil vor Setup()
void loop(){
if (millis() - altzeit >=1000{
altzeit = millis();
messen(); // hier die Messfunktion
}
anzeige() // code für die Anzeige
}
Du kannst schon beides "gleichzeitig", darfst nur den Wert nicht sofort verwenden, sondern musst etwas mit ihm anstellen.
Zeigst Du deinen Code, kommt evtl. ein Vorschlag
Danke. Das funktioniert!
Danke.
Variante 1 funktioniert wenn ich anstelle von delay --> Millis verwende.
Variante 2 ist auch eine guter Vorschlag, den ich noch austesten werde.
Es wäre der bessere.
Denn dreist wenn du nur alle xxxx ms eine Ausgabe machst, gibts Du immer nur den Momentanwert aus.
Je nach Sensor können aber schon die Toleranzen bei +-2Digit liegen.
Durch die Ermittlung eines Mittelwertes ist unwahrscheinlicher, das Abweichungen direkt durchschlagen.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.