Hallo Ihr Wissenden,
da unser Keller zur Schimmelbildung neigt, versuche ich mit einem Arduino-Klon eine intelligente Lüftersteuerung zu bauen. Klappt ja prinzipiell ganz gut, aber sporadisch hängt sich das LCD-Display auf und zeigt nur noch Müll an. Das Problem scheint nicht am Arduino zu liegen, das Programm läuft weiter.
Ich nutze einen Arduino Pro Mini - Klon ("Dswy_Robot") und Billig-16x2 Display und -Relaiskarte von freundlichen Chinesen auf Ebay. Das ganze habe ich zusammen mit einer Steckdose in einen Kabelabzweigkasten 100 x 100 eingebaut. Ist schnuckelig klein, aber dafür laufen die 230 V-Leitungen im Zentimeterabstand von Display und Arduino.
Zur Stromversorgung nutze ich ein externes Steckerschaltnetzteil mit 7,5 V, im Gehäuse habe ich einen LM7805-Spannungsregler, an dem dann alle Komponenten hängen. Dazu noch 2 DHT-22 Sensoren (jeweils Feuchte und Temperatur) über 3-adrige Kabel und fertig ist die Steuer-Hardware. Zum Ausprobieren hängt ein Sensor aus dem Fenster, der andere liegt im Kellerraum und ein 230-V-Badlüfter wird geschaltet.
Nach einem Reset initialisiert sich das Display zunächst richtig, die Textausgabe "beginne Messung" im "void setup" wird, soweit ich bisher sah, immer richtig angezeigt. Sporadisch hängt sich das Display dann aber gleich danach auf und zeigt beliebige Zeichen. Es kann aber auch zu einem beliebigen Zeitpunkt später geschehen, wobei ich das Gefühl habe, das der Fehler häufiger nach einem Relais-Schalten auftritt. Bei Programmstart schaltet das Relais auch kurz an und gleich wieder ab. Der recht häufige Absturz beim Programmstart könnte also auch damit zusammenhängen.
Am Anfang trat der Fehler noch viel häufiger auf. Da hatte ich noch einige doch nicht benötigte Masseleitungen frei im Gehäuse herumliegen. Zumindest im zeitlichen Zusammenhang mit der Entsorgung der Masseleitungen tritt der Fehler viel seltener auf. Beim Spannungsregler hatte ich Eingang und Ausgang eh schon zur Schwingungsvermeidung über Kondensatoren mit 200 nF an Masse liegen, zusätzlich habe ich jetzt noch einen 100 µF-Elko zur Spannungsstabilisierung an Ausgang und Masse gelötet. Ausserdem habe ich irgendwo gelesen, dass die Displays stabiler laufen sollen, wenn man "enable" über einen hochohmigen Widerstand an die Versorgungsspannung legt, brachte aber alles nichts.
Ich denke am wahrscheinlichsten liegt der Fehler daran, dass die 230 V Leitung im Gehäuse Störungen zwischen Display und µ-PC verursacht. Ein Kabelbruch der Datenleitungen kann es nicht sein, ich habe den Arduino-Klon mit einer Stiftleiste direkt auf das Display gelötet
Eine schlechte Lötstelle hoffentlich auch nicht, ich habe mich bemüht, sorgfältig zu arbeiten.
Gibt es noch irgendwas, was ich tun kann, außer doch ein größeres Gehäuse zu nehmen? Oder liegt es an einfach am Billigdisplay? Als Workaround könnte ich den "lcd.begin" in void loop legen, dann würde das Display zumindest regelmäßig initialisiert, denke ich.
Liebe Grüße und vielen Dank für jede Antwort
Sokkel