Hallöle.
Ich möchte auf meinem Wetter-Schreiber alle sechs Minuten einen Punkt ausgeben.
Momentan gibts da nur zwei Graphen, Innentemperatur und Luftdruck.
Das Ganze wird auf zwei, je 240 pixel langen, Skalen gezeichnet.
Dazu habe ich zwei Arrays gebastelt:
byte tempGraph[240]; // Array für Temperatur-Schreiber
byte tempKurz; // runtergerechneter Wert für den Graphen
byte baroGraph[240]; // Array für Luftdruck-Schreiber
byte luftDruckKurz; // runtergerechneter Luftdruckwert für den Graphen
Das Runterrechnen passt nur die Werte an die Skalen an-weiter nix (und ausserdem könnte der Luftdruckwert grösser werden als ein Byte, aber nur mit Bytes hält sich der Speicherbedarf in erträglichen Grenzen.
Alle sechs Minuten wird nun folgender Zauber ausgelöst:
{
graphZeiger=((stunde*10)+(minute/6)-1) ; // Zeiger für die Arrays berechnen
Serial.print("ich mach ja schon...");
Serial.println(graphZeiger);
luftDruckKurz = luftDruck-895; // Wert an Skala anpassen
baroGraph[graphZeiger]=luftDruckKurz; // Wert eintragen
tempKurz=tempCelsius-5; // Wert an Skala anpassen
tempGraph[graphZeiger]=tempKurz; // und eintragen
}
Die serielle Ausgabe ist nix weiter als debugging, ich gucke lieber, obs hinhaut, als meinen Künsten zu vertrauen...
Jetzt frage ich mich, was nach 24 Stunden passiert. Dann sind die Arrays nämlich voll-muss ich den Zeiger zurücksetzen, oder fängt der von selbst wieder bei 0 an, weil ja die Länge der Arrays sowieso feststeht?
Falls sich jemand fragt, was die Speicherverschwendung soll: das Ganze läuft aufm Nextion, und es gibt da keine Möglichkeit (angeblich aus Speichermangel), Werte für die Wellenform-Komponente an eine inaktive Seite zu senden.
Daher muss ich, wenn die Seite aufgerufen wird, jedes mal sämtliche Werte des Tages neu schicken.
Grauslich, geht aber nicht anders- und der Mega hat den Speicher.
Später werd ich das vermutlich auf SD-Karte umstricken...