Pages: [1]   Go Down
Author Topic: Probleme mit I2C Displays und einem Mega 2560  (Read 919 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wer kann mir helfen? Mein Problem nach dem einschalten habe ich immer Datenmüll in meinem I2C Display.
Wenn ich einen Reset vornehme funktioniert die Anzeige einwandfrei.
Mein Problem, wie kriege ich das hin, dass das Display sofort nach einschalten ohne den Restknopf zu drücken
funktioniert.
im "void setup()" beginne ich mit einem "lcd.init();" also daran kann es nicht liegen.
Ich bin Anfänger, wer kann mir helfen.
Danke im voraus.
« Last Edit: March 16, 2013, 08:50:38 am by lasertronic » Logged

Germany S-H
Offline Offline
Faraday Member
**
Karma: 170
Posts: 3204
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

im "void setup()" beginne ich mit einem "lcd.init();" also daran kann es nicht liegen.

Was passiert, wenn Du nach dem init gleich das Display löschst:
Code:
lcd.init();
lcd.clear();
?

Hättest Du mal einen Kondensator von ca. 100 nF bis zu einigen  μF da, um mal was zu testen?

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke mir "lcd.clear();" habe ich schon getestet, brachte aber keinen Erfolg.

Kondensatoren habe ich da.
Logged

Germany S-H
Offline Offline
Faraday Member
**
Karma: 170
Posts: 3204
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Kondensatoren habe ich da.

OK, mein Verdacht: Der Display-Controller initialisiert nicht, weil er beim Power-On einen zu kurzen Reset vom Arduino-Board bekommt.

Abhilfe: Reset-Dauer beim Power-On verlängern.
Möglich durch: Zwischenschalten eines Kondensators zwischen Reset und Ground Pin am Arduino
(Probier mal: 100 nF,  1μF, 10 μF oder irgendwas dazwischen)

Mögliche Nebenwirkungen: Ggf. kein Sketch-Upload über Bootloader mehr möglich

Also zum Testen erst den Sketch hochladen, dann den Kondensator stecken, dann Power-On

Ergebnis?

Wenn der Display-Kontroller dann mit Kondensator korrekt initialisiert, aber der Sketch-Upload nicht mehr funktioniert, dann müßtest Du die Kondensatorgröße feintunen, evtl. geht dann 100 nF, oder 47 nF, so dass gleichzeitig das Display korrekt initialisiert wird, aber auch ein Upload über Bootloader noch funktioniert.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich habe alles getestet, von 1 NF bis 100 uF , meine alten C++ Bücher aus dem Keller geholt, die include Datei auseinander gepflückt,
Hat fast die ganze Nacht gedauert, dass mit der Initialisierung hat mir aber letztendlich den Denkanstoß gebracht.
Ist wahrscheinlich nicht ganz richtig, aber brachte den Erfolg. 2 x "lcd.init();" hintereinander und es funktioniert.

sieht jetzt so aus . . . . .

lcd.init();  
lcd.init();                      
lcd.backlight();
lcd.clear();  
 
Danke nochmal für die Info´s
« Last Edit: March 16, 2013, 09:17:10 am by lasertronic » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21871
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es könnte auch sein daß Du dem Display zuwenig Zeit  zum initialisieren gibst. Gib mal nach lcd.init();   ein delay(10); ein.

Die Initialisation braucht einige Zeit. Da aus Pin-Sparmaßnamen das busy-Bit des Displays nicht kontrolliert wird, könnte der nächste Befehl zu früh kommen.

Grüße Uwe
Logged

northern germany
Offline Offline
Jr. Member
**
Karma: 2
Posts: 94
Ausbildung: Funkmechaniker, Systemadministrator
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

eventuell auch andersherum, erst delay(50), danach lcd.init()

Dirk
Logged

using arduino leonardo
--
tomorrow today will only be yesterday, so live your life today!

Pages: [1]   Go Up
Jump to: