Pages: [1]   Go Down
Author Topic: LCD Display HD 44780 kompatibel  (Read 1266 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

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:
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 smiley
Für Eure Hilfe herzlichen Dank !!!!
« Last Edit: December 27, 2012, 02:04:53 pm by uwefed » Logged

Hamburg, Germany
Offline Offline
Sr. Member
****
Karma: 6
Posts: 291
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


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

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

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
« Last Edit: December 27, 2012, 06:54:37 am by hk007 » Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

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

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

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.
Logged

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

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

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
Logged

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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"
« Last Edit: December 27, 2012, 08:21:10 am by hk007 » Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

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

Ist das LCD denn richtig initialisiert und wie sieht der Rest des Sketches aus?
Hallo ,lieber später als nie , mein Sketch
Code:
#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 !!!!!
« Last Edit: December 27, 2012, 02:03:34 pm by uwefed » Logged

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

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.
Logged

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Und du bist sicher, daß du ein 16x4 hast???????
« Last Edit: December 27, 2012, 09:21:30 am by hk007 » Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Hamburg, Germany
Offline Offline
Sr. Member
****
Karma: 6
Posts: 291
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Heilbronn
Offline Offline
Full Member
***
Karma: 4
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

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

Gruss,
Jürgen
Logged

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

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
Logged

Pages: [1]   Go Up
Jump to: