Hi, also ich hab jetzt auch das Problem, dass mein Arduino einfach stehen bleibt. Online finde ich dazu nur, dass daran Interferenzen schuld sein können. Der Arduino hat ohne Probleme einen Ventilator 230V über einen Optokoppler ein und ausgeschalten, je nachdem ob eine gewisse Temperatur überschritten wurde. Jetzt habe ich ein display dazugehängt, welches die Temperatur anzeigt, seitdem hängt er sich regelmäßig auf. Da beim Abschalten des Relais auch ein knacken in den PC Lautsprechern zu hören ist, denke ich, dass da gewaltige Interferenz zurückkommt. Kann man beim Arduino noch etwas auslesen das eventuell Debug Infos anzeigt? Bevor ich hier anfange Schaltpläne zu zeichnen und hochzuladen. Ganz einfach gesagt: Arduino steuert über 5V eben das Relais mit Pin. Danach hängen noch 2 Temp Sensoren DHT 22 dran. Und eben das mini display zum Anzeigen der Temperatur. Seitdem das Display dran hängt, passiert das. Zuvor hat sich nur manchmal der DHT22 aufgehängt, aber das lies sich mit einer simplen DHT Reset Anweisung beheben. Freilauf Diode hängt zumindest beim Relais dran zwischen +5V und GND. Muss da zwischen Pin und GND auch eine ran?
Markus schrieb: > Seitdem das Display dran hängt, passiert das. Firmwarebug? Markus schrieb: > Der Arduino Arduino != Arduino. Welcher uC? Markus schrieb: > Kann man beim Arduino noch etwas auslesen das eventuell Debug Infos > anzeigt? Mit einem geeigneten Debugger.
Du könntest z.B. innerhalb des Programms Statuswörter oder Nummern (1,2,3,4,5) verteilen und die auf dem Display ausgeben. Wenn es dann hängen bleibt siehst du das Statuswort und kannst gucken an welcher Stelle im Programm das passiert ist. Wenns immer die selbe Stelle ist wirds wohl am Code liegen.
Markus schrieb: > Bevor ich hier anfange Schaltpläne zu zeichnen Das solltest du eigentlich schon vor dem Schaltungsaufbau gemacht haben. Jetzt ist die zweitbeste Zeit dafür. Gib allen Bauteilen eigene Namen (R1, R2, OK1, Relais2, ModulX, ...) und schreibe die Typen/Bestellbezeichnungen dazu. Wenn möglich gib für Module einen Link, wo du sie herhast. > und hochzuladen. Lade doch auch gleich ein (paar) Foto(s) vom realen Aufbau mit hoch. Denn selbst super Schaltpläne können wirklich untauglich in Hardware umgesetzt werden...
:
Bearbeitet durch Moderator
Markus schrieb: > Hi, also ich hab jetzt auch das Problem, dass mein Arduino einfach > stehen bleibt. Definiere das. In der Regel arbeitet nämlich die CPU munter weiter. Nur ist ein Zustand eingetreten, den der Programmierer an dieser Stelle nicht erwartet hat, z.B. ein Störimpuls an einem Eingang. Die CPU wartet dann ewig und 3 Tage, bis eine Bedingung erfüllt ist. Die Abhilfe besteht darin, solche Stellen zu identifizieren und mit einem Timeout zu sichern. Läuft der Timeout ab, muß das signalisiert werden, z.B. durch eine blinkende LED. Kann man einen Debugger anschließen, dann kann man sich dort bequem anzeigen lassen, wo die CPU gerade rum-idled. Und generell sollte man während der Entwicklung alle Stromsparmodi erstmal disablen.
:
Bearbeitet durch User
Mikrocontroller-Watchdog aktivieren
derjaeger schrieb: > Mikrocontroller-Watchdog aktivieren Beste Methode, um Programmierfehler zu verschleiern. Nach einem Watchdogreset wird alles getilgt, was Hinweise auf die Fehlerursache geben könnte.
derjaeger schrieb: > Mikrocontroller-Watchdog aktivieren Das ist das allerletze, was man macht, nachdem das System einige Wochen ohne Probleme gelaufen ist. Die Frickelbrüder, die sich für ihren regulären Softwareablauf auf den WD verlassen, die sollten kein Geld für ihre Software bekommen. Wo ich den WD als probates Mittel zum Zweck ansehe, ist z.B. bei stromsparenden Systemen, wenn im "Standby" der µC komplett ausgeschaltet ist, nur der WD läuft und alle 200ms den µC kurz neu startet, um abzufragen, ob eine Taste betätigt oder die Batteriespannung zu weit abgesunken ist.
Lothar M. schrieb: > nur der WD läuft und alle 200ms den µC kurz neu startet, um > abzufragen, ob eine Taste betätigt oder die Batteriespannung zu weit > abgesunken ist. Dann aber mit WD-Interrupt und nicht mit Reset.
Dyson schrieb: > Dann aber mit WD-Interrupt und nicht mit Reset. Ja, seit es den Enhanced Watchdog Timer gibt. Zitat aus der Appnote AVR132: "The WDT in all new AVR devices also has the ability to generate interrupts instead of resetting the device." Bei den alten AVR war zum Verlassen des Power Down per Watchdog tatsächlich noch ein Systemreset nötig...
Markus schrieb: > Freilauf Diode hängt zumindest beim Relais dran zwischen +5V und GND. > Muss da zwischen Pin und GND auch eine ran? Direkt zwischen +5V und GND kommt nie eine Freilaufdiode! Sie kommt parallel zur Spule des Relais.
Diek schrieb: > Du könntest z.B. innerhalb des Programms Statuswörter oder Nummern > (1,2,3,4,5) verteilen und die auf dem Display ausgeben. Wenn es dann > hängen bleibt siehst du das Statuswort und kannst gucken an welcher > Stelle im Programm das passiert ist. > Wenns immer die selbe Stelle ist wirds wohl am Code liegen. Hmm dachte tatsächlich das hängt an hardware, nicht an software, aber hab das dennoch mal probiert ... hängt sich bei display.display() auf ... Hab das jetzt mal auskommentiert und mal gucken wann ich mich darum kümmern kann.
Markus schrieb: > hängt sich bei display.display() auf Dann hängt vielleicht dein I²C Bus. Hast du vielleicht Pull-Up Widerstände vergessen? Auf den China Modulen sind manchmal welche drauf, aber meist zu hochohmig.
Markus schrieb: > Jetzt habe ich ein display dazugehängt, welches die Temperatur anzeigt, > seitdem hängt er sich regelmäßig auf. Und das Display über lange, ungeschirmte Kabel, die nah am Relais und am 230V-Ventilator vorbeiführen, angeschlossen? Markus schrieb: > Bevor ich hier anfange Schaltpläne zu zeichnen und hochzuladen. Für die erste Beurteilung reicht meist ein Foto des Aufbaus.
:
Bearbeitet durch User
Markus schrieb: > hängt sich bei display.display() Inkorrekte Verwendung von Bibliotheken ist ausgeschlossen? Poste mal den Quellcode.
Εrnst B. schrieb: > Markus schrieb: >> Jetzt habe ich ein display dazugehängt, welches die Temperatur anzeigt, >> seitdem hängt er sich regelmäßig auf. > > Und das Display über lange, ungeschirmte Kabel, die nah am Relais und am > 230V-Ventilator vorbeiführen, angeschlossen? > > Markus schrieb: >> Bevor ich hier anfange Schaltpläne zu zeichnen und hochzuladen. > > Für die erste Beurteilung reicht meist ein Foto des Aufbaus. Nein, das Kabel zum Temp Sensor ist geschirmt ... das Ungeschirmte was zum Relais führt war tatsächlich direkt über das Relais gelegt... hab das mal behoben.
Markus schrieb: > Nein, das Kabel zum Temp Sensor ist geschirmt hoffentlich ist der Schirm nicht an die GND-Leitung der Schaltung angeschlossen sondern korrekt am Metallgehäuse. Gruß Anja
Das Entfernen der Leitung zum Relais das über dem Relais gelegen ist, hat nun geholfen. Watchdog hat schon seit 12 Stunden nimmer angeschlagen.
Markus schrieb: > Das Entfernen der Leitung zum Relais das über dem Relais gelegen ist, > hat nun geholfen. Der Nachbar hat den "Knack" weiterhin im Radio.
EAF schrieb: > Markus schrieb: >> Das Entfernen der Leitung zum Relais das über dem Relais gelegen ist, >> hat nun geholfen. > > Der Nachbar hat den "Knack" weiterhin im Radio. Rache dafür das ich jeden morgen seinen Wecker klingeln höre? :D
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.