Forum: Mikrocontroller und Digitale Elektronik Arduino i2c lcd display


von Benjamin W. (benjamin2000)


Angehängte Dateien:

Lesenswert?

Hallo, ich habe ein Problem mit dem Arduino Uno.
Und zwar möchte ich ein i2c Display ( 
http://www.amazon.de/dp/B00D8S3YZO/ref=sr_ph?ie=UTF8&qid=1406816848&sr=1&keywords=i2c+display 
)
An den Arduino Uno anschließen.

Im Angehängten Bildschirmfoto sieht man in der Fehlerleiste, dass er die 
LiquidCrystal_I2C.h -Library nicht will (er konnte sie nicht finden).
(Von) wo kann ich die installieren?
Oder gibt es eine andere Möglichkeit, das Problem zu beheben?
Vielleicht kann mir wer helfen...
Danke schon im Voraus für Antworten!!


Hier der Code, den ich im Internet gefunden habe:




1
#include <Wire.h>
2
3
#include <LiquidCrystal_I2C.h>
4
5
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
6
7
void setup()
8
{
9
  Serial.begin(9600);
10
11
  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight
12
13
// ------- Quick 3 blinks of backlight  -------------
14
  for(int i = 0; i< 3; i++)
15
  {
16
    lcd.backlight();
17
    delay(250);
18
    lcd.noBacklight();
19
    delay(250);
20
  }
21
  lcd.backlight(); // finish with backlight on  
22
23
//-------- Write characters on the display ------------------
24
// NOTE: Cursor Position: (CHAR, LINE) start at 0  
25
  lcd.setCursor(0,0); //Start at character 4 on line 0
26
  lcd.print("Hello, world!");
27
  delay(1000);
28
  lcd.setCursor(0,1);
29
  lcd.print("HI!YourDuino.com");
30
  delay(8000);  
31
32
// Wait and then tell user they can start the Serial Monitor and type in characters to
33
// Display. (Set Serial Monitor option to "No Line Ending")
34
  lcd.clear();
35
  lcd.setCursor(0,0); //Start at character 0 on line 0
36
  lcd.print("Use Serial Mon");
37
  lcd.setCursor(0,1);
38
  lcd.print("Type to display");  
39
40
41
}/*--(end setup )---*/
42
43
44
void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
45
{
46
  {
47
    // when characters arrive over the serial port...
48
    if (Serial.available()) {
49
      // wait a bit for the entire message to arrive
50
      delay(100);
51
      // clear the screen
52
      lcd.clear();
53
      // read all the available characters
54
      while (Serial.available() > 0) {
55
        // display each character to the LCD
56
        lcd.write(Serial.read());
57
      }
58
    }
59
  }
60
61
}

von Franzis I. (reparateur)


Lesenswert?

die Datei LiquidCrystal_I2C.h wirst du wohl irgendwo finden müssen (im 
Internet?) und dann in den Lybraries Ordner reinschmeissen. Dieser 
Ordner ist In "EigenenDateien/Arduino" oder so zu finden. Ansonsten kug 
mal im Internet nach "Arduino libraries installieren". z.b. Hier:
http://arduino.cc/en/Guide/Libraries

von Benjamin W. (benjamin2000)


Lesenswert?

Kann mir wer einen Link zu der Library geben?
Ich finde die i2c library im Internet nicht...
Vielleicht bin ich auch nur blind.
Währe sehr nett, wenn es wer tun würde!
Danke!

von Jürgen S. (jurs)


Lesenswert?

Benjamin Winter schrieb:
> Im Angehängten Bildschirmfoto sieht man in der Fehlerleiste, dass er die
> LiquidCrystal_I2C.h -Library nicht will (er konnte sie nicht finden).
> (Von) wo kann ich die installieren?

Es gibt ungefähr ein halbes Dutzend leicht verschiedene 
LiquidCrystal_I2C libraries, alle mit demselben oder fast demselben 
erfindungsreichen Namen "LiquidCrystal_I2C".

Kannst Du über Google leicht finden.

Vorsicht: Nicht jede Library ist für jeden I2C-Adapter geeignet. Manche 
Libraries arbeiten nur mit manchen I2C-Adaptern (wg. Abweichender 
Pinbelegung der Adapter), und dann benötigst Du ggf. eine andere Library 
mit erweiterten Initialisierungsmöglichkeiten.

Wenn Du nicht genau weißt, welche der Libraries es mit Deinem Adapter 
tut (ggf. beim Hersteller oder beim Lieferanten erfragen) hilft ggf. 
nur:
1. Die I2C-Adresse des Adapters mit einem "I2C-Scanner" Sketch 
herausfinden
2. Verschiedene Libraries ausprobieren, ggf. mit verschiedenen gängigen 
Initialisierungen, sofern von der Library unterstützt.

von Benjamin W. (benjamin2000)



Lesenswert?

Einen Download-Link habe ich gefunden! ( 
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads     )
Im 1. Bildschirmfot sieht man, dass ihm das 'POSITIVE' nicht passt.
wenn ich es weglösche (2. Bildschirmfoto), dann sieht man, dass er eine 
besonders lange, umfangreiche und für mich nicht nachvollziehbare 
Fehlermeldung anzeigt.
Kann mir wer helfen?
Danke!

von Jürgen S. (jurs)


Lesenswert?

Benjamin Winter schrieb:
> Kann mir wer helfen?

Schau mal auf die Rückseite Deines Moduls, da ist eine etwas kleinere 
Huckepack-Platine aufgelötet. Das ist die I2C-Adapterplatine für das 
Display.

Kannst Du auf dieser Huckepackplatine irgendeine Herstellerbezeichnung 
oder Typenkennzeichnung sehen?

von Benjamin W. (benjamin2000)


Lesenswert?

YwRobot  Arduino  LCM1602  IIC  V1
Steht auf dem kleinen i2c Adapter drauf.

von Jürgen S. (jurs)


Lesenswert?

Benjamin Winter schrieb:
> YwRobot  Arduino  LCM1602  IIC  V1
> Steht auf dem kleinen i2c Adapter drauf.

Laut http://arduino-info.wikispaces.com/LCD-Blue-I2C#v1 ist die von Dir 
genannte Library 
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads für Deine 
Display/Adapterkombination geeignet.

Welche Version der Arduino-Software und welche Version der Library hast 
Du installiert?

Hast Du möglicherweise zwei gleichnamige LiquidCrystal_I2C Libraries in 
verschiedenen Suchpfaden gleichzeitig installiert?

von Werner W. (wam)


Lesenswert?

Benjamin Winter schrieb:
> Einen Download-Link habe ich gefunden! (
> https://bitbucket.org/fmalpartida/new-liquidcrysta...     )

Der ist glaube ich falsch. Die

http://www.dfrobot.com/index.php?route=product/product&keyword=160&product_id=135

ist richtiger.

Endpacken und Sketch -> Lib importieren.

Und

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

sollte so

LiquidCrystal_I2C lcd(0x27,16,2);
// set the LCD address to 0x27 for a 16 chars and 2 line Display

aussehen.

Glaub ich.....

Gruß

Wam

: Bearbeitet durch User
von Benjamin W. (benjamin2000)


Lesenswert?

Entschuldigung für die späte antwort:
Das ist der richtige code:


1
#include <Wire.h>
2
3
#include <LiquidCrystal_I2C.h>
4
5
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
6
7
void setup()
8
{
9
  Serial.begin(9600);
10
11
  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight
12
13
// ------- Quick 3 blinks of backlight  -------------
14
  for(int i = 0; i< 3; i++)
15
  {
16
    lcd.backlight();
17
    delay(250);
18
    lcd.noBacklight();
19
    delay(250);
20
  }
21
  lcd.backlight(); // finish with backlight on  
22
23
//-------- Write characters on the display ------------------
24
// NOTE: Cursor Position: (CHAR, LINE) start at 0  
25
  lcd.setCursor(0,0); //Start at character 4 on line 0
26
  lcd.print("Hello, world!");
27
  delay(1000);
28
  lcd.setCursor(0,1);
29
  lcd.print("HI!YourDuino.com");
30
  delay(8000);  
31
32
// Wait and then tell user they can start the Serial Monitor and type in characters to
33
// Display. (Set Serial Monitor option to "No Line Ending")
34
  lcd.clear();
35
  lcd.setCursor(0,0); //Start at character 0 on line 0
36
  lcd.print("Use Serial Mon");
37
  lcd.setCursor(0,1);
38
  lcd.print("Type to display");  
39
40
41
}/*--(end setup )---*/
42
43
44
void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
45
{
46
  {
47
    // when characters arrive over the serial port...
48
    if (Serial.available()) {
49
      // wait a bit for the entire message to arrive
50
      delay(100);
51
      // clear the screen
52
      lcd.clear();
53
      // read all the available characters
54
      while (Serial.available() > 0) {
55
        // display each character to the LCD
56
        lcd.write(Serial.read());
57
      }
58
    }
59
  }
60
61
}

von Alex (Gast)


Lesenswert?

Und dieser Code funktioniert auch: 
http://www.aeq-web.com/i2c-display-mit-dem-arduino-uno/

LG ALex

von Dieter S. (Gast)


Lesenswert?

Alex schrieb:
> Und dieser Code funktioniert auch:
> http://www.aeq-web.com/i2c-display-mit-dem-arduino-uno/
>
> LG ALex

Ach hier auch, mal aufs Datum geachtet?

von Black J. (shaman)


Lesenswert?

Dieter S. schrieb:
> Ach hier auch, mal aufs Datum geachtet?

Das ist egal. Diese Frage kommt immer wieder und dank google wird man 
direkt auf diesen Thread umgeleitet

von Toxiccity (Gast)


Lesenswert?

moin ich kram das hier noch mal raus,

nun ich habe mir jetzt test weise mal das zuletzt gepostet Sketch, meine 
lib und das Compiler macht auch kein Problem.

jedoch kommt einfach nichts auf meinem Display was mich etwas wundert.

ich hab ein nano und hab das Display an (A4, A5, VVC und GRD) 
angeschlossen wobei die letzten 2 ja logisch sind.

hab ich jetzt irgendwie ein Denkfehler??


lg

von Dieter S. (Gast)


Lesenswert?

A4 und A5 vertausch.
Konfiguration im Sketch falsch.
I2C Adresse falsch.
Kabel zum Display zu lang und keine Pullup-Widerstände drin.
Falsche Library.
Keine Betriebsspannung angeschlossen.


Mehr fällt mir dazu aktuell nicht ein und was du denkst, kann ich nicht 
sehen.

von Marvin (Gast)


Lesenswert?

Toxiccity schrieb:
> moin ich kram das hier noch mal raus,
>
> nun ich habe mir jetzt test weise mal das zuletzt gepostet Sketch, meine
> lib und das Compiler macht auch kein Problem.
>
> jedoch kommt einfach nichts auf meinem Display was mich etwas wundert.
>
> ich hab ein nano und hab das Display an (A4, A5, VVC und GRD)
> angeschlossen wobei die letzten 2 ja logisch sind.
>
> hab ich jetzt irgendwie ein Denkfehler??
>
> lg

Hallo,
ist die Hintergrundbeleuchtung denn aktiv?
Ich hatte beim ersten mal das gleiche "Problem". Bei mir lag es 
allerdings lediglich daran, dass ich den Kontrast nicht eingestellt 
habe, und es daher aussah als würde nichts angezeigt.
Auf der Rückseite sollte ein kleines Drehrad sein, womit du den Kontrast 
einstellen kannst.

Marvin

von User N. (Gast)


Lesenswert?

Einfachste Lösung neueste Arduino IDE installieren oder deinstalliere 
und neu Installieren.


Gruß Luis

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.