20x4 Display  - fehlerhafte Darstellung

Hallo,

ich habe mir vor kurzem einen LCD Display EA DIP204-4 gekauft und ihn über die Adapterplatine an mein Ardunio Uno angeschlossen.

Ich verwende die LiquidCrystal Librarie.

Ich habe einen relativ einfachen Code verwendet:

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8,9,10, 2,3,4,5);

void setup() {
  // set up the LCD's number of columns and rows:
  
  // Print a message to the LCD.
  lcd.clear();
  lcd.begin(20,4);
  lcd.setCursor(0, 0);
  lcd.print("Hallo Duda Draussen");


}

void loop() {
 
}

Leider zeigt der Display Werte doppelt an. So werden die Werte ab der 13. Stelle in der 1. Zeile auch in der 2. Zeile geschrieben.

Ich hab mir schon mehrer Forumseinträge angeschaut, die in der LiquidCrystal.cpp z. B. die Zeile
int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 };

geändert haben, hab ich auch versucht und ist leider gescheitert.

Hat jemand eine Idee, was ich da machen kann bzw. wie ich rausfinden kann ob der Display okay ist?

Gruß

Martin

Das ist überigens ein Bild von dem, was der Bildschirm anzeigt:

Nettes, Süßes Probem
Wir könnten einen Wettbewerb über das netteste vorgestellte Problem machen; Ich schlage Martin vor. :wink:

Ich bin baff.
Du hast nicht zufällig ein zweites Display zum ausprobieren ob auch das zweite das gleiche Problem hat.?
Was passiert, wenn Du was in die 2.Zeile schreibst?

Grüße Uwe

Hallo Uwe,

leider habe ich nicht noch einen zweiten Display (30 ? für einen sind ja auch genug) Ich habe jetzt noch mal nen Programmcode gebaut, damit ich mal sehen kann, wie sich die Adressierung verhällt:

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8,9,10, 2,3,4,5);

void setup() {
  // set up the LCD's number of columns and rows:
  
  // Print a message to the LCD.
  lcd.clear();
  lcd.begin(20,4);
  lcd.setCursor(1, 0);
  lcd.print("A");
 

}

void loop() {
   lcd.clear();
for (int j = 0 ; j<4; j++)
  {
  for (int i = 0; i <20; i++)
    {
    lcd.clear();
    lcd.setCursor(i, j);
    lcd.print("0"); 
    delay (200); 
    }
  }
 
 

}

--> man kann die 0 wandern sehen.

Dabei entsteht dann folgendes:
Ich habs als Video auf meinen Server hochgeladen:

www.marfe.de/LCD/Bild.avi

Gruß

Martin