Pages: [1]   Go Down
Author Topic: Problem mit LCD 16x2  (Read 488 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
ich bin neu hier im Forum und auch Anfänger mit Arduino.
Ich habe ein Problem mit meinem Arduino Nano und einem angeschlossenem LCD.
Das LCD läuft im 4bit Mode.
Prinzipiell funktioniert das auch nur wird in einem bestimmten Bereich das gleiche in Zeile 1 und Zeile 2 angezeigt.
Siehe angehängte Bild.
Liegt das am LCD? Oder am Arduino?

Bin dankbar für jede Idee!

Achja, hier der Code dazu:
_____________________________
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup(){
  lcd.begin(16, 2);
}

void loop(){
  lcd.setCursor(0,0);
  lcd.print("      haaallo");
  lcd.setCursor(0,1);
  lcd.print("welt");
}
____________________________


* IMG_0262.JPG (95.44 KB, 600x448 - viewed 12 times.)
Logged

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

Liegt das am LCD? Oder am Arduino?

Oder an einer wackeligen Verkabelung.

Deine loop-Funktion gibt tausendmal pro Sekunde den Text immer wieder neu auf dem Display aus.

Da braucht nur einmal für weniger als eine tausendstel Sekunde eine Leitungsstörung bei einer der Datenleitungen aufzutreten, dann wird der Befehl lcd.setCursor(0,0); womöglich nicht korrekt ausgeführt und übersprungen, und schon wird der haaallo Text dann hinter "welt" ausgegeben. Und da bleibt er dann auch stehen, selbst wenn anschließend danach der übrige Text wieder tausende von malen pro Sekunde korrekt ausgegeben wird.


Logged

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

Quote
dann wird der Befehl lcd.setCursor(0,0); womöglich nicht korrekt ausgeführt und übersprungen, und schon wird der haaallo Text dann hinter "welt" ausgegeben

Aber dann sollte doch das komplette "haaallo" hinter "welt" stehen, oder versteh ich das falsch?
Ich hab natürlich schon etwas rumgespielt und es sind immer die gleichen 4 Stellen die in der 1. und 2. Zeile gleich sind. smiley-confuse
Logged

Germany
Online Online
Faraday Member
**
Karma: 59
Posts: 3051
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
es sind immer die gleichen 4 Stellen die in der 1. und 2. Zeile gleich sind.
So ist es bestimmt weg:
Code:
void loop(){
  lcd.setCursor(0,1);
  lcd.print("welt");
  lcd.setCursor(0,0);
  lcd.print("      haaallo");
}
Evtl reicht ein kleines delay nach lcd.begin();

Interessant wäre auch rauszukriegen, ob diese 4 Zeichen nur einmal, oder öfters geschrieben werden:
Ein einfacher Test:
if ( ( millis() && 0xfff0 ) == 0)  lcd.clear();   // löscht jede Minute das Display

( genauer: nach 65,5 sec. Falls ein loop Zyklus <16 msec lang ist, sonst wird das evtl. verpasst )
Logged

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

Ich habe jetzt folgendes ausprobiert:
Code:
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup(){
 
  lcd.begin(16, 2);
  delay(500);
  lcd.print("aaaaaaaaaaaaaaaa");
}

void loop(){
}
Resultat ist Bild "a"

Danach folgendes:
Code:
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup(){
 
  lcd.begin(16, 2);
  delay(500);
  lcd.print("aaaaaaaaaaaaaaaa");
  lcd.setCursor(0,1);
  lcd.print("bbbbbbbbbbbbbbbb");
}

void loop(){
}
Resultat ist Bild "ab"

Beide male schreibe ich im "void setup()"  ins Display und nicht im "loop()".
Also doch nur ein mal!?!

@michael_x: Zuerst die 2. Zeile und dann erst die 1.Zeile zu beschreiben brachte keinen Erfolg.


* a.JPG (131.17 KB, 600x448 - viewed 7 times.)

* ab.JPG (137.71 KB, 600x448 - viewed 8 times.)
« Last Edit: January 04, 2013, 07:25:14 am by B4rney5 » Logged

Germany
Online Online
Faraday Member
**
Karma: 59
Posts: 3051
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sieht so aus als ob Spalten 8-12 immer in beide Zeilen geschrieben werden.
Quote
Liegt das am LCD? Oder am Arduino?  ... Oder an einer wackeligen Verkabelung?
Da tippe ich jetzt mal auf LCD smiley-wink
Logged

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

Beide male schreibe ich im "void setup()"  ins Display und nicht im "loop()".
Also doch nur ein mal!?!

Ja, im setup wird es nur einmal geschrieben.

Halte mal Ausschau nach Kurzschluss-Lötbrücken zwischen Deinen Datenleitungen (D4, D5, D6, D7)!
« Last Edit: January 04, 2013, 08:47:49 am by jurs » Logged

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

Problem gelöst:
Display defekt!
Mit meinem anderen 16x2 LCD funktioniert es tadellos!


Danke für eure Tipps  smiley
Logged

Pages: [1]   Go Up
Jump to: