Go Down

Topic: LCD Display HD 44780 kompatibel (Read 1 time) previous topic - next topic

ArduinoWolf

Dec 27, 2012, 11:09 am Last Edit: Dec 27, 2012, 08:04 pm by uwefed Reason: 1
Hallo zusammen
Folgendes Problem: Habe ein LCD Display von Reichelt (LCD 164 A LED),mit einem Arduino Uno steuere ich das Display an,die ersten zwei Zeilen werden richtig dargestellt,die Zeilen 3 u 4 werden erst ab dem fünften Zeichen dargestellt obwohl alles im Sketch gleich programmiert ist wie in Zeile 1und 2!

Auszug aus meinem Sketch:

Code: [Select]
LCD.print("mich steuert ein");
LCD.setcursor(0,1);
LCD.print("ein Arduino");
LCD.setcursor(0,2);
LCD.print("beispieltext");
LCD.setcursor(0,3);
LCD.print("beispieltext2");


Wer kann mir helfen?
P.s. Bin aber noch in Sachen Arduino und Elektronik noch Anfänger!! Bitte darum bitte wenn möglich eine einfache Erklärung :)
Für Eure Hilfe herzlichen Dank !!!!

markbee

Ist das LCD denn richtig initialisiert und wie sieht der Rest des Sketches aus?

uwefed

Bitte auch Link des Produkts beim Verkäufer.
Grüße Uwe

hk007

#3
Dec 27, 2012, 12:16 pm Last Edit: Dec 27, 2012, 12:54 pm by hk007 Reason: 1
Ja,
sieht mir auch so aus, als ob er falsch initialisiert hat.

Schick doch mal den ganzen Code. Wie hast du es angeschlossen? Direkt oder über I2C?
Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

jurs


Bitte darum bitte wenn möglich eine einfache Erklärung :)


Irgendwo hat Dein Sketch eine von Dir verheimlichte Zeile dieser Art:

lcd.begin(cols, rows);

Da wird vermutlich für cols und/oder rows was falsches drinstehen.

hk007

Quote

lcd.begin(cols, rows);
Da wird vermutlich für cols und/oder rows was falsches drinstehen.


Klar, er hat ein 16x4, wenn er da ein 20x4 initialisiert, dann hat er in Zeile 3 und 4 die 4 Zeichen Offset.
Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

ArduinoWolf

Hallo
Da ich gerade am Tablet bin kann ich euch den kpl Sketch nicht senden, bei der Überprüfung hat der Compiler aber keinen Fehler gebracht.Übrigens die Zeile mit Row und col habe ich auch ,wie gesagt der Sketch ist aus einem Buch heraus (arduino von Erik Bartmann)!
Falls doch falsch initialisiert wäre ,wie kann ich dann richtig initialisieren ??
Für eure schnelle Hilfe herzlichen Dank

hk007

#7
Dec 27, 2012, 02:19 pm Last Edit: Dec 27, 2012, 02:21 pm by hk007 Reason: 1

bei der Überprüfung hat der Compiler aber keinen Fehler gebracht.

Woher soll der Compiler auch wissen, was du für ein Display hast???

Ohne mehr Infos zu deinem Sketch wirst du keine Hilfe mehr bekommen. Wir haben keine Glaskugel.
--->>> Poste deine "Zeile mit Row und col"
Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

ArduinoWolf

#8
Dec 27, 2012, 02:47 pm Last Edit: Dec 27, 2012, 08:03 pm by uwefed Reason: 1

Ist das LCD denn richtig initialisiert und wie sieht der Rest des Sketches aus?

Hallo ,lieber später als nie , mein Sketch
Code: [Select]
#include <LiquidCrystal.h>
#define RS 12
#define E 11
#define D4 5
#define D5 4
#define D6 3
#define D7 2
#define COLS 16
#define ROWS 4
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);

void setup(){
 lcd.begin(COLS, ROWS);
 lcd.print("asdffffffffffffg");
 lcd.setCursor(0, 1);
 lcd.print("lpkiuuuuuuuuuuu");
 lcd.setCursor(0, 2);
 lcd.print("lokijuzhgftredsw");
 lcd.setCursor(0, 3);
 lcd.print("sedfjjfjgkgkgkgk");
}

void loop(){}


Das LCD Display ist "direkt" mit einem Arduino Uno verbunden; ohne zusätzliche Hardware , nur ein Widerstand für die Hintergrundbeleuchtung und ein Poti für den Kontrast einstellen . Für Eure schnelle Hilfe möchte ich mich schon jetzt bedanken ; ein super Forum !!!!!

jurs


Das LCD Display ist "direkt" mit einem Arduino Uno verbunden; ohne zusätzliche Hardware


Ganz ohne Drähte zwischen den LCD-Pins und den Arduino-Pins?

Oder wenn doch, vielleicht doch irgendwelche Drähte verdrahtet?

Wo ist z.B. R/W vom LCD am Arduino angeschlossen? An GND?

Irgendwie verrätst Du immer Kleckerkram an Info und schreibst, dass es nicht funktioniert, aber was Du tatsächlich machst, z.B. bei der Verdrahtung, bleibt total Dein eigenes Geheimnis.

hk007

#10
Dec 27, 2012, 03:17 pm Last Edit: Dec 27, 2012, 03:21 pm by hk007 Reason: 1
Hmm, die init sieht eigentlich gut aus. Ist für ein 16x4

Schau dir doch mal das Beispiel aus dem Tutorial an:
http://arduino.cc/en/Tutorial/LiquidCrystal

Probier mal den Sketch, und check noch mal ob deine Verdrahtung identisch ist. Der Sketch nimmt auf alle Fälle die selben Arduino Pins, wie du.

Du musst nur folgende Zeile abändern:
Quote
lcd.begin(16, 2);
--> lcd.begin(16, 4);


[font=Verdana]Und du bist sicher, daß du ein 16x4 hast???????[/font][/size]
Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

markbee

Der Programmcode sieht auf den ersten Blick gut aus. Und da die ersten beiden Zeilen richtig dagestellt werden, scheint auch die Verdrahtung richtig zu sein.
Vielleicht versuchst Du mal ein

lcd.clear();
lcd.setCursor(0,0);

vor die erste lcd.print-Anweisung einzufügen.

Da der Chipsatz kein HD44780 ist, besteht hier auch noch die Möglichkeit der Fehlerursache.

JuergenR

Hallo,

versuch mal jede Zeile vollzuschreiben (also 16 Zeichen in jede Zeile) - mal sehen was passiert.

Gruss,
Jürgen

uwefed

Gib mal eine Pause von 10 mS nach lcd.begin(COLS, ROWS);.
Der Kontroller auf dem Display braucht etwas Zeit um zu initialisieren. Man könnte das BUSY Flag kontrollieren aber da man sich die R/W Verbindung spart muß man genügend warten.
Grüße Uwe

Go Up