Arduino Pro Mini + LCD 20x4 с I2C интерфейсом
- Войдите на сайт для отправки комментариев
Пнд, 12/05/2014 - 14:56
Добрый день. Имеется Arduino Pro Mini и LCD 20x4 с I2C интерфейсом. Использовал кучу библилиотек LiquidCrystal. Ни с одной ХеллоВорда не получилось. Экран просто моргает (если вывод в loop). Подскажите точно работающую, пожалуйста. IDE 1.0.5.
Подключал к А4 (SDA) и A5 (SCL).
Код не привожу, пробовал стандартный из примеров.
Ссылки на девайсы:
какой I2C-адрес у дисплея (можно взять скетч "i2c scanner) и какой в коде "стандартного примера"?
какой I2C-адрес у дисплея (можно взять скетч "i2c scanner) и какой в коде "стандартного примера"?
Тут все чисто. Адрес 0х27 (как раз сканером и проверил), в скетче так же.
Я тоже пробовал кучу библиотек, но проблема в том что они все одинаковые. Эксперементальным путем установил что нужно lcd.begin(); 2 раза вызывать в setup. А еще у вас яркость наверно неправильно отрегулированна.
Яркость крутил (потенциометр). А вот насчет begin надо попробовать. Хотя и странно. Кстати - библиотеки разные. В неготорых lcd.begin(), а у кого-то lcd.init(). Ну или просто я вообще не понимаю.
Я про управляющие коды LCD - внутри они идут в одинаковом порядке и с одинаковыми задержками(значит нет разницы), вот только дисплей на них не всегда реагирует(так и не понял почему).
Тоже pro mini, тоже LCD 20*4 i2c и тоже были проблеммы с дисплеем - рабочая конфигурация: для 20*4, библиотека с github https://github.com/kiyoshigawa/LiquidCrystal_I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x20 for a 16 chars and 2 line display
void setup()
{
lcd.init();
lcd.backlight();
lcd.print("hello, habrahabr!"); // вывод сообщения на LCD
}
void loop()
{
// устанавливаем курсор в 0-ом столбце, 1 строка (начинается с 0)
lcd.setCursor(9, 2);
lcd.print(millis()/1000); // вывод числа секунд после сброса
}
PS И да, ОБЯЗАТЕЛЬНО ПРОВЕРЬТЕ ПОДСТРОЕЧНЫЙ РЕЗИСТОР СЗАДИ ДИСПЛЕЯ НА ЯРКОСТЬ!!
Народ у меня была аналогичная проблема - но она заключалась не в библиотеках, а именно в i2C устройстве. - У данного устройства которое я купил - вот оно -
http://www.ebay.com/itm/161330941524?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
разъем подключения LCD на данном устройстве нихрена не соответствует подключению к ножкам самого LCD.
Народ у меня была аналогичная проблема - но она заключалась не в библиотеках, а именно в i2C устройстве. - У данного устройства которое я купил - вот оно -
http://www.ebay.com/itm/161330941524?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
разъем подключения LCD на данном устройстве нихрена не соответствует подключению к ножкам самого LCD.
странно покупал 2 штуки.все совпадает один в один...
я тоже купил 2 штуки. И плясал с бубном до тех пор пока не разобрался с работой PCF8574 - в гугле есть схемы подключения LCD через этот расширритель портов. На купленных мной устройствам путем прозвонки было установлено несоответствие ножек подключения. После этого данные платы были задвинуты в дальний ящик, а я купил вот это -
http://www.ebay.com/itm/130748113121?ssPageName=STRK:MEWAX:IT&_trksid=p3...
Которое без проблем запустилось с LCD 1602, 2004 и 0802.
у меня такие http://www.ebay.com/itm/I2C-IIC-Serial-Interface-Board-Module-LCD1602-Address-Changeable-/130895393679?pt=LH_DefaultDomain_0&hash=item1e79f9338f
Народ у меня была аналогичная проблема - но она заключалась не в библиотеках, а именно в i2C устройстве. - У данного устройства которое я купил - вот оно -
http://www.ebay.com/itm/161330941524?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
разъем подключения LCD на данном устройстве нихрена не соответствует подключению к ножкам самого LCD.
вы правы я нашол ответ! ошибка в подключении ножек I2C модуля а вот код как это всё исправить
вот только у меня окозалоси 2 библиотеки какая из них разберайтесь сами
https://yadi.sk/d/J0_kY7sKYvCVn первая библиотека LiquidCrystal
https://yadi.sk/d/l8yrnr_cYvCVw вторая библиотека LiquidCrystal_I2C
Странно как то, специально проверил с про мини,всё работает
попробуйте ради интереса с этой библиотекой https://yadi.sk/d/t2FvxSHjYv369
Странно как то, специально проверил с про мини,всё работает
попробуйте ради интереса с этой библиотекой https://yadi.sk/d/t2FvxSHjYv369
я на меги но с китайский I2C там где перепутаны контакты работает мой пример преведеный выше.
пробовал вашу библиотеку она не работает выводит курсор на 6-юу клетку и всё.
у кого таже проблема что я описываю с библиотекой avton используйте мой пример кода выше а библиотуку выложу позже как разберусь как это сделать
попробовал библиотеку предложенную Avton в #12 в связке с pro mini - ОНО ЗАРАБОТАЛО. Но эта библитека не работает с устройством описанным мной в #9. Таким образом библиотеки явно разные(вернее в библитеках разное перезначение пинов подключения LCD).
Более правильно - мне кажется необходимо использовать код и библитеки предложенные 0259 в #11. Это универсальный подход позволяющий одной библиотекой работать с разными устройствами. То что у устройств I2C разная распиновка - это факт. И остается только поблагодарить дядюшку Ляо за косяки с распиновками. За дешевизну надо платить.
От себя хочу сказать большое спасибо Avton за преложенные библитеки, ибо позволило оживить 2 платки I2C.
Если честно даже не помню откуда качал,сразу попал на неё и поэтому не было таких проблем,даже подумать не мог что распиновка может не совпадать
Во ,вспомнил ))))
http://zelectro.com.ua/LcdI2Cmodule
а я отсюда http://playground.arduino.cc/Code/LCDi2c
Мне библиотеки достались от продавца 2-е суток я разбирался а потом наехал на него что он мне товар не рабочий подсунул он дал библиотеки пример кода и объяснил что у них просто скопировать модуль нельзя (запрещено законом) по этому они меняют ножки местами ну вообще (кто на что горазд)
китайцы отжигают)))
чет как то звучит не по китайски. уж лет 10 с китайцами работаю и впервый раз такое слышу. скорее просто накосячили и заказчик отказался, так они теперь сливают это кривое гавно как могут.
покупайте дисплеи со впаеными модулями i2c и будет вам счастье!)
Ну все возможно я не спорю просто передаю что сказано мне
покупайте дисплеи со впаеными модулями i2c и будет вам счастье!)
А вас возможно расстрою покупал на aliexpress.com не модуль I2S а дисплей уже с распашными модулем и попал вот на такое что модуль оказался не правильно распаян. Так что не кто не застрахован от такого
покупайте дисплеи со впаеными модулями i2c и будет вам счастье!)
ну че уж тут, "и на старуху бывает порнуха". Я тоже на али брал 2 модуля распаяны были нормально но тоже поплясал с выбором библиотеки, потом оказалось что на гитхабе самая рабочая. Ща все вроде работает, аминь!)
да все что не убивает делает нас сильнее
так что чем больше ширпотрепа и не правильно выполненных модулей тем больше опыта у нас
угу, и тем больше желания начать делать свои модули :) это еще интересней чем просто соединять проводками :)
угу, и тем больше желания начать делать свои модули :) это еще интересней чем просто соединять проводками :)
я тоже к это му выводу пришел, поэтому закупил десяток PCF8574.
кстати интереско кроми lcd дисплея что еще можно к ней PCF8574 подключить?
кстати интереско кроми lcd дисплея что еще можно к ней PCF8574 подключить?
да все что вам зачешется, PCF8574 это просто I2C <-> 8 бит паралельный порт
Более правильно было бы сказать - что PCF8574 - позволяет расширить количество порттов, используя двухпроводной интерфейс(I2C), используя адресацию можно на I2C повесить до 8ми PCF8574 и получить допонительно 64 порта ввода-вывода. В этом плане более интересна МСР23017, которая позволяет аналогично добавит 16 портов. Так что подключение LCD это частный случай.
Более подробно о расширении портов http://homes-smart.ru/index.php/oborudovanie/prochee/rasshiryaem-porty
Более правильно было бы сказать - что PCF8574 - позволяет расширить количество порттов, используя двухпроводной интерфейс(I2C), используя адресацию можно на I2C повесить до 8ми PCF8574 и получить допонительно 64 порта ввода-вывода. В этом плане более интересна МСР23017, которая позволяет аналогично добавит 16 портов. Так что подключение LCD это частный случай.
Более подробно о расширении портов http://homes-smart.ru/index.php/oborudovanie/prochee/rasshiryaem-porty
блин не поделитесь идеей нафига вам столько портов? что такое глобальное должна обслуживать ардуинка что бы ей понадобилось такая гора портов?
У нас на производстве рабочая группа решила автоматизировать процесс прозвонки автомобильных жгутов на ОТК(в экономном варианте, ибо использование промышленных наработок типа Divmaс - заоблачно дорого), имеющих более пятидесяти жил. Вот Вам и вариант использования. Главное то, что есть такая возможность, а варианты использования подкинет жизнь,техзадание или воспаленный моск )).....
У нас на производстве рабочая группа решила автоматизировать процесс прозвонки автомобильных жгутов на ОТК(в экономном варианте, ибо использование промышленных наработок типа Divmaс - заоблачно дорого), имеющих более пятидесяти жил. Вот Вам и вариант использования. Главное то, что есть такая возможность, а варианты использования подкинет жизнь,техзадание или воспаленный моск )).....
возмите мегу2560 там без танцев с бубнами 53 вывода. да и прозвонку жгутов насколько я себе представляю можно производить на стенде с лампочками. без всяких там МК.
не нужно плодить сучностей свыше необходимого :)
я не поборник флуда, в принципе ветку можно закрыть, тк решение темы ветки найдено.
Но напоследок все-таки замечу что 54 портов (а не 53) на меге все равно недостаточно для прозвонки 100 концов, и на лампочках чтобы реализовать стенд прозвонки 20 номенклатурных групп жгутов - это глупо и как раз наплодит кучу ненужных сущностей в виде матриц перекоммуникаций реализованных в железе.
Гораздо разумнее и следуя принципу "Лезвия Оккамы" матрицы коммутаций реализовать программно и по необходимости заливать нужную программку. Все. Эту тему я больше не обсуждаю. Всем спасибо.
возмите мегу2560 там без танцев с бубнами 53 вывода. да и прозвонку жгутов насколько я себе представляю можно производить на стенде с лампочками. без всяких там МК.
не нужно плодить сучностей свыше необходимого :)
у меня мега но портов много не бывает может быть только недостаточно!