Arduino hängt fest

Shane93: Hallo Leute, hatte auch schon jemand das Problem das sich der Arduino ca. einmal die Woche fest fährt und nichts mehr macht?

Nein!

Oder eher, kennt einer eine Lösung dafür?

Ebenfalls nein, ohne weitere Informationen (welcher Arduino, dein Sketch, was hast du gemacht und angeschlossen, wie wird der Ardunio versorgt, gibt es serielle Ausgabe mit denen du das Verhalten überprüfen kannst?) nicht! Alternativ findet sich vielleicht noch einer mit einer Kritallkugel... ;)

Entweder die Lösung von combie oder für ausreichend Kühlung sorgen, z.B. in einem Kühlschrank.

HotSystems: Entweder die Lösung von combie....

1 ist sicher!

In 2 versteckt sich das Problem zu gern!

Gruß Fips

Derfips:
1 ist sicher!

In 2 versteckt sich das Problem zu gern!

Gruß Fips

Du nimmst einem auch jeden Spass. :wink:

Hallo,

ja , hatte ich auch schon :)

es lag immer daran das ich irgendwo Fehler drin hatte, die zu einem Überlauf oder sonst was geführt haben.

viele String Objekte verwendet millis() irgendwie mit int Variablen verarbeitet. Arrays falsch dimensioniert und über das Ende hinaus geschieben Speicher an sich zu knapp , Programm zu lang

usw.

Heinz

HotSystems: Du nimmst einem auch jeden Spass. ;)

Ich gelobe Besserung!

Derfips: Ich gelobe Besserung!

Das nehme ich wohlwollend an.

Rentner: es lag immer daran das ich irgendwo Fehler drin hatte,....

Kann man das nicht irgendwie vermeiden?

Oder hat combie mit Punkt 2 recht?

Edit: Genug Ende

Derfips: Kann man das nicht irgendwie vermeiden?

Natürlich, du musst es nur anders machen, oder besser richtig!

Es gibt mehrere Möglichkeite die zu solchen Symptomen führen. Welche in Deinem Fall es wirklich sind, können wir nicht sagen. Uns fehlen die nötigen Informationen. Grüße Uwe

Shane93: Leute ihr verunsichert mich ganz schön.

Ja, wir können aus jedem Problem das Maximum raus holen.

Leute ihr verunsichert mich ganz schön. :smiley:
Ich werde versuchen heute nachmittag meinen Sketch nachzutragen. Er ist aber ganz schön groß, wenn wirklich jemand Lust hat sich da einzulesen, wäre das sehr nett, wenn nicht, kein Problem. Die anderen Infos, kommen dann natürlich auch.

So die Ausgangssituation ist aktualisiert, habe es doch schon jetzt geschafft. Wie gesagt, wer sich einlesen möchte, gerne, wenn nicht, kann ich es verstehen.

Danke schon einmal.

offensichtliches sehe ich nicht. Evtl. hängts an deiner I2C Kommunikation? Kannst vieleicht mehr Serial.Debug Ausgaben einbauen, damit du siehst wo sich dein Monster aufhängt? Evtl. zu den Serial.Debug.Ausgaben auch die zwei letzten Zeichen am LCD Reservieren nutzen, und dort immer anzeigen, wo der Code sein soll (denn den PC willst vermutlich nicht eine Woche laufen lassen)

Also eine kleine Funktion die dir einfach in 1,14 eine Nummer aufs LCD schicken, und im Code verteilst du dann diese LCD.Debug ausgabe mit eigenen Nummern. Das stört hoffentlich nicht so sehr, du siehst aber, wo der Code das letzte mal war bevor er einfriert.

Die Idee find ich echt gut, das werde ich mal ausprobieren. Danke schon mal dafür. Mal eine andere Frage, sehe ich das richtig das mein Timer für die Feuchtigkeitskontrolle nur einmal gestartet wird und wenn die Feuchtigkeit in dem Moment nach dem Ablauf des Timers nicht klein genug ist, nie wieder gestartet wird? Ich bin mir da ganz schön unsicher.

Ich habe erhebliche Schwierigkeiten dein Programm zu verstehen.

Warum? Es ist nicht aufgeteilt, in einzeln testbare Automaten. Die Verstrickungen verteilen sich auf hunderte Zeilen. Für mich ist das leider ein riesen Durcheinander, ohne klar ausformulierte Abhängigkeiten.

Mit dem Schaltplan habe ich auch 2 Sorgen: Meines Erachtens nach kann das nicht laufen, da die Stromversorgung fehlt. Warum du den DHT22 über einen Portpin versorgst, ist mir auch nicht klar.

--

Ich muss also leider an der Stelle aufgeben und kann dir nur dazu raten den WDT zu aktivieren.

Ich weiss das mein Programm nicht so einfach ist, ich wusste es nur nicht besser.

Die Stromversorgung habe ich auch nicht eingezeichnet, die kommt über die USB Schnittstelle, das funktioniert einwandfrei.

Und der DHT wird über einen Pin versorgt, da ich mit dem ersten Sensor immer ausfälle hatte und ihn somit neustarten konnte, jetzt ist es nur noch als Sicherheit drin, bevor das wieder passiert.

Alles gut, kein Problem und mit dem WDT werde ich mich wohl wirklich mal beschäftigen müssen, habe ich noch nie gemacht.

Hat jetzt nichts mit dem Problem zu tun, es ist nur eine Anmerkung.

int getIntFromString (char *stringWithInt, byte num)
// input: pointer to a char array
// returns an integer number from the string (positive numbers only!)
// num=1, returns 1st number from the string
// num=2, returns 2nd number from the string, and so on
{
  char *tail; 
  while (num>0)
  {
    num--;
    // skip non-digits
    while ((!isdigit (*stringWithInt))&&(*stringWithInt!=0)) stringWithInt++;
    tail=stringWithInt;
    // find digits
    while ((isdigit(*tail))&&(*tail!=0)) tail++;
    if (num>0) stringWithInt=tail; // new search string is the string after that number
  }  
  return(strtol(stringWithInt, &tail, 10));
}

Ich glaube du hast strol nicht richtig verstanden. Du setzt tail hinter die Zahl, damit es dann von strol überschrieben wird, warum?

der DHT22 braucht lt. Datenblatt zwar nur 1.5mA - aber ich würde VCC trotzdem nicht an einen Port-Pin hängen. Wenn du einen Reset brauchst, häng ein Transe/FET/Relais dazwischen.

Was du mit den Timer machst, musst du selber analysieren. Ich habe diese lib nicht im Einsatz.

Wenn du nicht weist was die Lib im Hintergrund macht, dann versuche die Lib Abläufe zu verstehen oder bleibe durchgängig bei den hangeschriebenen millis(). Du hast den riesen Vorteil dass der Schreiber der Lib hier mitliest, vieleicht hast du also doch eine Chance Erkenntnisse zu gewinnen, wenn du ihn konkrete Fragen stellst.

WDT gegen einfrieren ist kein Ausweg. Such deinen Fehler.

Die Stromversorgung habe ich auch nicht eingezeichnet, die kommt über die USB Schnittstelle, das funktioniert einwandfrei.

Das glaube ich dir nicht.

USB ist nur verpflichtet 100mA zu liefern. Selbst die Polifuse auf dem UNO kann nur 500mA

Und 500mA scheint mir doch auch schon arg wenig für den ganzen Tüddel.

Ich weiss das mein Programm nicht so einfach ist, ich wusste es nur nicht besser.

Das macht nix.. Ich kann es so leider nur nicht reparieren/prüfen.

Und der DHT wird über einen Pin versorgt, da ich mit dem ersten Sensor immer ausfälle hatte und ihn somit neustarten konnte, jetzt ist es nur noch als Sicherheit drin, bevor das wieder passiert.

Könnte ein Zeichen dafür sein, dass du ernste Probleme mit der Stromversorgung hast.

und mit dem WDT werde ich mich wohl wirklich mal beschäftigen müssen, habe ich noch nie gemacht.

Ja. Da offensichtlich das Leben von Tieren davon abhängt, solltest du das tun.

Aber das darf dich nicht daran hindern alles andere in Ordnung zu bringen. Der WTD ist nur der letzte Rettungsring um Schaden abzuwenden.