Forum: Mikrocontroller und Digitale Elektronik Arduino Uno und LCD Display Modul 1602 HD44780 mit TWI Controller


von Andreas M. (andreas61)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mir folges Display mit i2c-Adapter zugelegt:
(https://www.roboter-bausatz.de/95/lcd-display-modul-1602-hd44780-mit-twi-controller)
Das Display hat nicht lange überlebt. Deshalb habe ich ein vermutlich 
Baugleiches über Amazon aus Fernost beschafft:
http://www.amazon.de/gp/product/B008XS133E?psc=1&redirect=true&ref_=oh_aui_detailpage_o04_s00

Diese Kombination hängt jetz an einem Arduino Uno (siehe Foto).

Das Problem:

Bei Text den ich mit lcd.print() ausgeben will, wird nur das erste 
Zeichen dargestellt. Ich habe auch versucht den Text vorher in eine 
Variable zu speichern und dann über lcd.print() auszugeben, aber das 
geht auch nicht.

Text, den ich über den seriellen Monitor eingebe, wird angezeigt. 
Sonderzeichen mag das Display allerding nicht. Da werden asiatische 
Schriftzeichen ausgegeben.

Die Display-Ausgabe zum Quellcode ist auf dem Foto zu sehen.

Hier der Programmcode:
1
/*
2
 * Displays text sent over the serial port (e.g. from the Serial Monitor) on
3
 * an attached LCD.
4
 * YWROBOT
5
 *Compatible with the Arduino IDE 1.0
6
 *Library version:1.1
7
 */
8
#include <Wire.h> 
9
#include <LiquidCrystal_I2C.h>
10
11
LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
12
13
void setup()
14
{
15
  lcd.init();  
16
  lcd.backlight();
17
  Serial.begin(9600);
18
}
19
20
void loop()
21
{
22
  if (Serial.available()) {   
23
    delay(100);
24
    lcd.clear();
25
    while (Serial.available() > 0) {
26
      lcd.write(Serial.read());
27
    }
28
  }
29
30
   lcd.setCursor(0,1);
31
  lcd.print("Zeile 2");
32
33
}

Das sind übrigens meine ersten "Gehversuche" mit Arduino.
Vielleicht kann mir jemand einen hilfreichen Tipp geben.

Vielen Dank im Voraus.

Grüße
Andreas

: Bearbeitet durch User
von peter (Gast)


Lesenswert?

Nimm mal diese.
1
#include <Wire.h>
2
#include <LCD.h>
3
#include <LiquidCrystal_I2C.h>
4
5
#define I2C_ADDR    0x27 
6
#define BACKLIGHT_PIN     3
7
#define En_pin  2
8
#define Rw_pin  1
9
#define Rs_pin  0
10
#define D4_pin  4
11
#define D5_pin  5
12
#define D6_pin  6
13
#define D7_pin  7
14
15
int n = 1;
16
17
LiquidCrystal_I2C  lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
18
19
void setup()
20
{
21
  lcd.begin (16,2);
22
  
23
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
24
  lcd.setBacklight(HIGH);
25
  
26
  lcd.home ();                   
27
  lcd.print("I2C Display :");  
28
  
29
}
30
31
void loop()
32
{
33
  lcd.setCursor (1,1);        
34
  lcd.print("Laufzeit: ");
35
  lcd.print(millis());
36
}

von Christian (Gast)


Lesenswert?

Schaue mal auf diese Seite an: 
https://arduino-info.wikispaces.com/LCD-Blue-I2C

von ist aber kalt draussen (Gast)


Lesenswert?

Die Sechseckigen Teile nennen sich Muttern, die kann man durch Drehen 
zerstörungsfrei öffnen, ohne Flexxxxx

von Michael U. (amiga)


Lesenswert?

Hallo,

die ArduinoIDE 1.6.6 hatte da mal einen solchen Fehler, benutzt Du die 
zufällig? Dann die 1.6.7 nehmen.

Gruß aus Berlin
Michael

von Andreas M. (andreas61)


Lesenswert?

Hallo Peter,

dazu fehlt mir die LCD.h. Wo bekomme ich die her?

Arduino: 1.6.7 (Linux), Board: "Arduino/Genuino Uno"

/home/andreas/srv2_daten/..../test-i2c-lcd-2/test-i2c-lcd-2.ino:2:17: 
fatal error: LCD.h: No such file or directory
 #include <LCD.h>
                 ^
compilation terminated.
exit status 1
Fehler beim Kompilieren.

Vielen Dank!.

Andreas

von Andreas M. (andreas61)


Lesenswert?

Hallo Michael,

danke für die Antwort.

Ich benutze schon die 1.6.7, was aber nicht bedeutet, dass die 
fehlerfrei ist.

Gruß Andreas

von Andreas M. (andreas61)


Lesenswert?

Hallo Chistian,

danke, aber mein Englich ist nicht so gut. Ich versuche es aber mal mit 
Hilfe des google-Übersetzers.

Gruß Andreas

von Chris (Gast)


Lesenswert?

Andreas M. schrieb:
> Hallo Chistian,
>
> danke, aber mein Englich ist nicht so gut. Ich versuche es aber mal mit
> Hilfe des google-Übersetzers.
>
> Gruß Andreas

Brauchst du auch nicht. Im Prinzip, wenn du weißt welches Display du da 
hast, kannst du einfach einen Sketch einwerfen. Dort gibt es beide 
Variante (für 2x16 und 4x16)
Natürlich vorher die LiquidCrystal Lib(Link auf der Seite ganz oben) 
aufspielen.
Wenn du die Adresse nicht weißt, gibt es unten noch ein Sketch 
(Scanner), der liefert dir diese Adresse. oder eben bisschen auf 
Bildchen schauen und paar Sätze übersetzen. Aber sehr oft ist die 
Adresse bei diesen Modulen 0x27

von Andreas M. (andreas61)


Lesenswert?

Es funktioniert!

Mit der Library NewliquidCrystal_1.3.4 und dem Code von Peter.

https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

Vielen Dank!

Andreas

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.