Sainsmart LCD 2004 - Problem mit der LiquidCrytal_I2C-Bibliothek konnte nicht kompiliert werden

7

Ich habe bei Amazon einen Sainsmart LCD2004 gekauft, um ihn mit meinem Arduino Uno zu verwenden. Ich verstehe, dass eine neue Bibliothek heruntergeladen werden muss, da dieses LCD I2C verwendet.

Von der sainsmart Website dowloaded ich den LCD 2004 rar http://www.sainsmart.com/arduino/arduino-shields/sainsmart-iic-i2c-twi-serial-2004-20x4-lcd-module-shield-for-arduino- uno-mega-r3.html

Wenn ich versuche, das Beispiel mit dem Titel helloworld zu kompilieren, wird folgende Fehlermeldung angezeigt:

In der von HelloWorld.pde enthaltenen Datei: 3: C: \ Benutzer \ r_yob_000 \ Dokumente \ Arduino \ Bibliotheken \ LiquidCrystal_I2C / LiquidCrystal_I2C.h: 81: Fehler: Konfliktrückgabetyp für 'virtual void LiquidCrystal_I2C :: write (uint8_t)' C angegeben : \ Programme (x86) \ Arduino \ hardware \ arduino \ cores \ arduino / Print.h: 48: Fehler: Überschreiben von 'virtual size_t Print :: write (uint8_t)'

Es scheint einen Konflikt zwischen zwei Funktionen zu geben, die unterschiedliche Typen zurückgeben.

Ich habe versucht, das Problem zu suchen, und viele Beiträge mit ähnlichen Fehlern gefunden. Die vorgeschlagene Lösung besteht normalerweise darin, dass eine neue Version von LiquidCrytal_I2C heruntergeladen werden muss. Oder dass man Arduino IDE Version 1.0 verwenden sollte

Ich habe Tonnen von LiquidCrytal_I2C-Bibliotheken heruntergeladen und sie alle in IDE Version 1.0 und 1.0.6 ausprobiert, und ich erhalte immer noch die gleiche Fehlermeldung. Ich habe sogar versucht, die LiquidCrytal_I2C.h-Datei so zu ändern, dass sie den richtigen Typ zurückgibt und trotzdem kein Glück hat.

Könnte ich bitte Hilfe bei diesem Problem bekommen.

Vielen Dank.


quelle

Antworten:

1

Ich hatte auch Probleme mit dieser Bibliothek, bis mir klar wurde, dass der Standardbibliotheksname "LiquidCrystal" mit dem einer anderen Bibliothek in Konflikt steht, wodurch die Dateien verwechselt werden. Legen Sie die Dateien einfach in einen anderen Ordner (ich habe meinen genannt) "LiquidCrystal_4x20". Hat es für mich gelöst.

Joris Groosman
quelle
1

Ich habe gerade 3 davon gekauft, die gut mit dieser Bibliothek LiquidCrystal_I2C2004V1.zip funktionieren
( Lizenz: CC BY-NC 2012 http://www.wikispaces.com/user/view/TerryKing ).

Verwenden Sie bei der Installation dieser Bibliothek in Arduino IDE (Version 1.6 oder höher) den Menüpunkt Skizze | Bibliothek einschließen | Fügen Sie die ZIP-Bibliothek hinzu , navigieren Sie zu dem Ordner, in den LiquidCrystal_I2C2004V1.zip heruntergeladen wurde, und öffnen Sie die Zip-Datei.

Verwenden Sie die I2C-Adresse im Beispiel "HelloWorld", das mit LiquidCrystal_I2C2004V1 geliefert wird:

//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

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

void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("Ywrobot Arduino!");
   lcd.setCursor(0,2);
  lcd.print("Arduino LCM IIC 2004");
   lcd.setCursor(2,3);
  lcd.print("Power By Ec-yuan!");
}


void loop()
{
}

Ändern Sie nicht den Namen des anderen Bibliotheksverzeichnisses. Dieser ist mit der vorhandenen Bibliothek kompatibel. Fügen Sie es einfach als beigetragene Bibliothek hinzu.

Brent Mesler
quelle
sollte das Menü "Bibliothek importieren" sein, extrahieren Sie die Zip-Datei mit.
Brent Mesler
Willkommen bei "Arduino Stackexchange". Sie können Ihre Antwort tatsächlich über die Schaltfläche "Bearbeiten" unter Ihrer Antwort bearbeiten.
Paul
Zusätzlicher Absatz in Antwort zusammengefasst, wie von MarkU vorgeschlagen. Vielen Dank!
Nick Gammon
0

Sie müssen Ihre I2C-Bibliothek aktualisieren.

Hier finden Sie die letzte Version:
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/

Verschieben Sie den alten Ordner in einen anderen Ordner, damit Sie diesen verwenden können, oder gehen Sie nach der Installation folgendermaßen vor:

  1. Geh in die Arduino\libraries\Newliquidcrystal_1.3.5\
  2. Benennen Sie die LiquidCrystal_I2C.h wieLiquidCrystal_I2Ca.h
  3. Wenn Sie es in der Skizze verwenden, verwenden Sie include LiquidCrystal_I2Ca.h
Florin Rumänien
quelle