Прошу помочь с i2c display модулем
- Войдите на сайт для отправки комментариев
Ср, 06/08/2014 - 00:16
День добрый, использую набор makerduino, пробую подключить eb-l2c lcd модуль и ничего не выходит.
Во первых у экрана не загорается подстветка
Во вторых ни один из опробованных скетчев не привел модуль к жизни и кроме полутусклой первой линии с прямоугольниками ничего не выводилось.
Один из многочисленных примеров пробуемого кода (сканером выяснил, что дисплей висит по адресу 0x20)
//DFRobot.com
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello, world!");
}
void loop()
{
}
Соотвестенно, чтобы я не загружал, на подсветку экрана это никак не повлияло (как собственно и на вывод хоть чего-то на экран). Как думаете, куда стоит копать? Спасибо.

Если модуль исправный, то версии библиотеки надо подбирать. Здесь есть тема по этому поводу "i2c партизанит" или как-то так.
Да. Скорее всего не сооветвует разводка платы библиотеке.
Прочтите внимательно этот пост: http://arduino.ru/forum/programmirovanie/arduino-pro-mini-lcd-20x4-s-i2c...
Вот мои опыты по работе с дисплеем http://blog.radjah.ru/2014/08/arduino.html
Вот отсюда я брал инфу http://devdotnet.org/post/2013/04/24/Podkluchenie-displeya-LCD-2004-po-s...
В статье два варианта настроек, но лучше поищи даташит, чтобы точно пины знать.
Бибилотеку из стандартной поставки заменил на эту https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
Друзья, спасибо за ваши советы, убил кучу времени, перепробывал все указанные варианты, ничего, все глухо. Подсветка не работает, текст не выводится, делаю вывод, что проблема с китайским экраном :-(
Друзья, спасибо за ваши советы, убил кучу времени, перепробывал все указанные варианты, ничего, все глухо. Подсветка не работает, текст не выводится, делаю вывод, что проблема с китайским экраном :-(
Обратитесь к продавцу с просьбой предоставить вам рабочую библиотеку и рабочий скетч. У них, как выяснилось, есть такое.
Друзья, спасибо за ваши советы, убил кучу времени, перепробывал все указанные варианты, ничего, все глухо. Подсветка не работает, текст не выводится, делаю вывод, что проблема с китайским экраном :-(
Может для начала дисп проверить?
Подключить по 4 бит, да и дисплей от дф работает у меня уже не один,
ни олного с браком небыло.
2Radjah
Собственно сам набор: http://www.aliexpress.com/item/FREE-SHIPPING-Advanced-Starter-Electronic-Bricks-Kits-For-Arduino-UNO-R3-BOARD-MODULE-LED-SENSOR-SHIELD/1622595535.html
2Leshiy
Так и сделал, сутки прошли, пока ответ нет.
2Bomberboy
Если подскажите, как подключить по 4 бит буду признателен. В моем наборе не так много вариантов подключений )
http://arduino.ru/forum/apparatnye-voprosy/problema-s-vyvodom-lcd-1602
это для начала, распиновка в скетче,иц2 преобразователь не подключать.
А вааще на какой микре переходник иц2?
Надо продовца трясти, переходник запаян на диспе?
А я бы для начала удалил Шильд который судя по фото одет. А потом проводил эксперементы.
А вторым шагом подал на экран питание. Что бы хоия бы подсветка заработала. И только потом смотрел в сторону i2c
Ноги у дисплея подписаны, так что можно подобрать конфиг, а вот с включение подсветки только перебор вариантов. На моём ноги подписаны не были.
На пальцах. Берете тестер и прозваниваете P0...P7 микрухи-i2c-расширителя
Вам нужны ножки 4 5 6 7 9 10 11 12 (они в таком порядке являются портами P0...P7). Контакты на дисплее подписаны. Потом составляете строчку:
LiquidCrystal_I2C lcd(ADDR,EN,RW,RS,D4,D5,D6,D7,BACKLIGHT POSITIVE);
Где вместо en,rw... подставляете цифру порта (P0...P7) к которому он подключен. К подсветке подключен транзистор и одна из ног идет к порту расширителя.
У меня есть один модуль готовый китайски и он для вашего дисплея будет выглядеть так:
LiquidCrystal_I2C lcd(0x27,4,5,6,0,1,2,3,7 POSITIVE);
Проверяю этим скетчем :)
#include <Wire.h> #include <LiquidCrystal_I2C.h> #define BACKLIGHT_PIN 7 LiquidCrystal_I2C lcd(0x27,4,5,6,0,1,2,3,7, POSITIVE); //////////////////////////////////////////////////////// int touch = 0; int touchl = 0; int rndt = 0; void setup(){ attachInterrupt(0, rpm_fan, CHANGE); lcd.home(); lcd.begin(16,2); lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); lcd.setBacklight(HIGH); lcd.clear(); lcd.setCursor(0,0); lcd.print("Prilaskay menya!"); lcd.setCursor(1,1); lcd.print("Ya vsya tvoya!"); randomSeed(analogRead(0)); } void loop(){ if (touchl < touch) { if (rndt <= 5) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Nezhnee, nezhnee"); lcd.setCursor(6,1); lcd.print("suchka!"); touch--; delay(2000); } else if (rndt >= 6) { lcd.clear(); lcd.setCursor(0,0); lcd.print("O, da! Da! DA!!!"); lcd.setCursor(0,1); lcd.print(" Lybly tebya :*"); touch--; delay(2000); } } else { lcd.setCursor(0,0); lcd.print("Prilaskay menya!"); lcd.setCursor(1,1); lcd.print("Ya vsya tvoya!"); delay(1000); } } void rpm_fan(){ touchl=touch; touch++; rndt = random(10); }Адрес, тот что 0x20, можно посмотреть в этом даташите на странице 2, слева сверху. Если не понимаете что там про H и L, то просто подставляейте по очереди вместо 20 цифры из двух правых столбцов. Однажды вам повезет.
Про подсветку. Если дисплей заработал, а подсветка нет - поменяйте слово POSITIVE на NEGATIVE.
Библиотека, после правильного указания строки, работает практически любая. Но чтоб наверняка - вот эту возьмите
Связался с продавцом, он дал корректную версию библиотеки и это помогло, все работает.
https://drive.google.com/?authuser=0#folders/0BzxrU4QvH7jENUdVbWpwYUdYbDQ
Еще раз всем спасибо, продолжу собирать T-1000.