I2C/TWI LCD2004 am Arduino Uno stürzt nach paar Minuten ab.

OP (Firma: Privat) #3053853
Lesenswert?

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.
OP (Firma: Privat) #3053914
Lesenswert?

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.
Gast #3306774
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren