Sainsmart LCD 2004 - Vấn đề thư viện LiquidCrytal_I2C không thể biên dịch


7

Tôi đã mua Sainsmart LCD2004 từ Amazon để sử dụng với Arduino Uno của tôi. Tôi hiểu rằng vì màn hình LCD này sử dụng I2C, nên cần phải tải xuống thư viện mới.

Từ trang web sainsmart, tôi đã tải xuống 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

Khi tôi cố gắng biên dịch ví dụ có tiêu đề hellowworld, tôi gặp lỗi sau:

Trong tệp được bao gồm từ HelloWorld.pde: 3: C: \ Users \ r_yob_000 \ Documents \ Arduino \ library \ LiquidCrystal_I2C / LiquidCrystal_I2C.h: 81: error: loại trả về xung đột được chỉ định cho 'virtual void LiquidCstall_I2C :: write (uint8_t)' : \ Tệp chương trình (x86) \ Arduino \ phần cứng \ arduino \ cores \ arduino / Print.h: 48: lỗi: ghi đè 'kích thước ảo_t In :: write (uint8_t)'

Dường như có một xung đột giữa hai chức năng trả về các loại khác nhau.

Tôi đã thử tìm kiếm vấn đề và tìm thấy rất nhiều bài viết có lỗi tương tự. Giải pháp được đề xuất thường là phiên bản mới của LiquidCrytal_I2C cần được tải xuống. Hoặc người ta nên sử dụng Arduino IDE phiên bản 1.0

Tôi đã tải xuống hàng tấn thư viện LiquidCrytal_I2C và đã thử tất cả chúng trên phiên bản IDE 1.0 và 1.0.6 và tôi vẫn nhận được thông báo lỗi tương tự. Tôi thậm chí đã thử thay đổi tệp LiquidCrytal_I2C.h để nó trả về đúng loại và vẫn không gặp may.

Tôi có thể xin vui lòng giúp đỡ về vấn đề này.

Cảm ơn rât nhiều.

i2c  lcd 

Câu trả lời:


1

Tôi cũng gặp vấn đề với thư viện này, cho đến khi tôi nhận ra tên thư viện mặc định "LiquidCrystal" xung đột với thư viện khác, khiến các tệp bị lẫn lộn. Chỉ cần đặt các tệp vào một thư mục khác (tôi đặt tên là của tôi) "LiquidCstall_4x20". Giải quyết nó cho tôi.


1

Tôi vừa mua 3 trong số này hoạt động tốt với thư viện này LiquidCstall_I2C2004V1.zip
( Giấy phép: CC BY-NC 2012 http://www.wikispaces.com/user/view/TerryKing ).

Khi cài đặt thư viện này trong Arduino IDE (phiên bản 1.6 trở lên), hãy sử dụng mục menu Phác thảo | Bao gồm Thư viện | Thêm .ZIP Library ... , điều hướng đến thư mục nơi LiquidCstall_I2C2004V1.zip đã được tải xuống, sau đó mở tệp zip.

Sử dụng địa chỉ I2C trong ví dụ "HelloWorld" được cung cấp cùng với LiquidCstall_I2C2004V1:

//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()
{
}

Không thay đổi tên thư mục thư viện khác; cái này tương thích với thư viện hiện có Chỉ cần thêm nó như là một thư viện đóng góp.


nên có trình đơn "Nhập thư viện" giải nén zipfile với.
Brent Mesler

Chào mừng bạn đến với "Arduino Stackexchange" bạn thực sự có thể chỉnh sửa câu trả lời của mình bằng nút "chỉnh sửa" dưới câu trả lời của bạn.
Paul

Đoạn bổ sung hợp nhất thành câu trả lời theo đề xuất của MarkU. Cảm ơn!
Nick Gammon

0

Bạn phải nâng cấp thư viện I2C của bạn.

Tại đây bạn có thể tìm thấy phiên bản cuối cùng:
https://bitbucket.org/fmalpartida/new-l Liquidcstall / doads /

Và di chuyển cái cũ trong một thư mục khác để bạn có thể sử dụng cái này hoặc sau khi bạn cài đặt cái này làm như thế này:

  1. Đi vào Arduino\libraries\Newliquidcrystal_1.3.5\
  2. Đổi tên LiquidCrystal_I2C.h nhưLiquidCrystal_I2Ca.h
  3. Khi bạn sử dụng nó trong bản phác thảo sử dụng bao gồm LiquidCrystal_I2Ca.h
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.