Hallo lieber Leser. Ich bin noch ein Anfänger (bisher bissl rumprobiert) und habe ein seltsamen Phänomen an meinem neuen Display. Ich habe einen Arduino Uno R3, an dem ich Sensorenwerte eines DHT22 auslese. Diese lasse ich mir auf 2 Displays anzeigen. Das erste Display ist ein fertiges Shield über viele 2 Zeilig (über mehrere Pins verbunden). Das 2. problematische ist ein I2C/TWI LCD2004 (20x4 Zeichen) über I2C Bus. Beide Displays laufen anfangs gut, wenn ich Werte kontinuierlich in void loop {} Teil meines Arduinocodes auf das Display ausgebe, bringt dies mein I2C Display so zum absturz, dass der ganze Arduino hängt. ich mach eigentlich nix anderes als: setCursor(x,y); und lcd.print("irgendwas"); mach ich das (für das I2C Display) nur im void setup teil meines programmcodes dann läuft das blöde ding problemlos. Nur wenn ichs richtig verstanden habe, wird doch nur mehrfach ausgeführt was im void loop teil steht, nur dort darf ich nicht ständig neue befehle an das I2C Display senden, wenn ich nicht möchte das mein Arduion abstürzt. Muss ich irgendwelche Timinigs beachten? Ich hoffe ich hab mich verständlich genug formuliert.
Ich glaube, der Fehler ist in Zeile 42.
Sorry! :-) ... habs verstanden ich werd mal eine einfachere Beschreibung machen. Bei dieser Konfig passierte es auch: Ich hab das Display (und nur dieses) an den Arduino angeschlossen: GND, +5V, SCK an (Arduino analog 4) und SCL an (Arduino analog 5) Ich hab die Hersteller Library verwendet und folgenden Quellcode probiert:
1 | #include <Wire.h> |
2 | #include <LiquidCrystal_I2C.h> |
3 | LiquidCrystal_I2C lcd(0x27,20,4); |
4 | |
5 | void setup() { |
6 | lcd.init(); |
7 | lcd.backlight(); |
8 | }
|
9 | |
10 | void loop () { |
11 | lcd.setCursor(0,0); |
12 | lcd.printByte("Zeile1"); |
13 | |
14 | lcd.setCursor(0,1); |
15 | lcd.printByte("Zeile2"); |
16 | |
17 | lcd.setCursor(0,2); |
18 | lcd.printByte("Zeile3"); |
19 | |
20 | lcd.setCursor(0,3); |
21 | lcd.printByte("Zeile4"); |
22 | }
|
Das ganze läuft ca. 2 Minuten, dann zeigt das Display plötzlich ein paar kryptische Zeichen ist ist anschliessend nicht mehr funktionsfähig. Das Display hat hinten 3 Jumper, welche ich abgezogen habe. Nur so zeigt es überhaupt 4 Zeilen an. Und zwei Buchsen, welche man über ein beiligendes Kabel verbinden könnte. Hab leider keine Ahnung wofür das sein soll, es funktioniert (am Anfang) sowohl mit als auch ohne dies Übrückung der zwei Buchsen. Auf der Herstellerseite DFRobot finde ich dazu keine Informationen.
Sorry, wenn ich den Topic wieder raufhole. Habe bei mir ein sehr ähnliches Problem. Wurde hier eine Lösung gefunden? MFG Uwe
Ich mache mittlerweile Pausen zwischen den Ausgaben. Ich glaub fast, das war ein Pufferüberlauf vorher.
Grade mal probiert. Bringt mir leider keine Änderung.. Muss ich mal weiter forschen...
Hi. Du beschreibst das LCD in jedem Loop-Durchlauf neu. Das musst du gar nicht. Das Display behält die zuletzt angezeigeten Werte. Du brauchst lediglich einmal eine Änderung an das LCD in nur einem Zyklus senden. Dann sollte auch Dein Problem weg sein.
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.