Go Down

Topic: Arduino Hängt merkwürdig (Read 736 times) previous topic - next topic

aargau

Ich habe vor ca. einem Jahr ein kleines "Home Automation" Projekt umgesetzt. Dabei ging es mir primär darum Temperaturen von oneWire Sensoren über den Arduino an eine kleine Software zu übermitteln. Aus bastlerlust ist dann noch die Steuerung einer Lampe und einer Steckdose dazu gekommen.
Das ganze klappte soweit auch super gut für ca. 7 Monate.

Nun habe ich aber das Problem, dass sich der Arduino aufhängt oder Verarbeitungsfehler macht. Ich muss das Ding alle X Stunden reseten und selbst dann kann es sein das es nur wenige Sekunden läuft.
Da mein Programm 7 Monate problemlos Funktioniert hat gehe ich eigentlich nicht von einem Programmierfehler aus, auch wenn das ganze eher unschön gemacht wurde.

Was mir aber auffällt: Wenn ich die Lampe (Leuchtstoffröhre) einschalte kommt es oft zu den Fehlern, dies kann soweit gehen das sie sich gleich wieder ausschaltet weil wohl die Induktion den Schalter betätigt.

Ich könnte mir also vorstellen das es sich um ein Problem mit Induktionen handelt. Kann es sein, dass der Arduino darauf "allergisch" ist?

Da ich den uC auf einer eigenen Platine habe könnte ich mir auch vorstellen das der Quarz am sterben ist.

Habt ihr ideen? Einfache tricks das Problem heraus zu kriegen?

uwefed

Hast Du die Leuchtstoffröhre erst seit kurzem (seit Du Probleme hast)?
Welches Vorschaltgerät hat die Leuchtstofflampe?
Grüße Uwe

mde110


Habt ihr ideen? Einfache tricks das Problem heraus zu kriegen?

Ich würde folgendes testen:
Anderes Netzteil, alle "Antennen"(Kabel) vom Boad weg und dann testen ob die Probleme noch auftreten.

Wenn man bei seiner Verdrahtung nicht auf EMV (z.B. durch Ferritkerne) achtet, kann das schon zu solchen Problemen führen.

aargau

Sorry das ich mich erst jetzt wieder melde, aber bin momentan ziemlich ausgelastet mit anderen Projekten und habe für meine Privaten praktisch 0 Zeit. Wie so üblich (zumindest bei mir) habe ich nach der Arbeit meist keine Lust mehr daran zu basteln und vor allem ist es dann eh Dunkel, da kann ich nicht mehr gross am Licht basteln.

Nun also:
die Röhre war seit beginn an da. Ich denke eher das sich irgend wie ein Kontaktkabel etwas näher an ein 230V Kabel gekommen ist und es desshalb solche Probleme gibt.
Ich habe nun mal Testweise das ganze auseinander genommen und die Lichtschaltung direkt mit einem UNO getestet. Das Licht schaltet sich (ohne Pullup) dauernd an/aus.
Was mir ebenfalls aufgefallen ist, IN / OUT liegen direkt nebeneinander (ich verwende für das Relais A5 und für den Schalter A4), das könnte auch noch einen Einfluss haben.

Komischerweise konnte ich den Uno bis jetzt nicht zum kompletten absturz treiben, ich denke also das auf meiner eigenen Platine sonst noch etwas am absterben ist.

Vorübergehend habe ich nun das Licht ohne Arduino angeschlossen, so das ich wenigstens wieder normal ein/ausschalten kann. Werde nun wenn ich dazu komme mal ein Test nur mit den oneWire Sensoren machen und schauen ob der uC dann auch abstürzt oder nicht.

Da ich das ganze aber Softwareseitig entprelle kann ich mir irgend wie nur die einstreuung wirklich nicht als Problem ansehen. Dennoch möchte ich mal den entprell Code posten, vielleicht seht ihr ja einen fatalen Fehler.

Code: [Select]

#define MAKESURE 50
int counter;

if (digitalRead(SWITCH)!=switch_state && counter<MAKESURE*2) // damit der counter nicht ueberlaeuft
  {
    counter++;
  }
  else if (counter>0){ // und auch nicht "unterlaeuft"
    counter--;
  }
  delay(1); // Damits nicht zu schnell laeuft

  if (counter>MAKESURE)
  {
    switch_state = digitalRead(SWITCH);
    counter = 0;
    toggle(1);
  }

Udo Klein

Die Kristallkugeln sind im Moment ausgegangen. Wir wäre es wenn Du uns Deinen vollständigen Code zeigst? Ich tippe im Zweifelsfall auf fehlende Pullups. Die können lange Zeit gut gehen und plötzlich merkwürdige Fehler erzeugen.
Check out my experiments http://blog.blinkenlight.net

Go Up