Прошу помощи в подключении 2х16 LCD дисплея по I2C шине
- Войдите на сайт для отправки комментариев
Пнд, 22/10/2012 - 20:54
Есть 2X16 дисплей, с прикрученной платкой "IIC/I2C/TWI/SPI 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
Очень прошу указать на мою ошибку
Куда то в странное место копируете обычно, копируйте всю папку в \arduino-1.0.1\libraries и еще, быть может эта библиотека не работает в версии 1.0.1, попробуйте более раннюю версию IDE.
библиотеку качаем вот отсюда- http://www.dfrobot.com/index.php?route=product/product&path=48&product_id=593#.UIWxs6fjb4K
уже почти год использую такой-же девайс...
да, работает библа как в IDE 1.0 так и в IDE 1.0.1
maksim
Вы правы, она не работает с версией 1.0.1, скачал библиотеку по ссылке которую дал chaytan, все ошибки пропали.
chaytan
Спасибо! Ваша ссылка работает, а ведь видел ее раньше, но был уверян что это старая библиотека. :) Все ошибки пропали, дисплей правда не заработал но это уже видимо аппаратные проблемы которые я описывал тут
Добрый день всем.
Купил вот такой переходник
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 переходничек пропаян как бы хорошо, экран при паралельном подключении работает нормально. Подскажите пожалуйста куда еще копать? В чем может быть причина?
А как припаян модуль к дисплею?
Модуль крепится с помощью
http://www.ebay.com/itm/12pcs-1-X-40pin-2-54-Break-Away-Female-Headers-f...
гребенка припаяна к дисплею, а в нее втыкается сам переходник со штырьками))
Физическое исполнение контактов меня не интересует.
Как модуль подключен к дисплею? Сверяли ли вы распиновки дисплея и модуля?
Я теперь понял. Так как я не нашел правильную распиновку, я подключил как на картинке, sda и scl смотрят на лево относительно задней стороны дисплея контактами вверх.!)
http://www.ebay.com/itm/IIC-I2C-TWI-SP-I-Serial-Interface-Board-Module-P...
Хотя я пробовал и наоборот. Надеюсь понятно объяснил)
Может быть напряжения для инициализации дисплея не хватает? Хотя, тут надо аккуратно, дисплеи легко выходят из строя...
Название микросхемы используемой в переходничке китайцами старательно стерто, т.ч. даташит найти практически невозможно, можно только догадываться что там за микруха, соответственно распиновку трудно определить. Ну, Если к вечеру не разберусь, замкну накоротко и выкину. Все равно заказал другую, надеюсь с ней разберусь))
Получилось разобраться ? Такая же проблема
Получилось разобраться ? Такая же проблема
Нет. Жду другой переходник I2C.
А я вот буквально несколько сек назад разобрался.
Подключил на аналоговые выходы 4 и 5 и заработала вот эта либа
http://arduino-info.wikispaces.com/file/view/LiquidCrystal_I2C1602V1.zip...
А я вот буквально несколько сек назад разобрался.
Подключил на аналоговые выходы 4 и 5 и заработала вот эта либа
http://arduino-info.wikispaces.com/file/view/LiquidCrystal_I2C1602V1.zip...
пробовал эту либу с разными версиями Arduino IDE, подключал на АНАЛОГОВЫЕ выходы 4 и 5, но безрезультатно.
А старые либы сносил после установки ?
Я сейчас воспроизводил ситуацию и все заработало в следующей конфигурации :
Стандартные либы от Ардуино 1.0.4 + либа по ссылке и пример от этой же либы. Все остальное, поставленное отдельно для дисплея, нужно снести
SCL на 5й аналоговый , SDA на 4й аналоговый
И да, напряжение 5 вольт нужно, от 3.3 не запускается
Была одна платка, не заработала. Все остальные работают, для 16х2 и для 20х4 надо разные библиотеки. Ползал по ссылкам, пробывал все подряд, так и находил рабочую =) Так что друзья, метод научного тыка рулит =)
Может кому пригодиться.. У меня заработало в такой связке:
1. Этот экран http://dangerousprototypes.com/2009/08/13/bus-pirate-hd44780-character-lcd-adapter/, т.е. LCD 20x4, с тем же адаптером, но микросхема PCF8574AP.
2. Библиотека из поста топикстартера.
3. Адрес дисплея заменен на 0x38 в инциализации:
Вообще-то, у меня одна либа для обоих вариантов дисплеев, причем при одновременном использовании обоих...
Запускаю i2c сканер
Запускаю i2c сканер
Обычное дело... Надо что-нибудь заведомо работающее подключить и проверить: может у Вас i2c в контроллере не установлено.
ps: Вот никакого желания отвечать по существу... Особенно, когда на форуме существует несколько тем по одному и тому же вопросу никто не может их свести в одну. В результате: вопросы в одной теме, ответы на них - в другой...
Написал в этой теме чтобы не создавать подобную. Полазил и по форуму и в сети. Подключиться не получается. Использую PIC8574AP и lcd16x2. Перепробовал несколько библиотек и разных способов подключениями микросхемы к дисплею, разные адреса и разные номиналы подтягивающих резисторов, запускал и на старой версии IDE - ничего . Прочитал о i2c сканере. Запустил
>> Название микросхемы используемой в переходничке китайцами старательно стерто...
Смотрим внимательно:
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