Forum: Mikrocontroller und Digitale Elektronik LCD Problem mit Arduino


von Klaus A. (spitzbuamy)


Lesenswert?

Hi

Ich habe ein Display an meinen Arduino angeschlossen. Leider kann ich 
keinen Text anzeigen. Keine Ahnung wo das Problem lieg. In der ersten 
Zeile werden 16 Rechtecke angezeigt, und in der zweiten Zeile wird 
nichts angezeigt.

Ich habe auch die Verkabelung mehrmals geprüft.
Bei Code habe ich mehrere Anleitungen versucht.
Ich habe 3 Verschiedene Displays probiert - Alle das selbe Ergebniss.

Hat jemand eine Idee wo das Problem liegen könnte?

Aktueller Schaltplan:
http://fritzing.org/projects/how-to-connect-a-qy-1602a-lcd-to-arduino-correctly/

lg
spitzbuamy

von Karl H. (kbuchegg)


Lesenswert?

Klaus Ammerstorfer schrieb:

> Aktueller Schaltplan:
> http://fritzing.org/projects/how-to-connect-a-qy-1602a-lcd-to-arduino-correctly/

Na dann mach mal ein Photo von deinem Aufbau. Irgenwas hast du nicht 
nach Schaltplan angeschlossen.

von EGS (Gast)


Lesenswert?

Hi Klaus,

Schau vorsichtshalber mal nochmals die Datenleitungen durch. Nach deiner 
Beschreibung sind hier die einmal komplett vertauscht (1 mit 4 ... beim 
Nibblebit bzw. 1 mit 8 bei voller Belegung).

Ist in der Doku des Arduino etwas schlecht zu erkennen, aber die gelben 
angedeuteten Datenleitungen sind zwischendrin gekreuzt...

MfG

von Klaus A. (spitzbuamy)


Lesenswert?

Hi

Der Tipp mit dem Foto hat geholfen. Ich habe alles neu Verkabelt, damit 
die Farben passen und das Foto übersichtlich wird.

Jetzt funktioniert es.

Danke ;-)

Ich habe noch zwei andere Fragen:
1) Mein altes Netzteil(vom Handyladegerät) liefert laut Multimeter 5,7V. 
Kann ich dieses als Stromquelle für 5V benutzen oder ist das schon zu 
Hoch?

2) Im Arduino Buch steht, dass man für die Displaybeleuchtung(LED) einen 
Widerstand verwenden sollt. In den Online-Schaltungen ist aber keiner 
eingebaut. Ist das jetzt Notwendig oder nicht?


lg
spitzbuamy

von Philipp K. (numeriusnegidius)


Lesenswert?

Klaus Ammerstorfer schrieb:
> Kann ich dieses als Stromquelle für 5V benutzen oder ist das schon zu
> Hoch?

Das ist eher zu niedrig, denn hinter der 2.1mm Buchse ist ein 
Spannungsregler, der auf 5V runterrugliert. 7.5V, besser 9V solltest du 
schon geben.

Klaus Ammerstorfer schrieb:
> Ist das jetzt Notwendig oder nicht?

Käme jetzt auf das genaue Modell an, hast du das Datenblatt? Die meisten 
(?) scheinen aber einen Widerstand schon verbaut zu haben.

Viele Grüße

Philipp

von EGS (Gast)


Lesenswert?

Die Hintergrundbeleuchtung ist doch meistens nur die Anode und Kathode 
einer LED, die man geschaltet. Ich hatte hier fast keine in der Hand, 
die den Vorwiderstand schon hatten. Also lieber einen ran, als keinen. 
Wenns Datenblatt sagt es ist einer da dann gehts auch ohne.

Wegen dem Netzteil hat Philipp recht, für den Spannungsregler nach der 
Buchse ist 5,7 V zu wenig, 9 V emfiehlt die Doku des Arduinos. Damit 
verheizt man nicht zuviel. Am Anfang reicht aber auch ein USB Kabel vom 
Rechner, danach lieber nen Netzteil mit 9V.

MfG

von Klaus A. (spitzbuamy)


Lesenswert?

Hi

Danke für eure Antworten.
Probleme und Fragen gelöst :-)

lg
sptitzbuamy

von Michael (Gast)


Lesenswert?

Bei mir trat das heute auch auf.
Nach 5h suchen, Ursache gefunden:

- Mein Display kann das "O" "o" nicht darstellen, sobald der Text ein 
"o" enthält, spinnt die Anzeige. Benutze ich die "Null" = "0" als dieses 
"o", dann geht es.

Wer eine Lösung kennt, bitte posten.

Passiert auch bei beim Wort "Hello World",,,,,"Hell0 W0rld" geht aber.

von Christian B. (christian2015)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

ich habe genau das gleiche Problem wie der Thread Ersteller. Bei mir 
leuchtet nur die erste Reihe. Schrift bzw. Text bekomme ich keinen 
angezeigt.

Ich habe nach dieser Belegung alles angeschlossen:

The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

Mittlerweile habe ich sogar die Datenleitungen getauscht, also zum 
Beispiel D4 auf Pin 2, D5 auf Pin 3 usw. da funktioniert aber auch 
nichts.

RW ist auf Ground geschaltet.
RS ist auf Pin 12
Enable (E) ist auf 11

Ein Bild von meinem Aufbau sowie ein Grafik des Schaltplans liegt auch 
bei.

Ich habe einfach ein fertiges Beispiel Programm (HelloWorld-Programm) 
aus der Beispiel Bibliothek geladen und auf den Mikrocontroller 
übertragen.

Habe sogar schon ein anderes Arduino-Board verwendet. Da ist das gleiche 
Problem gegeben...


NACHTRAG: Die Hintergrundbeleuchtung steuere ich über einen 220 Ohm 
Widerstand an.

Mit freundlichen Grüßen,

Christian

von Route_66 H. (route_66)


Lesenswert?

Christian B. schrieb:
> Mittlerweile habe ich sogar die Datenleitungen getauscht, also zum
> Beispiel D4 auf Pin 2, D5 auf Pin 3 usw. da funktioniert aber auch
> nichts.

Wie kommst Du auf solch eine schwachsinnige Idee?
Oder hast Du das in der Software angepasst?

von foo (Gast)


Lesenswert?

Das Bild von deinem Aufbau entspricht deiner testweise vertauschten 
Reihenfolge. Ich würde den Versuch das zu tauschen nicht unbedingt als 
"schwachsinnig" bezeichnen, aber wenn ich so in den Code vom Beispiel 
gucke (und du dort die Pins nicht geändert hast) ist die Reihenfolge so 
wie sie im Kommentar steht schon richtig. Also: zurücktauschen

Ersetz mal die Jumperwires für DB4-7, RS, RW und E durch neue und steck 
sie eins weiter oben oder unten ins Steckbrett, das riecht nach 
fehlerhafter Verbindung (Kabelbruch/Wackelkontakt) von einem dieser 
Pins.

Strom/Hintergrundbeleuchtung funktionieren ja wohl, so wie du es 
beschreibst. Fehler im Code vermute ich jetzt mal nicht, wenn du den 
unmodifiziert hochgeladen hast (ich habe zwar meine Vorurteile gegenüber 
Arduinobeispielcode, aber funktionieren tut er für gewöhnlich schon)

von Christian B. (christian2015)


Lesenswert?

Route 6. schrieb:
> Christian B. schrieb:
>> Mittlerweile habe ich sogar die Datenleitungen getauscht, also zum
>> Beispiel D4 auf Pin 2, D5 auf Pin 3 usw. da funktioniert aber auch
>> nichts.
>
> Wie kommst Du auf solch eine schwachsinnige Idee?
> Oder hast Du das in der Software angepasst?

Eh... Aus diesem Thread hier. Ließ mal oben die Kommentare.

von Christian B. (christian2015)


Lesenswert?

foo schrieb:
>
> Ersetz mal die Jumperwires für DB4-7, RS, RW und E durch neue und steck
> sie eins weiter oben oder unten ins Steckbrett, das riecht nach
> fehlerhafter Verbindung (Kabelbruch/Wackelkontakt) von einem dieser
> Pins.
>
> Strom/Hintergrundbeleuchtung funktionieren ja wohl, so wie du es
> beschreibst. Fehler im Code vermute ich jetzt mal nicht, wenn du den
> unmodifiziert hochgeladen hast (ich habe zwar meine Vorurteile gegenüber
> Arduinobeispielcode, aber funktionieren tut er für gewöhnlich schon)

Ich werde mal ein anderes Steckboard verwenden. Mir fällt nämlich gerade 
ein das ich mit diesem Type schon häufiger Probleme hatte. Ich habe noch 
ein anderes welches ich dann verwende.

von Max H. (hartl192)


Lesenswert?

Das du die Stiftleisten beim LCD nur reingesteckt ohne sie zu löten? 
Sicher, dass alle kontakt habe?

Kontrast richtig eingestellt? Wenn ja sollte vor dem Initialisieren die 
erste Zeile komplett an sein und die zweite aus.

von foo (Gast)


Lesenswert?

Max H. schrieb:
> Kontrast richtig eingestellt? Wenn ja sollte vor dem Initialisieren die
> erste Zeile komplett an sein und die zweite aus.

Hat er geschrieben: "In der ersten Zeile werden 16 Rechtecke angezeigt, 
und in der zweiten Zeile wird nichts angezeigt."

von Christian B. (christian2015)


Lesenswert?

Max H. schrieb:
> Das du die Stiftleisten beim LCD nur reingesteckt ohne sie zu löten?
> Sicher, dass alle kontakt habe?
>
> Kontrast richtig eingestellt? Wenn ja sollte vor dem Initialisieren die
> erste Zeile komplett an sein und die zweite aus.

Gelötet habe ich die nicht. Da habe ich die Sorge das ich das nicht 
ordentlich hinbekomme (Löten kann ich zwar) aber bei den schmalen 
Abständen zwischen den Kontakt ist mir das zu riskant. Aber da habe ich 
auch schon dran gedacht.

Könnte es vielleicht auch möglich sein, das das Display über 8-Bit 
angesteuert werden muss?

von Christian B. (christian2015)


Lesenswert?

Max H. schrieb:
>
>
> Kontrast richtig eingestellt? Wenn ja sollte vor dem Initialisieren die
> erste Zeile komplett an sein und die zweite aus.

Die erste Zeile ist an und die zweite ist aus! Aber es wird nichts 
ausgegeben.

von Christian B. (christian2015)


Lesenswert?

Habe das ganze jetzt auf einem neuen Steckboard neu aufgebaut und auch 
andere Kabel verwendet. Habe aber das gleiche Problem, es leuchtet nur 
die oberste Reihe, die untere nicht. Und es wird nichts ausgegeben.

MfG
Christian

von Max H. (hartl192)


Lesenswert?

Christian B. schrieb:
> Gelötet habe ich die nicht.
Das könnte ein Problem sein. Wenn nur eine Datenleitung einen 
Wackelkontakt hat funktioniert es nicht.

> aber bei den schmalen
> Abständen zwischen den Kontakt ist mir das zu riskant.
Bei einem Pin-Raster von 2.54mm?

> Könnte es vielleicht auch möglich sein, das das Display über 8-Bit
> angesteuert werden muss?
Wenn die Routine für 4-bit Ansteuerung geschrieben ist sollte es bei 
HD44780 kompatiblen LCDs kein Problem geben.


Christian B. schrieb:
> Die erste Zeile ist an und die zweite ist aus! Aber es wird nichts
> ausgegeben.
Der Kontrast sollte also passen.

von Christian B. (christian2015)


Angehängte Dateien:

Lesenswert?

Max H. schrieb:
> Christian B. schrieb:
>> Gelötet habe ich die nicht.
> Das könnte ein Problem sein. Wenn nur eine Datenleitung einen
> Wackelkontakt hat funktioniert es nicht.

OK, dann werde ich doch darüber nachdenken.

>> aber bei den schmalen
>> Abständen zwischen den Kontakt ist mir das zu riskant.
> Bei einem Pin-Raster von 2.54mm?
>

Man könnte grad meinen es wären 2,5 m :-)


>
>
> Christian B. schrieb:
>> Die erste Zeile ist an und die zweite ist aus! Aber es wird nichts
>> ausgegeben.
> Der Kontrast sollte also passen.


Mit dem Kontrast ist alles in Ordnung, der lässt sich auch wunderbar 
übers Poti einstellen.

von Christian B. (christian2015)


Lesenswert?

ich werde mal den Durchgangsprüfer zur Hand nehmen und die Leitungen 
prüfen.
PS: Wenn das LCD nicht HD44780 kompatibel ist, was hätte ich dann für 
möglichkeiten?

von Max H. (hartl192)


Lesenswert?

Christian B. schrieb:
> PS: Wenn das LCD nicht HD44780 kompatibel ist, was hätte ich dann für
> möglichkeiten?
Datenblatt suchen und eine passende Routine schreiben.

von Dennis (sixeck)


Lesenswert?

zu hundert prozent ein kontaktproblem, wenn die pins nicht gelötet 
werden KANN das gar nicht richtig gehen..... zu 99,9% , ich glaube kaum 
das du zu den 0,1% gehörst...

von Christian B. (christian2015)


Lesenswert?

Gut, dann werde ich mich ans löten machen. Und werde dann weiter sehen. 
Ansonsten melde ich mich wieder.

Bis dahin Danke für die Unterstützung.

Gruß

Christian

von Philipp K. (philipp_k59)


Lesenswert?

Wer mit diesem LCD Probleme hat sollte das vielleicht so oft aufbauen 
bis es funktioniert.

Mein erstes war einfach kaputt! (Vielleicht hab ichs auch selbst 
geschrottet)

EDIT:
Bei einigen LCDs muss man die freien 4 bit gegen Masse legen, dann aber 
mit RW dazu.

von spess53 (Gast)


Lesenswert?

Hi

>Bei einigen LCDs muss man die freien 4 bit gegen Masse legen, ...

Kannst du das belegen? Mir ist noch kein Text-Displaycontroller 
untergekommen, der keine interne Pullup-Widerstände an den 
Datenleitungen besitzt. Da wäre  Masse eher kontraproduktiv.

MfG Spess

von Philipp K. (philipp_k59)


Lesenswert?

spess53 schrieb:
> Hi
>
>>Bei einigen LCDs muss man die freien 4 bit gegen Masse legen, ...
>
> Kannst du das belegen?
Wieso muss ich das belegen, Du hast Dir die Antwort doch schon selbst 
gegeben..->

>Mir ist noch kein Text-Displaycontroller
>untergekommen, der keine interne Pullup-Widerstände an den
>Datenleitungen besitzt

Naja, aber Floating Pins waren auch noch nie gut, also lieber nachmessen 
;)

Ich kenne nur Grafikcontroller zB...
RA8875 stehts im schematic
ili9325 stehts im sheet

EDIT:
Aber Du hast recht.. der hat dann anscheinend interne Pullups/Down oder 
was auch immer.. aber auch nicht jeder, dafür muss der der das Display 
hat das Datasheet studieren ;)

von spess53 (Gast)


Lesenswert?

Hi

>Naja, aber Floating Pins waren auch noch nie gut, also lieber nachmessen

Seit wann kommen Floating Pins Pins durch Pull-Up-Widerstände? Und wie 
nachmessen?

>Ich kenne nur Grafikcontroller zB...
>RA8875 stehts im schematic
>ili9325 stehts im sheet

Welche davon laufen im 4-Bit-Mode?

MfG Spess

von Philipp K. (philipp_k59)


Lesenswert?

spess53 schrieb:
> Seit wann kommen Floating Pins Pins durch Pull-Up-Widerstände? Und wie
> nachmessen?
Denk mal drüber nach. kannst Du überhaupt lesen?
Aber nur für Dich nochmal: Wenn ich nicht weiß ob ein Controller 
internen Pullup/Down hat dann kann ich das eventuell nachmessen und dann 
vermuten das die Eingänge schweben. Würde jetzt mal behaupten das das 
geht.

>Welche davon laufen im 4-Bit-Mode?

je nach dem 6bit,8bit, 16bit, 18bit.. wenn ich 8bit am 16bit Port 
benutze muss ich den 8 freien nen widerstand verpassen ;)

Bitte nicht mehr darauf antworten, das ist förderlicher für den Versuch 
ein 1602 Textdisplay in Gang zu bringen..

von spess53 (Gast)


Lesenswert?

Hi

>Denk mal drüber nach.

Wozu?

.. kannst Du überhaupt lesen?

Das lesen kann ich

Ich habe hier Datenblätter von Displays von 27 Herstellern auf meinen 
Rechner. Und für etliche habe ich eigene Librarys geschrieben

>Aber nur für Dich nochmal: Wenn ich nicht weiß ob ein Controller
>internen Pullup/Down hat dann kann ich das eventuell nachmessen und dann
>vermuten das die Eingänge schweben. Würde jetzt mal behaupten das das
>geht.

Wenn du dich mit Displaycontrollern auskennen würdest, dann wüsstest du 
das.

MfG Spess

von Philipp K. (philipp_k59)


Lesenswert?

Na denn bist Du ja genau der richtige um hier bei nem 4bit Textdisplay 
zu helfen ;) Soll ich jetzt Beifall klatschen?

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
Noch kein Account? Hier anmelden.