Прошу помощи в подключении 2х16 LCD дисплея по I2C шине

GRiMmase
Offline
Зарегистрирован: 26.07.2012

 Есть 2X16 дисплей, с прикрученной платкой "IIC/I2C/TWI/SP​I Serial Interface Module"

Подключаю SDA и SCL к 5-му и 4-му аналоговому входу дуины, скачал последнюю библиотеку LiquidCrystal_I2C отсюда из библиотеки копирую файлы LiquidCrystal_I2C.cpp и LiquidCrystal_I2C.h в папку IDE (...\arduino-1.0.1\hardware\arduino\cores\arduino\) я не знаю насколько это правильно, но я обычно все библиотеки туда копирую и всегда работало.

После попытки загрузить пример "HelloWorld.ino" из библиотеки в дуину, выскакивает ошибка

G:\Distrib\ARDUINO\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino\LiquidCrystal_I2C.cpp: In member function 'void LiquidCrystal_I2C::init_priv()':
G:\Distrib\ARDUINO\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino\LiquidCrystal_I2C.cpp:42: error: 'Wire' was not declared in this scope
G:\Distrib\ARDUINO\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino\LiquidCrystal_I2C.cpp: In member function 'void LiquidCrystal_I2C::expanderWrite(uint8_t)':
G:\Distrib\ARDUINO\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino\LiquidCrystal_I2C.cpp:242: error: 'Wire' was not declared in this scope

 Очень прошу указать на мою ошибку

maksim
Offline
Зарегистрирован: 12.02.2012

Куда то в странное место копируете обычно, копируйте всю папку в \arduino-1.0.1\libraries и еще, быть может эта библиотека не работает в версии 1.0.1, попробуйте более раннюю версию IDE.

chaytan
Offline
Зарегистрирован: 02.02.2012

 библиотеку качаем вот отсюда- http://www.dfrobot.com/index.php?route=product/product&path=48&product_id=593#.UIWxs6fjb4K

уже почти год использую такой-же девайс...

да, работает библа как в IDE 1.0 так и в  IDE 1.0.1

GRiMmase
Offline
Зарегистрирован: 26.07.2012

maksim

Вы правы, она не работает с версией 1.0.1, скачал библиотеку по ссылке которую дал chaytan, все ошибки пропали.

chaytan

Спасибо! Ваша ссылка работает, а ведь видел ее раньше, но был уверян что это старая библиотека. :) Все ошибки пропали, дисплей правда не заработал но это уже видимо аппаратные проблемы которые я описывал тут 

demon969
Offline
Зарегистрирован: 24.04.2012

Добрый день всем.

Купил вот такой переходник

http://www.ebay.com/itm/IIC-I2C-TWI-SP-I-Serial-Interface-Board-Module-P...

Имею lcd экранчик на чипе HD44780, подключил его так же как на картинке по ссылке выше.

Подключаю SDA и SCL к 5-му и 4-му аналоговому входу.

I2C програамой сканером, видится адрес 0x20.

Пробовал различные библиотеки LiquidCristal_I2C по ссылкам указанным выше в этом посте, с различными версиями Arduino IDE 1.0 - 1.0.3, но к сожалению даже примеры из библиотек не работают. Ошибок при компиляции примеров программ нет. I2C переходничек пропаян как бы хорошо, экран при паралельном подключении работает нормально. Подскажите пожалуйста куда еще копать? В чем может быть причина?

 

maksim
Offline
Зарегистрирован: 12.02.2012

А как припаян модуль к дисплею?

demon969
Offline
Зарегистрирован: 24.04.2012

Модуль крепится с помощью 

http://www.ebay.com/itm/12pcs-1-X-40pin-2-54-Break-Away-Female-Headers-f...

гребенка припаяна к дисплею, а в нее втыкается сам переходник со штырьками))

maksim
Offline
Зарегистрирован: 12.02.2012

Физическое исполнение контактов меня не интересует. 
Как модуль подключен к дисплею? Сверяли ли вы распиновки дисплея и модуля?

demon969
Offline
Зарегистрирован: 24.04.2012

Я теперь понял. Так как я не нашел правильную распиновку, я подключил как на картинке, sda  и scl смотрят на лево относительно задней стороны дисплея контактами вверх.!)

http://www.ebay.com/itm/IIC-I2C-TWI-SP-I-Serial-Interface-Board-Module-P...

Хотя я пробовал и наоборот. Надеюсь понятно объяснил)

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Может быть напряжения для инициализации дисплея не хватает? Хотя, тут надо аккуратно, дисплеи легко выходят из строя...

demon969
Offline
Зарегистрирован: 24.04.2012

Название микросхемы используемой в переходничке китайцами старательно стерто, т.ч. даташит найти практически невозможно, можно только догадываться что там за микруха, соответственно распиновку трудно определить. Ну, Если к вечеру не разберусь, замкну накоротко и выкину. Все равно заказал другую, надеюсь с ней разберусь))

vlkam
Offline
Зарегистрирован: 17.02.2013

Получилось разобраться ? Такая же проблема

demon969
Offline
Зарегистрирован: 24.04.2012

vlkam пишет:

Получилось разобраться ? Такая же проблема

Нет. Жду другой переходник I2C.

vlkam
Offline
Зарегистрирован: 17.02.2013

А я вот буквально несколько сек назад разобрался.

Подключил на аналоговые выходы 4 и 5  и заработала вот эта либа

http://arduino-info.wikispaces.com/file/view/LiquidCrystal_I2C1602V1.zip...

demon969
Offline
Зарегистрирован: 24.04.2012

vlkam пишет:

А я вот буквально несколько сек назад разобрался.

Подключил на аналоговые выходы 4 и 5  и заработала вот эта либа

http://arduino-info.wikispaces.com/file/view/LiquidCrystal_I2C1602V1.zip...

пробовал эту либу с разными версиями Arduino IDE, подключал на АНАЛОГОВЫЕ выходы 4 и 5, но безрезультатно.

vlkam
Offline
Зарегистрирован: 17.02.2013

 А старые либы сносил после установки ?

Я сейчас воспроизводил ситуацию и все заработало в следующей конфигурации :

Стандартные либы от Ардуино 1.0.4  + либа по ссылке и пример от этой же либы. Все остальное, поставленное отдельно для дисплея, нужно снести

SCL на 5й аналоговый , SDA на 4й аналоговый

И да, напряжение 5 вольт нужно, от 3.3 не запускается

hypersash
Offline
Зарегистрирован: 07.12.2011

Была одна платка, не заработала. Все остальные работают, для 16х2 и для 20х4 надо разные библиотеки. Ползал по ссылкам, пробывал все подряд, так и находил рабочую =) Так что друзья, метод научного тыка рулит =)

Clampo
Clampo аватар
Offline
Зарегистрирован: 03.08.2013

Может кому пригодиться.. У меня заработало в такой связке:

1. Этот экран http://dangerousprototypes.com/2009/08/13/bus-pirate-hd44780-character-lcd-adapter/, т.е. LCD 20x4, с тем же адаптером, но микросхема PCF8574AP.

2. Библиотека из поста топикстартера.

3. Адрес дисплея заменен на 0x38 в инциализации: 

LiquidCrystal_I2C lcd(0x38,20,4);

 

chaytan
Offline
Зарегистрирован: 02.02.2012

Вообще-то, у меня одна либа для обоих вариантов дисплеев, причем при одновременном использовании обоих...

vvadim
Offline
Зарегистрирован: 23.05.2012

Запускаю i2c сканер 

 

I2C Scanner
Scanning...
 
и больше ничего
Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

vvadim пишет:

Запускаю i2c сканер 

I2C Scanner
Scanning...
 
и больше ничего

Обычное дело... Надо что-нибудь заведомо работающее подключить и проверить: может у Вас i2c в контроллере не установлено.

ps: Вот никакого желания отвечать по существу... Особенно, когда на форуме существует несколько тем по одному и тому же вопросу никто не может их свести в одну. В результате: вопросы в одной теме, ответы на них - в другой...

vvadim
Offline
Зарегистрирован: 23.05.2012

Написал в этой теме чтобы не создавать подобную. Полазил и по форуму и в сети. Подключиться не получается. Использую PIC8574AP и lcd16x2. Перепробовал несколько библиотек и разных способов подключениями микросхемы к дисплею, разные адреса и разные номиналы подтягивающих резисторов, запускал и на старой версии IDE - ничего . Прочитал о i2c сканере. Запустил

 

I2C Scanner
Scanning...
 
Библиотеки Wire и LiquidCrystal стоят в нужной директории
trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

>> Название микросхемы используемой в переходничке китайцами старательно стерто...

Смотрим внимательно:

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

Ага, 0x20 это адрес устойства... Понятно...

Берём Гугль...  Ищем "arduino i2c LCD 0x20  " Сразу натыкаемся на магическое число  PCF8574. ПодходНит?

Кстати не факт что ваш адрес будет 0x20 , посмотрите на ножки A0, A1, A2.

Аж до 0x27 можно выставить

http://playground.arduino.cc//Code/LCD