Arduino Wetteranzeige bleibt hängen.

Hallo Leute,
ich habe schon mal zu meinem Problem geschrieben, aber nicht wirklich eine Hilfreiche Antwort bekommen. Vielleicht dieses mal :wink:
Ich habe mir nämlich eine kleine Wetteranzeige gebaut, die sie die Wetterdaten samt Uhrzeit aus dem Internet holt und auf einem LC-Display(20x4) anzeigt. Das funktioniert soweit auch ganz gut. Nur habe ich das Problem, dass die Arduino nach gut einer Stunde nichts mehr ausgibt. Die Uhrzeit bleibt stehen und übers Serial kommt auch nichts mehr. Ich habe schon probiert, die ganzen Delays zu ersetzen, was aber nichts gebracht hat. Ich habe die Vermutung, das es an der Finder Libary liegt, da er immer an ein und der selben Stelle stehen bleibt. Nähmlich vor, beziehungsweise während er die Daten aus dem String zieht. Im Code auch nochmal markiert. Im Anhang habe ich den Code.
Ich hoffe, mir kann dieses mal jemand helfen. Würde mich freuen :smiley:

MfG Lauritz

Arduino_Wetter_Anzeige_auf_Display_9_0.ino (11.8 KB)

Du verschwendest viel RAM durch die falsche Verwendung von String Konstanten

Mach mal überall wo du String Konstanten mit print() und println() verwendest ein F() um die Konstante:

.print(F("String im Flash"));

Dann bleibt der String im Flash und wird nicht anfangs ins RAM kopiert

Außerdem kannst du hiermit abfragen wie viel RAM noch frei ist:

int getFreeRAM() 
{
  extern int __heap_start, *__brkval; 
  int v; 
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); 
}

Danke für deinen Vorschlag mit dem F hinter .print. Den habe ich allerdings auch letztes mal schon bekommen. Mit dem F dahinter ist es so, dass die Arduino mal nach 5 Minuten und mal nach über 2 Stunden stehen bleibt.
Die Ram-Nutzung habe ich auch mal gemessen, da kommt komischerweise immer 830 raus. Egal wie lange die Arduino an ist.

MfG Lauritz

Hat keiner eine Idee, woran es liegen könnte? :astonished:

Arduiner-2014:
Hat keiner eine Idee, woran es liegen könnte? :astonished:

Ich glaube, Du selbst hattest eine Idee, denn oben schriebst Du doch:
Ich habe die Vermutung, das es an der Finder Libary liegt

Warum schmeißt Du diese verwarzte Library dann nicht raus aus Deinem Programm?

Weil ich mir nicht sicher bin, ob es wirklich daran liegt. Aber ich werde es gleich mal ohne diese Libary probieren

Arduiner-2014:
Weil ich mir nicht sicher bin, ob es wirklich daran liegt. Aber ich werde es gleich mal ohne diese Libary probieren

Das wäre doch zum Beispiel mal eine Maßnahme:
Die #include-Zeile der Library auskommentieren, alle Verweise auf Funktionen in der Library auskommentieren. Und in der Zwischenzeit vielleicht statt der Daten, die dann nicht mehr zur Verfügung stehen, nur die Uhrzeit ausgeben lassen. Und dann siehst Du ja, ob das Programm dann auch innerhalb von zwei Stunden stehenbleibt oder ob es immer weiterläuft.

Ich habe es so programmiert, dass wenn die Arduino keine Internetverbindung hat, sie auch garnicht versucht die Wetterdaten anzuzeigen, Sondern nur die Uhrzeit, die dann über die RTC geholt wird. Dann läuft die Arduino ohne anzuhalten.
Ich versuche es nochmal mit einer anderen Textfinder Abfrage, die ich im Internet gefunden habe. Es muss ja auch irgendwie mit dem Textfinder klappen.

if ( (finder.getString("<titel>", "</titel>",titel,50)!=0) )
{
Serial.print("Titel: ");
Serial.println(titel);
}