LCD 2004 на KS0066

Roman
Offline
Зарегистрирован: 15.02.2013

Всем доброго времени суток.

Возникла задача подключить дисплей 20х4 при помощи i2c модуля. 

Какие только библиотеки не пробовал, все практически безрезультатно.

Буду очень благодарен за помощь.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

А со стандартной библиотекой он работает?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Вы бы лучше модуль показали бы. Их просто немерянно разных.

Roman
Offline
Зарегистрирован: 15.02.2013

brokly пишет:

Вы бы лучше модуль показали бы. Их просто немерянно разных.

модуль такой http://www.ebay.com/itm/IIC-I2C-TWI-SP-Serial-Interface-Board-Module-Port-For-Arduino-1602LCD-Display-5V-/281234403721?pt=LH_DefaultDomain_0&hash=item417ae07189

Roman
Offline
Зарегистрирован: 15.02.2013

NeiroN пишет:

А со стандартной библиотекой он работает?

Параллельно не подключал. Но дисплей рабочий, со многими библиотеками он показывает, правда чепуху всякую, но когда выводить цифры 1, 2, 3, то он их показывает.

Roman
Offline
Зарегистрирован: 15.02.2013

Подключил паралельно. По 4 проводам та же картина, что и с модулем i2c. По 8 проводам - числа отображаются коректно, а вот с буквами проблемы.

xorkrus
Offline
Зарегистрирован: 22.09.2013

Я использовал LiquidCrystal_I2C. Только меня распиновку под свой I2C модуль (сам его паял). С другими либами тоже не получалось. Распиновка меняется в ините скетча. В доке либы есть это.

Roman
Offline
Зарегистрирован: 15.02.2013

xorkrus пишет:

Я использовал LiquidCrystal_I2C. Только меня распиновку под свой I2C модуль (сам его паял). С другими либами тоже не получалось. Распиновка меняется в ините скетча. В доке либы есть это.

Я целую кучу этих библиотек LiquidCrystal_I2C перепробовал, и ничено. С дисплеем 1602 все прекрасно работает, а вот с 2004 тупик.

xorkrus
Offline
Зарегистрирован: 22.09.2013
#include 
LiquidCrystal_I2C lcd(0x20,4,5,6,0,1,2,3,7, POSITIVE);  // Set the LCD I2C address

Вот у меня такая распиновка. Значения соответствуют вот этому:

addr, en,rw,rs,d4,d5,d6,d7,bl,blpol

У меня 2402 от LG на том же KS0066. Также, если вместо символов (только латинские) идут кракозябры - увеличте задержки инициализации. Т.е. должно быть примерно так:

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

void setup() {
  lcd.begin(20,4);
  delay(1000);
  lcd.clear();
  delay(1000);
  lcd.home();
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
}

 

Roman
Offline
Зарегистрирован: 15.02.2013

xorkrus пишет:

#include 
LiquidCrystal_I2C lcd(0x20,4,5,6,0,1,2,3,7, POSITIVE);  // Set the LCD I2C address

Вот у меня такая распиновка. Значения соответствуют вот этому:

addr, en,rw,rs,d4,d5,d6,d7,bl,blpol

У меня 2402 от LG на том же KS0066. Также, если вместо символов (только латинские) идут кракозябры - увеличте задержки инициализации. Т.е. должно быть примерно так:

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

void setup() {
  lcd.begin(20,4);
  delay(1000);
  lcd.clear();
  delay(1000);
  lcd.home();
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
}

 

Спасибо! Попробую! А можете еще ссылочку на вашу библиотеку, или бросьте на почту skream85@mail.ru

xorkrus
Offline
Зарегистрирован: 22.09.2013

Я вот этой статьей спасся. Там же и либу брал

Roman
Offline
Зарегистрирован: 15.02.2013

Проблема оказадась в дисплее. Что то с ним не то. Подключил другой, и все заработало. Использовал библиотеку из предыдущего поста.

Всем спасибо.

xorkrus
Offline
Зарегистрирован: 22.09.2013

Подключите проблемный дисплей и запустите вот этот скетч. Адрес Вашего I2C-контроллера, может отличаться от того, что указан в даташте на текущее расположение\отсутствие перемычек адреса. Запустив скетч, сможете увидеть в серийном порте адрес вашего устройства и подставить его тут:

LiquidCrystal_I2C lcd(0x27, 2...

Roman
Offline
Зарегистрирован: 15.02.2013

xorkrus пишет:

Подключите проблемный дисплей и запустите вот этот скетч. Адрес Вашего I2C-контроллера, может отличаться от того, что указан в даташте на текущее расположение\отсутствие перемычек адреса. Запустив скетч, сможете увидеть в серийном порте адрес вашего устройства и подставить его тут:

LiquidCrystal_I2C lcd(0x27, 2...

Нашел в чем была проблема с тем дисплеем, аж стыдно признаваться. Была "сопля" между двумя выводами.