glaf Geschrieben May 20, 2012 at 12:05 Geschrieben May 20, 2012 at 12:05 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 Zitieren
Loetkolben Geschrieben May 20, 2012 at 14:05 Geschrieben May 20, 2012 at 14:05 Hallo Olaf, fuer erste Test setze die Zeiten mal auf 1 und 10 Sec (also faktor 10) rauf. Aus meiner Sicht ist das ein IP bombing. Baust du jedesmal die IP Verbindung neu auf? Der Loetkolben. Zitieren
glaf Geschrieben May 20, 2012 at 15:53 Autor Geschrieben May 20, 2012 at 15:53 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.... Zitieren
borg Geschrieben May 20, 2012 at 16:21 Geschrieben May 20, 2012 at 16:21 Da der Joystick analog ausgelesen wird sollte das keine Probleme machen können. Kannst du mal versuchen das Problem nur mit Temeprature und LCD Bricklet nachzustellen? Und welche Firmware Versionen haben die Bricklets? Ist da alles aktuell? Klingt für mich nach einem fixbaren Software Problem. Zitieren
glaf Geschrieben May 20, 2012 at 17:07 Autor Geschrieben May 20, 2012 at 17:07 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. Zitieren
borg Geschrieben May 20, 2012 at 17:48 Geschrieben May 20, 2012 at 17:48 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. Zitieren
batti Geschrieben May 20, 2012 at 17:51 Geschrieben May 20, 2012 at 17:51 Siehe auch hier: http://www.tinkerforge.com/doc/Hardware/Bricklets/Dual_Relay.html#inductive-load-switching Zitieren
AuronX Geschrieben May 20, 2012 at 20:00 Geschrieben May 20, 2012 at 20:00 Könnt ihr denn einen "allgemeinen" Snubber einsetzen? Dachte das käme auch immer auf die Last an die geschaltet wird. Ansonsten wäre ich auch sehr für eine Variante die vor Fehlbedienung sicher ist Zitieren
Loetkolben Geschrieben May 20, 2012 at 20:03 Geschrieben May 20, 2012 at 20:03 Interessant mitzulesen. Aus Hardwaresicht finde ich "jumperbare" Moeglichkeiten klasse. Ggf. die paar Cent mitbestuecken und dann per Jumper "zuschaltbar" machen. Der Loetkolben Zitieren
AuronX Geschrieben May 20, 2012 at 20:11 Geschrieben May 20, 2012 at 20:11 Wenn auch sicherlich langsam einen eigenen Thread wert: Sofern jumperbar/schaltbar sich so leicht realisieren ließe, dann wäre das definitiv die von mir favorisierte Lösung. Zitieren
Loetkolben Geschrieben May 20, 2012 at 21:00 Geschrieben May 20, 2012 at 21:00 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. Zitieren
Christian Geschrieben May 20, 2012 at 21:55 Geschrieben May 20, 2012 at 21:55 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 Zitieren
glaf Geschrieben May 21, 2012 at 06:41 Autor Geschrieben May 21, 2012 at 06:41 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. Zitieren
AuronX Geschrieben May 21, 2012 at 07:56 Geschrieben May 21, 2012 at 07:56 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. Zitieren
glaf Geschrieben May 21, 2012 at 09:14 Autor Geschrieben May 21, 2012 at 09:14 OK, also evtl liegts an der Anfälligkeit vom I2C, das muss ich wohl mal prüfen. Sobald ich wieder zum basteln komme versuch ichs auch mal mit nem selfmade-Schirm. Zitieren
Christian Geschrieben May 21, 2012 at 10:06 Geschrieben May 21, 2012 at 10:06 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 Zitieren
batti Geschrieben May 21, 2012 at 14:43 Geschrieben May 21, 2012 at 14:43 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? Zitieren
Christian Geschrieben May 21, 2012 at 14:56 Geschrieben May 21, 2012 at 14:56 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 Zitieren
glaf Geschrieben May 21, 2012 at 19:42 Autor Geschrieben May 21, 2012 at 19:42 Richtig, wenn es hängt, dann geht überhaupt nichts mehr (auch Hintergrundbeleuchtung weder an noch aus) und die Hintergrundbeleuchtung entlädt sich langsam bis es dunkel ist. Ziffern bleiben stehen, Fehlermeldungen kommen keine. Gibts etwa ne Softwarelösung des Problems? Zitieren
Christian Geschrieben May 22, 2012 at 06:54 Geschrieben May 22, 2012 at 06:54 interessanter weiße ist mein Display die gesamte Nacht durchgelaufen ... Vorführeffekt... Gruß Christian Zitieren
glaf Geschrieben June 3, 2012 at 11:58 Autor Geschrieben June 3, 2012 at 11:58 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 Zitieren
Loetkolben Geschrieben June 3, 2012 at 12:49 Geschrieben June 3, 2012 at 12:49 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 Zitieren
Wumpus Geschrieben June 9, 2012 at 08:55 Geschrieben June 9, 2012 at 08:55 Bin ebenfalls betroffen (LCD hängt, keine Hintergrundbeleuchtung schaltbar). Auch hier würde es wieder helfen, wenn man zumindest die Master per Softwarereset durchstarten könnte. Zitieren
batti Geschrieben June 11, 2012 at 07:42 Geschrieben June 11, 2012 at 07:42 @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 Zitieren
Wumpus Geschrieben June 11, 2012 at 08:31 Geschrieben June 11, 2012 at 08:31 Bei mir tritt es auf, ohne dass ein DualRelay Bricklet beteiligt ist. Ich lasse das ganze einfach permanent laufen und irgendwann ist das LCD "tot". Der Joystick am selben Master funktioniert dann noch. Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.