Jump to content

LCD 20x4 steigt aus, warum?


glaf

Recommended Posts

Hallo zusammen,

 

nach einigen Spielereien bin ich jetzt dabei, meine Heizungssteierung zu programmieren. In 0.1-Sec-Taktung wird ein Joystick abgefragt, in 1-Sec-Taktung die Temperatur, und falls sich was ändert, wird das Relais geschalten und/oder das Display verändert.

 

Einzelne Tests haben bisher immer ganz gut geklappt, aber auf einmal, wenn alles zusammen spielen soll, steigt immer wieder das LCD aus (und zwar nur das LCD), es bleibt hängen und reagiert einfach nicht mehr. Auch mit dem Brickv kann ich dann nix mehr am LCD schalten. Alles andere geht weiterhin. Der Brickd meldet keinen Fehler, die API tut so als wäre alles gut - ist es aber nicht. Es hilft nur ein Reset am Master, was eigentlich ziemlich schlimm ist.

 

Das ganze System besteht aus 4 Bricklets an einem Master, welcher wiederum am USB hängt: Joystick, LCD 20x4, Dual-Relay, Temperature.

 

Dabei werden von zwei verschiedenen Python-Skripten (eins für die Relay-Steuerung per Temp+Relay und eins für die Menüführung per LCD und Joystick) Verbindungen zum Brickd aufgebaut... was bisher nie das Problem war.

Woran kann das liegen? Jemand eine Idee? Firmware- oder Brickd-Bug?

 

Gruß,

Olaf

 

Link zu diesem Kommentar
Share on other sites

Hi Loetkolben,

 

nein, die Verbindung bleibt bestehen.

Und Du hast Recht, Faktor 10 langsamer scheint problemlos zu sein. Nur das führt die Menüsteuerung per Joystick und LCD ad absurdum.

 

Schon eine ziemlich tragische Sache... anscheinend kann man das Display zubomben wie man will, da gibts überhaupt keine Probleme (ausser mit der langsamen Reaktion des LCD). Abschmieren tuts offenbar erst dann, wenn zeitnahe Temperature- und Relay-API-Aufrufe erfolgen. Kann doch nicht im Sinne des Erfinders sein, oder? Ich meine auch das Relay lässt sich 10 mal pro Sec schalten. Und der IP-Stack wird doch von dem bisschen nicht überlastet. Die USB-Verbindung etwa? Trotzdem hätte ich dann gerne eine Fehlermeldung und nicht einfach ein hängenbleibendes Display.

Tja....

Link zu diesem Kommentar
Share on other sites

FW-Versionen sind aktuell, hab ich als erstes geprüft.

 

Habe gerade das Problem weiter eingrenzen können:

Es scheint sich das Display dann aufzuhängen, wenn das Relay schaltet. Und zwar nur dann, wenn tatsächlich eine Last anliegt (in meinem Fall derzeit noch zu Testzwecken eine 40W-Glühbirne). Entferne ich die Last, dann ist alles kein Problem.

 

Da aber weder Brickd noch API irgendwas melden, kann es sein dass "nur" die Display-Einheit abranzt, die Schnittstelle aber noch immer denkt, das Display würde funktionieren?

Und wie könnte ich das vermeiden? Die stromführende 230V-Leitung inklusive Relay-Bricklet sind jetzt ca. 30cm vom Display entfernt. Weiter weg wird wegen Kabellängen erstmal schwierig...

 

Hm.

Link zu diesem Kommentar
Share on other sites

Oh, also wieder ein Problem mit induktiven Lasten. Ich glaube das letzte mal sind wir zu dem Schluss gekommen das zwischen Relay und Last ein "Snubber" benötigt wird: http://de.wikipedia.org/wiki/Snubber

 

Wir hatten uns auch schon überlegt ob wir das nicht direkt aufs Relay Bricklet setzen, aber dadurch würden wir natürlich die Schaltgeschwindigkeiten auch für nicht-induktive Lasten verändern.

 

Mhhh.

Link zu diesem Kommentar
Share on other sites

Man muss aber aufpassen:

 

Tinkerforge classic: Plug und & Play. Anfaengersicher und ohne Loetkolben. FIND ICH GUT! Das soll auch so bleiben!

vs.

Tinkertorge forte: Anpassbar an die Alltagsprobleme. Zugegeben das wuerde mich sehr interessieren.  ;)

 

Alternatividee: Statt Jumper koennte man auch folgendes machen: Man designt die Platine so, dass man per Loetkoben die passenden Bauteile (Kein SMD) selbst einloeten kann. Statt Freiluftfaedelei hat man schon die Loecher/Leiterbahnen vorgegeben, bzw. vorgebohrt.

Damit verhindert man, dass die Anfaeger einfach mal so Jumper stecken und die Platine zum Abrauchen bringen. Der fortgeschrittene User sollte die 2 oder 3 Standartbauteile einloeten koennen.

 

 

Der Loetkolben.

Link zu diesem Kommentar
Share on other sites

Servus,

 

ich wollte auch mal meinen Senf zum LCD Problem dazu geben.

 

Ich hab auch "ständig" das Problem, dass mein 24x4 LCD aussteigt. Ich habe ja mein kleines PHP Script gebastelt, welches das Temperatur und Rotary Poti ausliest. Angeschlossen sind zwar noch IO16 (nix angeschlossen), Ambi und Distance Bricklet, welche aber aktuell nicht angesprochen werden.

 

Ich lasse ja die Temperatur und RotPot mit Callback abfragen. Zudem wird 1x pro Minute die Uhrzeit aktualisiert und die Temperatur wird nur bei Änderungen von 0,1 Grad geändert (normal sind ja 0,01-Werte möglich).

 

Allerdings Steigt das LCD immer wieder mal aus. Mal nach einer halben Stunde, mal nach 3 Stunden... Die Schrift lässt sich am LCD noch lesen, aber das Backlight geht dann aus (das "dimmt" richtig runter). Anhand der Uhrzeit weiß ich dann seit wann es aus ist :).

 

Ich vermute, dass es ein Problem von "statischen Aufladungen" ist, da der Aufbau nur lose am Tisch rumsteht...

 

Gruß

Christian

Link zu diesem Kommentar
Share on other sites

Aha, und ich dachte ich nehme extra erst einmal eine Glühlampe, damit ich das Problem mit der induktiven Last zunächst nicht bekomme. Ist ja keine Wicklung, kein Trafo, kein Motor... hab ich wohl falsch gedacht... tja, gesundes Halbwissen sag ich da nur ;)

Und am Ende soll ja ein Stellventil geschalten werden (eben die Heizung), das wird wohl ein Motor sein, also brauch ich dann sowieso eine Lösung. Sollte ich das sicherheitshalber vielleicht mit einem zweiten Relais realisieren?

Und wie muss ein Snubber dimensioniert sein? Gibts da eine DAU-sichere Standardschaltung? Bin wie gesagt eigentlich kein Hardware-, sondern eher der Softwaremensch... daher find ich Tinkerforge (bisher) auch so gut konzipiert.

 

Und Christian, genau so verhält es sich bei mir auch. Das Display bleibt stehen und die HG-Beleuchtung dimmt langsam runter, es ist aber weiterhin adressierbar (nur ohne dass sich was verändert).

Statische Aufladungen wären bei mir auch möglich, die ganze Chose liegt momentan noch im Pappkarton rum :) Aber dass es läuft wenn die Glühlampe nicht dran ist erklärt sich damit auch nicht unbedingt - wobei ich noch nicht mehrere Stunden abgewartet habe. Mit Glühlampe dauerts nur wenige Minuten bis der Fehler auftritt.

Link zu diesem Kommentar
Share on other sites

Das Display scheint auch besonders empfindlich gegenüber ESD zu sein, da gabs ja schonmal nen Thread wo es darauf hinauslief: http://www.tinkerunity.org/forum/index.php/topic,222.msg965.html#msg965

 

Der Threadersteller hat dort das Problem (in meiner Erinnerung) einschränken können, indem er das Kabel zum Display geschirmt hat. Möglicherweise ist es bei dir gar kein ESD, sondern das Display liegt nur zu nah am (magnetisch schaltenden(?)) Relais...

 

Ich habe bei mir im Moment auch Pappkarton-betrieb, da kann sowas schnell sehr dicht beisammen liegen.

Link zu diesem Kommentar
Share on other sites

also bei mir hängt das Display an einem 2m bricklet Kabel und steht unter meiner Monitor-Konstruktion. der Brick-Turm steht etwas "abseits" in einer Kunststoff-Schale mit den restlichen Bricklets.

 

Bei mir läuft auch alles andere weiter. In der Console seh ich auch wenn ich z.B. am Poti dreh oder die Zeit aktuallisiert werden soll... ganz ohne meckern.

 

Manchmal bilde ich mir auch ein, dass es dann "abstürzt" wenn ich meinen Platz verlasse bzw. nicht da bin (?!).

 

Naja, könnte man das ESD-Thema evtl etwas entschärfen, wenn ich die Masse-Teile (Schraukontakte des LCD Bricklets z.B.) mit irgendwas anderem Masseführenden verbinde wie dem Gehäuse von einem USB-Verlängerungskabel (welches natürlich angeschlossen ist...)? Oder wird die "ESD-Induktion" eher über das Bricklet-Kabel kommen? Wie gesagt, ist ja auch 2 m lang...

 

Gruß

Christian

Link zu diesem Kommentar
Share on other sites

Wir haben uns nochmal etwas Gedanken gemacht. Hatten leider wenig Zeit diese zu Testen. Ich bin immer davon ausgegangen, dass sich das LCD selbst aufhängt (d.h. der Controller auf dem LCD). Ich habe nun aber auch gehört, dass sich die Hintergrundbeleuchtung des LCDs auch nicht mehr schalten lässt. Wenn dem so ist, dann heißt das, dass die I2C Portextension auf dem LCD Bricklet sich aufhängt. Kann das jemand verifizieren?

Link zu diesem Kommentar
Share on other sites

Ich habe nun aber auch gehört, dass sich die Hintergrundbeleuchtung des LCDs auch nicht mehr schalten lässt. Wenn dem so ist, dann heißt das, dass die I2C Portextension auf dem LCD Bricklet sich aufhängt. Kann das jemand verifizieren?

das würd ich so sagen... jo

Ich teste das nochmal, aber bin mir sicher, dass das der Fall ist. Seit 1,5 Std. läuft das Display bisher :)

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...

Hallo zusammen,

 

nochmal zum ursprünglichen Problem: Mein 20x4-LCD steigt aus wenn das Relais eine Last schaltet. Das geht ziemlich schnell, sagen wir nach spätestens 1-5 Schaltvorgängen bleibt das Display hängen und die Helligkeit dimmt langsam runter. Fehlermeldung kommt keine. Ich kann weiterhin API-Funktionen aufrufen und das Ding tut so als wäre alles OK... aber keine visuelle Reaktion.

Liegt am Relais keine Last an, dann gibts auch keine Abstürze.

 

Mittlerweile verschärft sich der Effekt: Wenn das Relais eingeschalten bleibt und die Last (weiterhin eine 100W-Glühbirne) per externem Schalter an- und abgeschalten wird (habe einen ins Zuleitungskabel eingebaut), dann stürzt bei schnellen, manuellen Ein- und Ausschaltzyklen sogar der Master-Brick ab, sodass keine Kommunikation mehr möglich ist. Im Gegensatz zum alleinigen Absturz des LCDs wirft die API dann aber immerhin eine Exception.

 

Tja.

Wie interpretiere ich das? Beeinflussen die Felder um die stromführenden Leitungen das gesamte System dermaßen, dass nicht nur das I2C-Modul vom Display abranzt, sondern sogar ein Totalabsturz des Masters möglich ist?

 

Lösungsvorschläge?

Workarounds?

 

Und an die Entwickler: Welche Lasten kann ich mit dem 227V/AV 10A Relais denn überhaupt bedenkenlos schalten?

 

Weiterhin dankbar um Antworten und Tipps,

Olaf

Link zu diesem Kommentar
Share on other sites

Hallo zusammen,

 

anbei ein paar Ideen.

 

Kann es sein, dass nicht alle Leitentungen zwischen Brick und Bricklet benutzt werden und elektrisch abgeschlossen sind?

 

Somit wuerden sie in der Luft haengen und als Antenne dienen. Destruktiver Vorschlag: Alle Leitungen die nicht benoetigt werden, bzw. in der Luft haengen abknipsen.

 

Wie lang sind eigentlich die Bricklet Leitungen? Kann man kuerzere verwenden?

 

Sollte man die Brickletkabel mal abschirmen? Alufolie?

 

Ist die Chasismasse des Display eigentlich auf GND Potential oder kann sich das Display statisch aufladen?

 

 

Der Loetkolben

 

Link zu diesem Kommentar
Share on other sites

@glaf: Probiere mal die hier beschriebenen Maßnahmen:

http://www.tinkerforge.com/doc/Hardware/Bricklets/Dual_Relay.html#inductive-load-switching

 

@Loetkolben: Alle Leitungen werden beim Dual Relay benutzt. In der Luft hängen tut keine. Die Flächen des LCD Bricklets sind wirkliche Masseflächen.

 

@Wumpus: Tritt das Problem bei dir auch nur auf wenn du Lasten schaltest? Die hier beschriebenen Maßnahmen schon probiert?

http://www.tinkerforge.com/doc/Hardware/Bricklets/Dual_Relay.html#inductive-load-switching

 

 

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...