Forum: Mikrocontroller und Digitale Elektronik LCD funktioniert nicht richtig bzw. zeigt nicht das was erhofft


von Simon N. (ardi)


Lesenswert?

Hi,
habe mir einen LC Display für mein Arduino gekauft und  nun auch gleich 
angeschlossen aber er funktioniert nicht richtig. Wenn ich das Hallo 
World Beispiel von arduino abspielen möchte kommt nur eine Zeile schwarz 
(Bild)
Was ist falsch kann mir jemand helfen? Also alles ist eigentlich richtig 
angeschlossen (hoffe ich)
Danke und Gruß

von Simon N. (ardi)


Angehängte Dateien:

Lesenswert?

Hier das Bild :)

von Chris L. (kingkernel)


Lesenswert?

das zeigt das display immer an, wenn man es mit Spannung versorgt
anhand des Balkens kannst du erkennen, das du zumindest den richtigen 
Kontrast hast. Jetzt musst du es noch ansprechen. Zeig uns dochmal den 
code und wie du das Display angeschlossen hast

von Simon N. (ardi)


Lesenswert?

/*
  LiquidCrystal Library - Blink

 Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
 library works with all LCD displays that are compatible with the
 Hitachi HD44780 driver. There are many of them out there, and you
 can usually tell them by the 16-pin interface.

 This sketch prints "Hello World!" to the LCD and makes the
 cursor block blink.

 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)

 Library originally added 18 Apr 2008
 by David A. Mellis
 library modified 5 Jul 2009
 by Limor Fried (http://www.ladyada.net)
 example added 9 Jul 2009
 by Tom Igoe
 modified 22 Nov 2010
 by Tom Igoe

 This example code is in the public domain.

 http://arduino.cc/en/Tutorial/LiquidCrystalBlink

 */

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // Turn off the blinking cursor:
  lcd.noBlink();
  delay(3000);
   // Turn on the blinking cursor:
  lcd.blink();
  delay(3000);
}

von Karl H. (kbuchegg)


Lesenswert?

Simon Name schrieb:

>  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)


und?
Hast du das auch so angeschlossen?

Das ist auf deinem Bild nicht erkennbar

von Simon N. (ardi)


Angehängte Dateien:

Lesenswert?

Ich habe mich nach dem Plan von Arduino gehalten:
http://arduino.cc/en/uploads/Tutorial/LCD_bb.png

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Es wäre nett, wenn du deine Bilder vor dem Hochladen verkleinern 
könntest. 5MPix braucht es für diese Fotos nicht.

von Davis (Gast)


Lesenswert?

Simon Name schrieb:

> Ich habe mich nach dem Plan von Arduino gehalten:
> http://arduino.cc/en/uploads/Tutorial/LCD_bb.png


Hast du das gleiche Display wie im Schaltplan? Hast du ein Datenblatt 
vom Display?

von Simon N. (ardi)


Lesenswert?


von Karl H. (kbuchegg)


Lesenswert?

Simon Name schrieb:
> Ich habe mich nach dem Plan von Arduino gehalten:
> http://arduino.cc/en/uploads/Tutorial/LCD_bb.png

Vielleicht bin ich ja auch blind.
Aber für mich gehen da eindeutig 2 Kabel zu den Pins 12 und 13 und nicht 
zu den Pins 11 und 12

von Davis (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Simon Name schrieb:
>> Ich habe mich nach dem Plan von Arduino gehalten:
>> http://arduino.cc/en/uploads/Tutorial/LCD_bb.png
>
> Vielleicht bin ich ja auch blind.
> Aber für mich gehen da eindeutig 2 Kabel zu den Pins 12 und 13 und nicht
> zu den Pins 11 und 12

Ist eine Frage der Perspektive :)

von Simon N. (ardi)


Lesenswert?

Das stimmt schon?!!!

von Karl H. (kbuchegg)


Lesenswert?

Davis schrieb:
> Karl Heinz Buchegger schrieb:
>> Simon Name schrieb:
>>> Ich habe mich nach dem Plan von Arduino gehalten:
>>> http://arduino.cc/en/uploads/Tutorial/LCD_bb.png
>>
>> Vielleicht bin ich ja auch blind.
>> Aber für mich gehen da eindeutig 2 Kabel zu den Pins 12 und 13 und nicht
>> zu den Pins 11 und 12
>
> Ist eine Frage der Perspektive :)


Muss gestehen. Das ist nicht wirklich eindeutig. Die Anschlüsse scheinen 
da enorm versetzt zu sein (sieht man bei den Anschlüssen 0, 1, 2, ..) 
und in der schwarzen Masse mit dem grünen Kabel davor, kann man noch 
nicht mal Anschlüsse ordentlich abzählen.

von Davis (Gast)


Lesenswert?

Simon Name schrieb:

>  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)

Die Belegung stimmt nicht mit Datenblatt überein.

von Karl H. (kbuchegg)


Lesenswert?

Davis schrieb:
> Karl Heinz Buchegger schrieb:
>> Simon Name schrieb:
>>> Ich habe mich nach dem Plan von Arduino gehalten:
>>> http://arduino.cc/en/uploads/Tutorial/LCD_bb.png
>>
>> Vielleicht bin ich ja auch blind.
>> Aber für mich gehen da eindeutig 2 Kabel zu den Pins 12 und 13 und nicht
>> zu den Pins 11 und 12
>
> Ist eine Frage der Perspektive :)


Wenn ich nach der gehe: Von hier aus siehst sogar so aus, als ob das 
Anschlüsse 13 und 14 wären. Aber in der schwarzen Pixel-Suppe ist kaum 
was erkennbar.

von Simon N. (ardi)


Lesenswert?

@Davis aber ich erkenn keine Falschheit???!!!

von Davis (Gast)


Lesenswert?

Davis schrieb:
> Simon Name schrieb:
>
>>  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)
>
> Die Belegung stimmt nicht mit Datenblatt überein.

Habe mich getäuscht - sorry.

von Simon N. (ardi)


Lesenswert?

Ok

von Bernhard S. (b_spitzer)


Lesenswert?

Sind die Pins am Display überhaupt verlötet??? Ich sehe oben kein 
Lötzinn und die ersten Pins scheinen in die Löcher gerutscht zu sein.

von Simon N. (ardi)


Lesenswert?

Könnte es vlt daran liegen dass ich ein 100K Poti nehme aber eigentlich 
ja nicht oder?

von Simon N. (ardi)


Lesenswert?

@BernhardSpitzer: nein habe ich nicht dass ist nur mit den 
Sandwichsticksverbunden aber es geht ja trotzdem wie man sieht wenn ich 
es schräg halte

von Martin S. (tungl)


Lesenswert?

> aber es geht ja trotzdem wie man sieht wenn ich
> es schräg halte

Anscheinend ja nicht. Also loete das mal anstaendig fest.

von Davis (Gast)


Lesenswert?

Simon Name schrieb:

> Könnte es vlt daran liegen dass ich ein 100K Poti nehme aber eigentlich
> ja nicht oder?

Glaube ich nicht, da nach dem Zuschalten von VCC sich eine schwarzer 
Balken zeigt (siehe oben), der nach dem Initialisieren verschwindet.

von Simon N. (ardi)


Lesenswert?

Nein er verschwindet nicht der Balken.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Simon Name schrieb:
> Nein er verschwindet nicht der Balken.

Ja.  Daher stand da auch "nach dem Initialisieren".  Deine
Initialisierung klappt nicht, daher sieht das Display eben noch
so aus, wie es aussieht, wenn man einfach nur die Spannung
zuschaltet.

Was du nun konkret vergurkt hast, können wir allerdings schlecht
raten, ein wenig Eigeninitiative darfst du auch an den Tag legen.
Da man davon ausgehen kann, dass die Arduino-Codebibliothek keine
grundlegenden Softwarefehler enthält, ist es außerordentlich
wahrscheinlich, dass der Fehler irgendwo in deiner Hardware zu
suchen ist.  Die hast du aber vor dir liegen, nicht wir.

von Simon N. (ardi)


Lesenswert?

Bin am verzweifeln habe die Sticks jetzt hingelötet und alles nochmal 
nei eingesteckt und auch geschaut dass alles in Ordnung ist aber es geht 
immer noch nicht

von Simon N. (ardi)


Angehängte Dateien:

Lesenswert?

Man sieht das zum Anderen Breadboard wo ich einfach das verbinde mit dem 
Poti

von Davis (Gast)


Lesenswert?

Hast du ein Multimeter, ann jede Verbindung einzeln "durchklingeln".

Läuft der Controller überhaupt? Gegebenenfalls eine LED (plus 
Widerstand) an einen Portpin hängen und blinken lassen.

von Simon N. (ardi)


Lesenswert?

Der lauft schon, die BAlken sind ja immer noch da

von Spess53 (Gast)


Lesenswert?

Hi

>Könnte es vlt daran liegen dass ich ein 100K Poti nehme aber eigentlich
>ja nicht oder?

Ist zumindest zehn mal größer als allgemein üblich.

MfG Spess

von Martin S. (tungl)


Lesenswert?

Simon Name schrieb:
> Der lauft schon, die BAlken sind ja immer noch da
Das ist kein Anzeichen dafuer, dass der Controller laeuft.

Ansonsten: Leg mal den Kontrast-Pin direkt auf Masse. Das muss zwar 
nicht unbedingt passen, aber dann ist die Poti-Verkabelung als moegliche 
Fehlerursache mal ausgeschlossen.

von Thomas D. (thomasderbastler)


Lesenswert?

Denke nich, daß das Problem am 100K Poti liegt.

Die schwarzen Balken deuten eher an falschen Anschluss von LCD hin oder 
das Problem ist die Ansteurung.

Ich würde mal das ganze schnell auf einem Steckbrett zusammen stecken.
Geflashte AVR , Grunbeschalltung und die LCD .

Dreh mal an Deinem Kontrastregler, ändert sich was ?

von Simon N. (ardi)


Lesenswert?

@Martin S: ICh habe nicht genau verstanden: wie muss ich das machen?

von Simon N. (ardi)


Lesenswert?

Kann mir vlt. jemand der den gleichen LCD hat ein Foto schicken bei dem 
alles normal aufgebaut ist?

von holger (Gast)


Lesenswert?

Ich sehe auf den Fotos keine Leitung für VCC.
Evtl. verdeckt durch den Trimmer. Wenn da
wirklich keine Leitung für VCC ist versorgt sich
das Display aus den Datenleitungen.

von Simon N. (ardi)


Lesenswert?

Ja und? heißt des dass es dann keine versorgung für die daten hat?

von Thomas D. (thomasderbastler)


Lesenswert?

Die Standardbelegung :

01 -- GND (VSS)
02 -- 5 V (VCC oder VDD)
03 -- Kontrast (VO oder VEE)
04 -- RS (Register Select)
05 -- R/W (Read/Write)
06 -- E (Enable)
07 -- D0 (Datenbit 0, im 4-Bit Modus nach GND schalten)
08 -- D1 (Datenbit 1, im 4-Bit Modus nach GND schalten)
09 -- D2 (Datenbit 2, im 4-Bit Modus nach GND schalten)
10 -- D3 (Datenbit 3, im 4-Bit Modus nach GND schalten)
11 -- D4 (Datenbit 4)
12 -- D5 (Datenbit 5)
13 -- D6 (Datenbit 6)
14 -- D7 (Datenbit 7)
15 -- evt. Hintergrundbeleuchtung, siehe Datenblatt
16 -- evt. Hintergrundbeleuchtung, siehe Datenblatt

von Davis (Gast)


Angehängte Dateien:

Lesenswert?

holger schrieb:
> Ich sehe auf den Fotos keine Leitung für VCC.
> Evtl. verdeckt durch den Trimmer. Wenn da
> wirklich keine Leitung für VCC ist versorgt sich
> das Display aus den Datenleitungen.


Könnte sein (siehe Anhang).

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Simon Name schrieb:
> Der lauft schon, die BAlken sind ja immer noch da

Du hast es immer noch nicht verstanden: dieser schwarze Balken ist
das, was das LCD anzeigt, wenn man es einfach nur an die
Spannungsversorgung anschließt.  Den zeigt es auch dann an, wenn
du alle anderen Verbindungen komplett offen lässt.

von Thomas (Gast)


Lesenswert?

Ich persönlich würde mal eine ausführliche RubberDuck-Session empfehlen 
(http://www.rubberduckdebugging.com/).
Kauf dir eine Gummiente, setz sie vor dich hin, und dann erklär ihr 
alles. Jedes Kabel, jede Zeile Code, und was genau da passieren soll.
Gummienten sind übrigens sehr neugierig und wollen alles genau wissen. 
Deshalb führ ihr ruhig vor wie du mit dem Multimeter den Strom an den 
einzelnen Pins misst.
Und zeig ihr dass auch wirklich die Verbindung funktioniert indem du die 
Pins am LCD und am anderen Ende des Kabels (oder unten am Arduino) mit 
dem Leitungsprüfer berührst.

Enten freuen sich wenn es dann piepst !

Zur Erklärung: Damit ein LCD funktioniert braucht es mindestens 
folgendes:

01. Der GND PIN am LCD muss mit dem GND Pin am Arduino verbunden sein.
02. Das LCD muss 5V bekommen. Der Arduino liefert 5V, also muss der 
Arduino 5V Pin mit dem LCD VCC verbunden werden.
03. Der Kontrast muss (mit einem Poti an dem du ruhig ein bisschen 
drehen solltest) so eingestellt sein dass du was sehen kannst. Aber 
nicht richtig dunkel - sonst steht vielleicht was da, und du siehst es 
garnicht.
04. Der LCD Pin RS muss mit dem Arduino PIN D12 verbunden sein.
05. Der LCD Pin R/W muss mit dem Arduino PIN GROUND verbunden sein.
06. Der LCD Pin E muss mit dem Arduino PIN 11 verbunden sein,
07. Die LCD Pins D4, D5, D6 und D7 müssen mit den Arduino PINs D5, D4, 
D3 und D2 verbunden sein.
08. Das richtige Programm muss auf dem Arduino laufen.

Wenn das der Fall ist dann siehst du (je nach Kontrasteinstellung) den 
schwarzen Balken auf dem LCD. NICHT MEHR. (der taucht auf weil das LCD 
GND und VCC bekommen hat und ist vollkommen unabhängig vom Programm auf 
dem Arduino).

Wenn du nun das richtige Programm auf dem Arduino hast (und das hast du 
hoffentlich geprüft, 100% bewiesen, und der Ente erklärt !) dann schickt 
dieses Programm eine komplizierte Sequenz aus Ein-, und Ausschalten der 
LCD Pins 4+5+6+7. Und nur wenn diese Sequenz exakt richtig ist, und auch 
auf wenige hunderstelt Sekunden genau ist das LCD Display richtig 
initialisiert und der schwarze Balken verschwindet.

Die paar Kleinigkeiten die da ablaufen wenn du da den Arduino 
Programmcode einspielst sind in Wirklichkeit ein paar hundert 
Prozessorbefehle die ziemlich kompliziert sind.

Thomas

von Simon N. (ardi)


Lesenswert?

Ok, ich habe das LC Display an die pins gelötet und nun kommt konstant 
der Balken aber das Programm fährt nicht ab. Ich benutze das normale 
LiquidChristalProgramm von ARduino.
Kann mir jemand helfen? ich habe alle Pins richtig dran!

von Michael K. (Gast)


Lesenswert?

Simon Name schrieb:
> Ok, ich habe das LC Display an die pins gelötet und nun kommt konstant
> der Balken aber das Programm fährt nicht ab. Ich benutze das normale
> LiquidChristalProgramm von ARduino.
> Kann mir jemand helfen? ich habe alle Pins richtig dran!

Nur mal so aus Neugier: In der Arduino-IDE hast Du das richtige Board 
ausgewählt? Ich kann mir vorstellen, daß es z.B. mit dem Timing nicht 
hinhaut, wenn Du da was falsches hinterlegst.

42m

von Karl H. (kbuchegg)


Lesenswert?

Mach noch mal 2 oder 3 Photos auf denen man deine Verkabelung sehen 
kann. Wichtig: Anhand der Photos muss für uns jeder Anschluss 
nachvollziehbar sein. Und zwar eindeutig: wo beginnt das Kabel, wo endet 
es.


Dass der Arduino prinzipiell läuft und du dein Programm auch wirklich 
übertragen hast, hast du ja hoffentlich überprüft?

Du hast deine Löterei auch hoffentlich durchgeklingelt? Sprich: Du hast 
mit einem Durchgangsprüfer getestet, ob da auch wirklich eine Verbindung 
ist?


Du bist zwar nicht darauf eingegangen, aber Thomas (von vor 3 Postings) 
hat da nicht unrecht mit seinem "Ducktest". Zur Fehlersuche ist das gar 
keine schlechte Vorgehensweise: sich selbst dumm stellen und alles und 
jedes erst mal in Frage stellen. Und zwar solange bis es überprüft und 
als gut getestet worden ist. Mit Annahmen ala "Aber da stimmt doch 
alles" kommt man nicht weiter. Wenn alles stimmen würde, würde es auch 
funktionieren.

von 6A66 (Gast)


Lesenswert?

Simon Name schrieb:
> Ok, ich habe das LC Display an die pins gelötet und nun kommt konstant
> der Balken aber das Programm fährt nicht ab. Ich benutze das normale
> LiquidChristalProgramm von ARduino.
> Kann mir jemand helfen? ich habe alle Pins richtig dran!

Hallo Simon,

nachdem Du ausschließen möchtest, dass Die Verbindung das Problem ist
schlage ich vor dass Du Dich der SW zuwendest.
a) System Einschalten, kein Code läuft. Liegen die Pegel am LCD richtig
an?
b) Initialisierung des LCD ausführen, prüfen ob das Timing stimmt.
Liegen die Pegel jetzt richtig an? Ist der Balken weg?

Wenn jetzt der Balken immer noch erscheint ist dann hast Du bisher etwas
übersehen: entweder die Pegel stimmen nicht (SW, Verbindung doch
fehlerhaft) oder das Timing stimmt nicht.

rgds

von M. J. (manfred-64)


Angehängte Dateien:

Lesenswert?

Simon Name schrieb:
> Kann mir vlt. jemand der den gleichen LCD hat ein Foto schicken bei dem
> alles normal aufgebaut ist?

Wenn's dir was hilft?

Bild 1 ohne init, Kontrast >1V
Bild 2    ---- || ---       0V
und wies aussieht wenn's funst (Kontrast ~0V)

von Electronics'nStuff (Gast)


Lesenswert?

Naja, das 100k Poti könnte schon ein Problem sein.
Es ist viel schwieriger, die korrekte Kontrastspannung einzustellen 
damit. Einfach mal ganz durchdrehen von oben bis unten (von links nach 
rechts oder umgekehrt)..

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Electronics'nStuff schrieb:
> Es ist viel schwieriger, die korrekte Kontrastspannung einzustellen
> damit.

Wenn der schwarze Balken zu sehen ist, dann ist der Kontrast gut. ;-)

von Electronics'nStuff (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Wenn der schwarze Balken zu sehen ist, dann ist der Kontrast gut. ;-)

Ich hatte schon massig Displays, bei denen schwarze Balken zu viel 
Kontrast bedeuteten?

von Teo D. (teoderix)


Lesenswert?

Electronics'nStuff schrieb:
> Ich hatte schon massig Displays, bei denen schwarze Balken zu viel
> Kontrast bedeuteten?

Kann ich bestätigen, waren aber alle älteren Baujahrs.
Der Text war aber immer noch zu sehen.

von Karl H. (kbuchegg)


Lesenswert?

Electronics'nStuff schrieb:
> Jörg Wunsch schrieb:
>> Wenn der schwarze Balken zu sehen ist, dann ist der Kontrast gut. ;-)
>
> Ich hatte schon massig Displays, bei denen schwarze Balken zu viel
> Kontrast bedeuteten?


Den genauen Kontrastwert stellt man dann sowieso erst ein, wenn das 
erste mal Text auf dem LCD zu sehen ist.

Aber auf jeden Fall ist es ein untrügliches Zeichen, dass das LCD nicht 
initialisiert wurde, wenn der Balken zu sehen ist. Ist es initialisiert 
dann verschwindet der Balken. Und das (das verschwinden) sieht man auch, 
wenn der Kontrast nicht ganz genau stimmt sondern nur so ungefähr. Damit 
auch bei initialisiertem LCD alle Pixel schwarz sind, muss der Kontrast 
schon sehr grob daneben sein.

Abgesehen davon ist ein 100k Poti auch nicht schwieriger einzustellen 
als ein 10k Poti. Ob man die Spannung mit einem 100k Spannungsteiler 
erzeugt oder mit einem 10k ist ja für das Drehen von einem Ende zum 
anderen irrelevant. Bei kleinerem Poti rinnt mehr Strom, aber die 
Spannung ist ja dieselbe.

von Karl K. (leluno)


Lesenswert?

Sind d0 bis d3 mit ground verbunden?

von Teo D. (teoderix)


Lesenswert?

karl k. schrieb:
> Sind d0 bis d3 mit ground verbunden?

Hab ich noch in keinem Datenblatt, die waren aber so das schlechteste an 
Datenblättern die ich gesehen habe, gelesen und auch nie gemacht.
Hat immer funktioniert, bis auf das auslesen des Bussy-Flags. Könnte es 
daran gelegen haben?

von spess53 (Gast)


Lesenswert?

Hi

>Sind d0 bis d3 mit ground verbunden?

Was sollen die an GND? Die Displaycontroller haben interne 
Pull-Up-Widerstände.

MfG Spess

von Davis (Gast)


Lesenswert?


von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Electronics'nStuff schrieb:
> Jörg Wunsch schrieb:
>> Wenn der schwarze Balken zu sehen ist, dann ist der Kontrast gut. ;-)
>
> Ich hatte schon massig Displays, bei denen schwarze Balken zu viel
> Kontrast bedeuteten?

Aber dass in einem zweizeiligen Display eine der beiden Zeilen
schwarz ist und die andere nicht, ist ein typisches Indiz für
eine noch nicht erfolgte Initialisierung.

von Davis (Gast)


Lesenswert?

Jörg Wunsch schrieb:

> Aber dass in einem zweizeiligen Display eine der beiden Zeilen
> schwarz ist und die andere nicht, ist ein typisches Indiz für
> eine noch nicht erfolgte Initialisierung.

Wird langsam aber sicher zum "running gag" im Thread.

von Electronics'nStuff (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Abgesehen davon ist ein 100k Poti auch nicht schwieriger einzustellen
> als ein 10k Poti.

Ja, weiss auch nicht, was ich mir da überlegt habe.

Karl Heinz Buchegger schrieb:
> Damit
> auch bei initialisiertem LCD alle Pixel schwarz sind, muss der Kontrast
> schon sehr grob daneben sein.

Ich habe hier ein Display (EA DIP203J, 4*20 Char), das extrem schnell 
schwarze Baken anzeigt. Ca. am den 2. Drittel der Poti-Umdrehung sind 
nur noch schwarze Balken zu sehen! Bei mir hat es zumindest gereicht, um 
die Display-Routine nochmals genau durchzusehen und mich über den Fehler 
zu wundern :P

Gruss

von Karl H. (kbuchegg)


Lesenswert?

Electronics'nStuff schrieb:
> Karl Heinz Buchegger schrieb:
>> Abgesehen davon ist ein 100k Poti auch nicht schwieriger einzustellen
>> als ein 10k Poti.
>
> Ja, weiss auch nicht, was ich mir da überlegt habe.
>
> Karl Heinz Buchegger schrieb:
>> Damit
>> auch bei initialisiertem LCD alle Pixel schwarz sind, muss der Kontrast
>> schon sehr grob daneben sein.
>
> Ich habe hier ein Display (EA DIP203J, 4*20 Char), das extrem schnell
> schwarze Baken anzeigt. Ca. am den 2. Drittel der Poti-Umdrehung sind
> nur noch schwarze Balken zu sehen!

ok. Zustimmung.
Sowas hatte ich auch mal.

> Bei mir hat es zumindest gereicht, um
> die Display-Routine nochmals genau durchzusehen und mich über den Fehler
> zu wundern :P

Bei mir wars so, dass ich dann zufällig mal etwas schräg von vorne/unten 
auf das LCD geschaut habe (wies halt am Basteltisch so ist) und ich aus 
dem Winkel das "Hallo World" im Balken gerade noch erkennen konnte. Eine 
kurze Drehung am Kontrast-Poti und "das Problem "war keines mehr. Aber 
zunächst hatte ich da auch erst mal dumm geschaut, als die bewährten 
LCD-Routinen scheinbar das LCD nicht initialisieren konnten.

OK. Also ich geb zu, ganz so einfach ist die Sache dann auch nicht, wie 
es hier dargestellt wurde. Aber einfach mal das Poti von einem Ende zum 
anderen durchdrehen sollte eindeutige Klarheit bringen. Bei den üblichen 
LCD ist die richtige Kontrasteinstellung in der Nähe von 0V am Vee Pin 
und kleinere Abweichungen davon (halber Potiweg) sollten der 
grundsätzlichen Erkennbarkeit der Initialisierung keinen Abbruch tun.

von Electronics'nStuff (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Aber einfach mal das Poti von einem Ende zum
> anderen durchdrehen sollte eindeutige Klarheit bringen.

Ja, das schafft immer Klarheit und erspart (wie in deinem geschilderten 
Fall ebenfalls) manchmal echt Arbeit :)

von 6A66 (Gast)


Lesenswert?

Davis schrieb:
> Wird langsam aber sicher zum "running gag" im Thread.

Ich klink' mich jetzt aus ....
Kontrast die 77ste
Und Initialisierung die 42ste.

rgds

von Teo D. (teoderix)


Lesenswert?

Erinnert mich an die PC-Zeiten vor 25Jahren.

Hilfe der Computer ist kaputt,
auf dem Bildschirm ist nichts zu sehen

Kontrast und Hellichkeit am Monitor hoch gedreht, repariert :D

von Electronics'nStuff (Gast)


Lesenswert?

Teo Derix schrieb:
> Kontrast und Hellichkeit am Monitor hoch gedreht, repariert :D

Oder die Maus bewegt ^^

von Thomas (Gast)


Lesenswert?

Ich denke das ganze hat eigentlich garnichts mit dem LCD-Display zu tun.
Ein LCD Display ist nur so ziemlich eine der ersten 'größeren' Sachen 
die man 'mal schnell' ausprobieren will.

Dummerweise ist ein LCD-Display vom Aufbau sehr kompliziert und nicht 
wirklich ein 'wirf ein paar Buchstaben rein, und die werden 
angezeigt'-Dings.

So gut wie immer sind die Probleme doch eher grundlegend:
Verkabelung, Timing, richtige Programmausführung...

Bei mir wars z.B. dass ich vergessen hatte die Prozessorregister zu 
leeren und damit das falsche Timinig hatte.
Also eher 'grundlegende Probleme' mit dem Programmieren von AVR 
Assembler.
Das LCD war unschuldig.

LCDs sind einfach nur ziemlich pinkelig wenns um ihre Initialisierung 
geht :-)

Thomas

von Electronics'nStuff (Gast)


Angehängte Dateien:

Lesenswert?

@TE

LIES!

Einfach mal lesen, wie das die anderen Leute so gelöst haben.
Wenn du es tatsächlich nicht schaffst ein popeliges Display mit einem 
popeligen Arduino mit einer fertigen Lib zum laufen kriegst, dann ist 
das einfach das falsche Hobby für dich.

Multimeter rausnehmen -> Alle Verbindungen checken.
Controller checken -> Evtl. LED anlöten oder so
Takt checken
etc. pp.

Es gibt 10000000 Tipps dazu im Netz.
Als kleine "Untermalung" meiner Aussage, hier ein Screenshot.

Gruss und etwas mehr Durchhaltevermögen.

von Karl H. (kbuchegg)


Lesenswert?

Thomas schrieb:

> LCDs sind einfach nur ziemlich pinkelig wenns um ihre Initialisierung
> geht :-)

Geb ich dir recht.
Allerdings haben wir hier den BASCOM/Arduino Fall.
D.h. die Software müsste eigentlich korrekt sein.
Da bei einem Arduino auch der Quarz vom Hersteller schon 'aktiviert' 
wurde, sollte es auch da keine Probleme geben.

So leid es mir auch tut. Ich sehe nur 2 Möglichkeiten
* entweder kann der Arduino (mit seiner LCD_Klasse) mit diesem
  LCD überhaupt nicht (aus welchem Grund auch immer)
* oder es liegt noch ein Hardwareproblem vor, dass wir alle pausenlos
  übersehen. Ist halt auch schwer, wenn alles was wir haben ein paar
  windige Photos sind. Braucht ja nur irgendwo ein Kabel keinen Kontakt
  haben oder eine Lötstelle schlecht sein.


Und dann steht ja auch noch im Raum, ob der Arduino prinzipiell läuft 
(wovon ich eigentlich ausgehe), bzw. ob das Programm überhaupt korrekt 
in den Ardu übertragen wurde. Daher würde ich mir mal im Programm etwas 
einbauen, womit ich sicher sagen kann: Prozessor läuft. Eine blinkende 
LED an einem der restlichen freien Pins ist immer gut.

von Teo D. (teoderix)


Lesenswert?

Electronics'nStuff schrieb:
> Oder die Maus bewegt ^^

Damals gabs noch keine Bildschirmschoner :)


Thomas schrieb:
> LCDs sind einfach nur ziemlich pinkelig wenns um ihre Initialisierung
> geht :-)

Manche brauchen da auch etwas längere Pausen als angegeben. Vor allem 
die Zeit nach dem einschalten sollte man eher großzügig bemessen.

von Thomas (Gast)


Lesenswert?

Mein persönlicher Tipp wäre der hier:

http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75

Sicherlich für dieses Projekt überdimensioniert, aber wirklich mal zu 
sehen was auf den einzelnen Leitungen für Signale rüberkommen sollte 
eigentlich die meisten Probleme lösen.

Da das Ding aber aus Übersee kommt (oder so) hast du wohl das LCD am 
laufen bis es da ist :-)

Thomas

von Thomas (Gast)


Lesenswert?

Stimmt, da der TE noch garnicht gesagt hat ob er überhaupt seine 
Arduinos 'so richtig' versteht wäre es auch interessant zu wissen ob die 
richtig laufen.

Eigentlich sollte das Blink-Beispiel mit Blinkzeit von einmal 100ms, 
einmal 500ms und einmal 1000ms grob zeigen können ob alles richtig 
funktioniert.

Und ob der Poti nun richtig eingestellt ist weiß man auch ned so recht.

Übrigens könnte man auch den Kontrastpin per PWM ansteuern.
Bei Arduino heißt das AnalogWrite() (glaub ich) und sollte relativ 
einfach den Kontrast regeln können.

Thomas

von Teo D. (teoderix)


Lesenswert?

Aber jetz mal ehrlich, ohne dem TO allzu nahe treten zu wollen.

Er dachte es reicht die Stiftleiste nur ins LCD zu stecken, ohne es zu 
löten!
Sollte Er nicht mit etwas grundlegendes anfangen, wie eine LED am 
9V-Block zum leuchten bringen ohne das sie durchbrennt :)


PS: Story Simon das musste jetzt einfach sein ;)

von eypocrash (Gast)


Lesenswert?

>Da das Ding aber aus Übersee kommt (oder so) hast du wohl das LCD am
>laufen bis es da ist :-)

Watterott

von Thomas (Gast)


Lesenswert?

@eypocrash:
Watterott hatte ich geschaut. Momentan nicht lieferbar.

von Eumel (Gast)


Lesenswert?

Thomas schrieb:
> Mein persönlicher Tipp wäre der hier:
>
> http://www.seeedstudio.com/depot/preorder-open-wor...
>
> Sicherlich für dieses Projekt überdimensioniert, aber wirklich mal zu
> sehen was auf den einzelnen Leitungen für Signale rüberkommen sollte
> eigentlich die meisten Probleme lösen.
>
> Da das Ding aber aus Übersee kommt (oder so) hast du wohl das LCD am
> laufen bis es da ist :-)
>
> Thomas

Jemand der schon Probleme hat ein normales HD44780 LCD zum laufen zu 
kriegen ist mit sowas dann doch eher überfordert.

von Michael K. (Gast)


Lesenswert?

Teo Derix schrieb:
> Electronics'nStuff schrieb:
>> Oder die Maus bewegt ^^
>
> Damals gabs noch keine Bildschirmschoner :)

Achtung OT :)
Ich bin mir sicher, daß es damals in DOS-Tools wie NC oder den Noton 
Utilities auch sowas wie einen Bildschirmschoner gab :)

Eher würde ich gelten lassen: Damals gab es noch keine/kaum Mäuse :)

42m

von Michael K. (Gast)


Lesenswert?

Ich muss jetzt doch noch mal fragen, weil das Problem ja wohl immer noch 
besteht:

1) Verwendest Du die Arduino-IDE?
2) Hast Du, falls die Antwort auf Frage 1 "ja" lautet, das richtige 
Board ausgewählt?

Dort kann man ganz viele verschiedene Boards wählen. Da es sonst keine 
Möglichkeit gibt, den Takt anzugeben und sowas wie #define F_CPU auch in 
den Beispielen nicht auftaucht vermute ich, daß das in der 
Boarddefinition mit drin steckt.
Wenn nun aber der Takt nicht stimmt, weil Du das falsche Board gewählt 
hast, wird es wohl nicht funktionieren ...

42m

von Simon N. (ardi)


Lesenswert?

Hört mal ich arbeite seit ca.4 Monaten mit dem Arduino und habe auch 
eine gewisse Ahnung aber leider mit dem LCD nicht so ganz ok?
Und ich habe nun alles angelötet und getan wie geschrieben und ich habe 
eine Ahnung in Technik: habe schon mit einem NE555 gearbeitet 
FlipFlopSchlatung, etc alles durchgenommen.

von Michael K. (Gast)


Lesenswert?

Ist ja gut ... wenn Du jetzt den Beleidigten spielst, weil hier 
vielleicht Vorschläge oder Rückfragen kommen, die Dich in Deiner 
Bastlerehre verletzen, dann sorry. Ich hab keine Lust mehr.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Simon Name schrieb:
> leider mit dem LCD nicht so ganz ok?

Es geht hier nicht um "Ahnung mit dem LCD", sondern einfach darum,
dass wir nicht in der Lage sind, deine Hardware zu überprüfen.
Da du eine Softwareumgebung benutzt, die relativ gut getestet
ist (weil sie sehr viele Nutzer hat), ist die Wahrscheinlichkeit
eben einfach sehr hoch, dass das Problem irgendwo in deiner Hardware
zu suchen ist.  Egal, wie viel du hier fragst, eine andere Hilfe
wirst du leider nicht bekommen können.

von Electronics'nStuff (Gast)


Lesenswert?

Simon Name schrieb:
> Hört mal ich arbeite seit ca.4 Monaten mit dem Arduino und habe auch
> eine gewisse Ahnung aber leider mit dem LCD nicht so ganz ok?

Jeder schafft es ein LCD an einen Arduino anzustöppseln, wenn du da dran 
scheiterst hast du einfach versagt. Ich würde hier jetzt die "Ich habe 
schon eine gewisse Erfahrung" Karte als letztes ausspielen.

Wenn du nämlich eine gewisse Erfahrung HÄTTEST, dann wäre das ganze kein 
Problem für dich!


Die Fehlerquellen sind eigentlich so gering, da kannst du fast gar 
nichts falsch machen!


Prorgamm - läuft
Arduino - läuft
Kommunikation zum Arduino - läuft

Also was bleibt da bitte noch? Belegung und Erzeugung der 
Kontrastspannung.

von Michael K. (Gast)


Lesenswert?

Electronics'nStuff schrieb:
> Jeder schafft es ein LCD an einen Arduino anzustöppseln, wenn du da dran
> scheiterst hast du einfach versagt. Ich würde hier jetzt die "Ich habe
> schon eine gewisse Erfahrung" Karte als letztes ausspielen.

Stimmt :)

Ich kämpfe im Moment mit einem LCD am Arduino. Allerdings programmiere 
ich in C mit der Lib von Peter Fleury und flashe per JTAG2ISP .
Das hat schon mal funktioniert, ich habe aber den größten Fehler 
gemacht, den man als Programmierer machen kann: ich habe ss nicht 
ausreichend dokumentiert :) Naja, das Wochenende ist lang, da kann ich 
mich nochmal einlesen ...

In der Arduino-IDE ist es hingegen überhaupt kein Problem, das 
HelloWorld-Beispiel zum laufen zu kriegen.

Wobei ... vermutlich gilt für mich das gleiche: jeder schafft es, ein 
LCD mit der Lib von Peter an einen 328p anzustöpseln, wenn ich das nicht 
schaffe, habe ich einfach versagt ;) Allerdings jammere ich nicht rum - 
von diesem Beitrag mal abgesehen :)

42m

von Eumel (Gast)


Lesenswert?

Mach mal nen Schaltplan.

von Eumel (Gast)


Lesenswert?

Dann schreib ich dir ein Assembler Programm das 100% funktioniert, wenn 
es dann nicht klappt ist dein LCD im Arsch.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Eumel schrieb:
> wenn
> es dann nicht klappt ist dein LCD im Arsch.

...oder eben die Verdrahtung doch nicht OK. ;-)

Du kannst getrost auf das Assemblerprogramm verzichten: der
Arduino-Kram (ob man ihn nun leiden kann oder nicht) ist von der
Software her durch so viele Nutzer getestet, dass man das als
Ursache praktisch ausschließen kann.  Es bleiben also nur noch
Probleme in der Verdrahtung übrig, oder natürlich, dass das LCD
selbst kaputt ist, oder dass die Firmware im Controller nicht
die ist, die sie sein sollte.  Gegen all diese drei Ursachen hilft
dein Assemblerprogramm aber auch nicht.

von Eumel (Gast)


Lesenswert?

Da will man mal extra nett sein und dann sowas ;)

von Thomas D. (thomasderbastler)


Lesenswert?

Ich würde einen 5 Zeiler Code schreiben, wie "Hallo" Atmega auf dem 
Steckbrett LCD drauf fertig. Wenns nicht geht dann Verkabelung oder LCD.

Hat Dein LCD schon mal was brauchbares angezeigt ?
Andersrum bei mir war noch nicht eins kaputt.

von Michael K. (Gast)


Lesenswert?

Thomas der Bastler schrieb:
> Ich würde einen 5 Zeiler Code schreiben, wie "Hallo" Atmega auf dem
> Steckbrett LCD drauf fertig. Wenns nicht geht dann Verkabelung oder LCD.

Das ist ja nicht mal notwendig. Wenn er, und darüber schweigt er sich ja 
aus (oder ich habe es überlesen) die Arduino-IDE verwendet gibt es ein 
fertiges Beispiel, das das LCD anspricht.
Man muss dann nur lesen, was oben in den Kommentaren steht und die Kabel 
genau so einstöpseln. Das ist eigentlich ne Sache von nicht mal zwei 
Minuten ...

Edit: Ich sehe, er verwendet die Arduino-IDE ... ich hab darauf sogar 
geantwortet ... hmpf :)
Er scheint auch das gelieferte Beispiel zu verwenden.

Dann bleibt ja wirklich nicht mehr viel. Aber da er ja so krass toll 
Ahnung hat und wir ihn ja sowieso alle nur nerven wird er wohl von 
alleine drauf kommen.

42m

von Thomas D. (thomasderbastler)


Lesenswert?

Wozu braucht man überhaupt so ein Arduino Teil ?

von Michael K. (Gast)


Lesenswert?

Thomas der Bastler schrieb:
> Wozu braucht man überhaupt so ein Arduino Teil ?

Naja, das kommt drauf an :)

Ich nutze die Arduino als Quick&Dirty-Boards, wenn ich schnell mal was 
testen will.
Allerdings programmiere ich die Dinger "ganz normal" in C; die 
Arduini-IDE ist jetzt nicht so mein Fall. Von daher betrachte ich die 
Teile einfach als kleine Eval-Boards, die einfach manchmal schneller 
betriebsbereit sind als ein Steckbrett und eine Hand voll Hühnerfutter. 
Vor allem sind sie robuster :)

42m

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.