ich heiße Stefan und bin neu in die tolle Arduino Welt eingestiegen. Nach sehr viel Recherche und Bastelarbeit habe ich es geschafft eine Steuerung für meine Brauanlage aufzubauen. Ich hoffe es ist nicht zu plump direkt mit einem Problem hier einzusteigen
Funktion der Steuerung: Diese soll den Maischevorgang steuern. Wenn die Maische zu kalt ist, dann geht die Herdplatte an. Ist die Maische zu warm geht die Herdplatte aus. Zudem werden die einzelnen Temperaturen angefahren.
Mein Problem ist, dass ich auf dem Bildschirm völlig sporadisch Fehler angezeigt bekomme. Ich habe die Befürchtung, dass die Induktionskochplatte ein Störfeld erzeugt. Daraufhin habe ich die Steuerung einen halben Meter weiter weg positioniert aber der Fehler tritt immernoch auf.
Dann habe ich noch das Relais mit Alufolie abgeschirmt und diese geerdet, leider auch ohne Erfolg.
Nun gehe ich davon aus, dass durch das An- und Ausschalten der Induktionsplatte und der damit verbundenen hohen Last von 3500W ein Feld erzeugt wird, welches die Störung verursacht. Das Programm läuft im Hintergrund übrigens störungsfrei weiter. Es ist wirklich nur ein Visualisierungsproblem.
An der Hardware möchte ich eigentlich nichts ändern. Wäre es möglich den Bildschirm einfach ständig neu zu initialisieren (z.B.: alle paar Sekunden)? Das würde den Fehler zwar nicht verhindern, aber er würde dann auf dem Bildschirm wieder verschwinden.
Im Anhang findet Ihr ein Bild von dem Fehler und dem Relais, welches ich nutze!
Unter anderm kann es auch der Lichtbogen beim abschalten sein der dieses Problem erzeugt.
Ich wäre bei so hohen Lasten und Elektronik eher der auf ein Solid State Relais gegangen.
Gruß
DerDani
#include <Wire.h> #include <LiquidCrystal_I2C.h>
// set the LCD address to 0x27 for a 20 chars 4 line display
// Set the pins on the I2C chip used for LCD connections:
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
Jetzt stehe ich leider auf dem Schlauch, wie ich das wiederhole und zwar so, dass mein Programm danach trotzdem noch weiterläuft.
Sind die Kabel zum Display möglichst kurz und haben einwandfreien, sicheren Kontakt. Sonst können leicht Störungen ins Display kommen. Zur Störungsverminderung könntest du möglichst nah ans Dispay einen 100-500nF Blockkondesator plus einen Elko von beispielsweise 100µF parallel zwischen GND und Versorgungsspannung einbauen.
agmue:
Die Initialisierung brauchst Du wahrscheinlich nicht zu wiederholen, nur mittels LCD.print den Text erneuern. Wäre zumndest mein Ansatz.
und dann würde ich diesen Befehl einfach Zwischendurch in den Sketch schreiben oder kann man den Befehl so anpassen, dass sich dieser alle X Sekunden selbst aufruft?
Die 20 cm können bei deinen Störimpulsen schon deutlich zu lang sein.
Der I2C-Bus ist für geräteinterne Verkabelung gedacht.
Dieses Problem hatten wir hier schon öfter.
Bringe je einen 1 kOhm ( 1 - 4,7 k) Widerstand an die I2C-Leitungen (SDA - SCL) gegen +5Volt.
Wobei je kleiner desto besser.
HotSystems:
Die 20 cm können bei deinen Störimpulsen schon deutlich zu lang sein.
Der I2C-Bus ist für geräteinterne Verkabelung gedacht.
Dieses Problem hatten wir hier schon öfter.
Bringe je einen 1 kOhm ( 1 - 4,7 k) Widerstand an die I2C-Leitungen (SDA - SCL) gegen +5Volt.
Wobei je kleiner desto besser.
So ist es jetzt:
LCD Arduino
5V ----- 5V
SDA ----- A4
SCL ----- A5
GND ----- GND
Konkret soll es dann wie sein?
LCD Arduino
5V ----- 5V
SDA
SCL
GND ----- GND
Sorry aber mir fehlt der link, wie ich nun den Widerstand einbauen soll.
Hallo,
mit 220Ω laufen bei mir I2C-Slave´s bis 7m Leitungslänge ohne Probleme.
Ein kleiner 10µF Elektrolytkondensator in die Spannungsversorgung direkt am
I2C-Slave wäre auch nicht schlecht.
Gruß und Spaß
Andreas
P.S. beide Widerstände auf +5v. Die andere Seite eines Widerstand auf SDA, die des anderen Widerstand
auf SCL.
tabledancer:
Jetzt weiß ich zwar, was und wie es zu tun ist, allerdings habe ich noch Verständnisschwierigkeiten, warum es dann funktioniert.
Warum verhindert ein Pull-Up Widerstand Störzeichen auf dem Bildschirm?
Der Widerstand zieht die Leitung auf einen definierten Spannungswert, damit können Störspannungen nicht so leicht die Pegel auf der Leitung verschieben.
Daraus resultiert eine höhere Störfestigkeit und die übertragenen Zeichen bleiben erhalten.