nutze einen Arduino Nano mit einem DHT22 um die Luftfeuchtigkeit auszulesen und darüber dann ein Relais zu steuern. Habe die abfrage aktuell auf 3s gestellt. Zu beginn intialisiere ich den Filter und fülle diesen sofort mit 40 neu gemessenen Werten, danach frage ich erst 3sec ab, sonst habe ich zu beginn eine hohe ungenauigkeit und ggf auch schaltzyklen, welche ich dadurch vermeiden wollte. Ich glätte das Feuchtigkeitssignal über einen Eponentialfilter, damit ich sauberere Werte erhalte
Problem ist, dass nach einigen sekunden einfach nichts mehr passiert, also im SerialMonitor keine Änderung mehr erfolgt (verbindung ist noch vorhanden)
Da passt aber nach etwas mehr als 30 Sekunden nichts mehr rein...
Und wenn Du Dich fragst, warum Du die 30 sekunden ggfls. nicht mal erreichst:
Das hier ist dann der Auslöser:
Ja stimmt, daran hatte ich nicht gedacht, hab es auf unsigned long ausgebessert, jzt läuft er schon mal länger, aber was mach ich wenn "millis" in nen overflow läuft (nach 50 tagen) dann geht ja folgenden überprüfung nicht auf
Na supi - bekommst nen ++ ersten Fehler gelöst und schon festgestellt, das es so nicht geht...
Dann bau das doch um.
Das soll doch ein Vergleich auf readrate werden oder?
Kannst Du mal erklären, was da passieren soll? Mit Worten - nicht mit Variablen.
Denn die
Ja danke, ich hatte selbst etwas gegoogelt aber leider nichts brauchbares gefunden, durch deinen Link hatte es nun funktioniert, vielen dank!
HumidityOld kann nicht unterdimensioniert sein, weil von "SmoothHumidity" drauf geschrieben wird, welcher ebenfalls ein "int" ist. Dieser wird über den Filter zwar mit einer float beschrieben, aber dieser wird doch eh konvertiert (abgesehen davon erwarte ich mir vom Sensor keine entsprechend große Zahl)
Das glaube ich nicht.
Zum einen hast Du ein delay da noch drin, da ist millis schon ganz weit weg.
Und ich hab über Deinen Code einfach mit STRG-T eine schicke Ansicht gemacht:
Ja vielen Dank, da hatte ich wirklich beim ändern eine Klammer falsch gesetzt
das delay ist nur dazu da, dass falls er keine connection findet, sich ein bisschen zeit lässt, und da er sowieso nichts anderes ausführen sollte, dachte ich, ich kann es auch mittels delay lösen - warum ist das ein Problem?
Genau gesagt, Die Zahl paßt nicht mehr als ganzes hinein, es wird aber dennoch was hineingespeichert. Genau gesagt es werden die untersten 15 bit in den Int übernommen.