Работа с LCD дисплей на HD44780 по I2C

Использование дисплеев и обсуждение пользовательских блоков к ним
Ответить
Denis111
Рядовой
Сообщения: 10
Зарегистрирован: 29.10.2016{, 09:05}
Репутация: 0
Откуда: Рыбинск

Работа с LCD дисплей на HD44780 по I2C

#1

Сообщение Denis111 » 24.01.2017{, 22:27}

Долго не мог заставить работать LCD 16х2 дисплей с модулем I2C, перепробовал кучу библиотек и версий IDE Arduino. Наконец он заработал на IDE версии 1.6.4 с библиотекой LiquidCrystal_I2C
Но когда FLProg выгружает файл в среду IDE Arduino, мне каждый раз приходится вручную менять две строчки, иначе дисплей не работает:

В самом начале, где подключаются библиотеки и описываются переменные
LiquidCrystal_I2C _lcd1(0x27, 16, 2);
заменяю на
LiquidCrystal_I2C _lcd1(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

И в установках void setup()
_lcd1.init();
заменяю на
_lcd1.begin(16,2);

В таком виде программа нормально работает с дисплеем. Не знаю, это может у меня такой дисплей или в FLProg недоработка?
У меня FLProg стоит версии 2.1.0, гляжу появилась новая, но как то я опасаюсь менять, т.к. боюсь что опять начнутся проблемы с дисплеем

Аватара пользователя
slavas
Лейтенант
Сообщения: 587
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 0
Откуда: Санкт-Петербург

Работа с LCD дисплей на HD44780 по I2C

#2

Сообщение slavas » 25.01.2017{, 19:24}

В старых версиях программ проблем с экраном не было, в последней нужно применять патч.
Последний раз редактировалось slavas 25.01.2017{, 19:25}, всего редактировалось 1 раз.

Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15.12.2016{, 22:04}
Репутация: 0
Откуда: Екатеринбург

Работа с LCD дисплей на HD44780 по I2C

#3

Сообщение Nikito$ » 25.01.2017{, 21:30}

Почитай тут http://flprog.ru/news....-07-55. И все же, советую обновиться.
Последний раз редактировалось Nikito$ 25.01.2017{, 21:33}, всего редактировалось 1 раз.

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 76
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#4

Сообщение Golan » 12.01.2018{, 21:49}

Весь день сегодня промучался с дисплеями HD44780 по I2C, их 4, сегодня получил, специально брал 3 в сборе с I2C, один раздельно.
Что только не делал, ни один не начал показывать, что нибудь, сомневаюсь что все с браком, попробовал вариант как в первом посте, прошло, только без POSITIVE, на дисплее в первой строке последний строке мигает одна ячейка и все.
И ардуино переустановил, начинал с 1.6.4, и все версии ФЛПрог попробовал, нифига.
Шину сканировал, и вручную и с файла адрес ставил, все безрезультатно.
Ткните носом где почитать, весь форум облазил.
Спасибо.
СпойлерПоказать
1.jpg
1.jpg (25.04 КБ) 1593 просмотра
2.jpg
2.jpg (2.89 КБ) 1593 просмотра
Добро не ценится в современном мире, люди от него наглеют!

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#5

Сообщение Sancho » 12.01.2018{, 22:34}

название мс на плате I2C, буквы после 4.
Проверка стандартными скетчами?
Что говорит сканер I2C? Адреса.
Схема подключения!!! Проверить 7 раз. Питание 5 вольт, 3.3 не катит.
Который без шины, через кучу пинов - такая же история?
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 76
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#6

Сообщение Golan » 12.01.2018{, 23:20}

название мс на плате I2C, буквы после 4. - на припаянных, в том числе мной 4Т, а есть два отдельно брал, на них 4АТ
Проверка стандартными скетчами? - всеми, даже банально вытаскивал и подправлял (удалял лишнее) с готовых скетчей
Что говорит сканер I2C? Адреса. - 27 как на фото выше
Схема подключения!!! Проверить 7 раз. Питание 5 вольт, 3.3 не катит. - тут не ошибусь, до подключения проверил 100 раз
Который без шины, через кучу пинов - такая же история? - к сожалению так не пробовал, после мороки с готовыми, припаял I2C.

Отправлено спустя 2 часа 26 минут 18 секунд:
Ерунда какая то.
Почитал статейку http://arduino-info.wikispaces.com/LCD-Blue-I2C#v3
Установил библиотечку
Newliquidcrystal_1.3.5.zip
(2.4 МБ) 98 скачиваний
Скетч
СпойлерПоказать
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup()
{
lcd.begin(16,2);
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Hello World!");
lcd.setCursor(8,1);
lcd.print("You Luser");
}
Заработали все дисплеи, попробовал запустить из программы, хренушки :crazy:

Это в ардуино
SAM_2833.JPG
SAM_2833.JPG (11.17 КБ) 1567 просмотров
Сутки, ну это нормально
Добро не ценится в современном мире, люди от него наглеют!

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#7

Сообщение Sancho » 13.01.2018{, 09:13}

Golan, можно фото Вашей платы I2C и дисплея со стороны маркировки выводов.
Мне кажется, идёт не стыковка по пинам между платами в стандартной, зашитой в IDE, библиотеке и у Вас.
Здесь-же Вы явно указываете, где и что расположено.
РаспиновкаПоказать

Код: Выделить всё

LiquidCrystal_I2C
(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, 
 uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
 uint8_t backlighPin, t_backlighPol pol);
 
	lcd_Addr[in] I2C address 
	En[in] LCD En (Enable) 
	Rw[in] LCD Rw (Read/write) 
	Rs[in] LCD Rs (Reset) 
	d4[in] LCD data 0 
	d5[in] LCD data 1 
	d6[in] LCD data 2 
	d7[in] LCD data 3 
Нужно запомнить, не было таких случаев, всегда покупались и попадались только такие
СпойлерПоказать
IIC-I2C-LCD1602-2004.jpg
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 76
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#8

Сообщение Golan » 13.01.2018{, 11:22}

Извините за долгий ответ, до 11 часов я не могу попасть на форум, выскакивает идентификация в админку, замучил этот баг или как его там :crazy:
Фото без проблем, но распиновка как и на Вашем фото.
А попробовал с разными модулями, перепаивал, и 4Т и 4АТ
SAM_2833.JPG
SAM_2833.JPG (35.95 КБ) 1537 просмотров
Мне вот интересно, почему напрямую с Ардуино скетч работает при одной и той же библиотеке, а если скетч грузится с программы, то тишина, вернее ошибка?
Библиотеку оставил одну (NewliquidCrystal) с ФЛПрог ошибка в _lsd1.init();, если поставлю рядом библиотеку LiquidCrystal_I2C, то прогружается нормально, но дисплей молчит
1.jpg
Добро не ценится в современном мире, люди от него наглеют!

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#9

Сообщение Sancho » 13.01.2018{, 11:23}

Взял новый дисплей(только получил) 2004, припаял платку с 8574А.
:crazy: И тоже ломаю мозг :crazy:
:taunt:
P.S. Когда грузится из программы ошибка из-за другой библиотеки - там иначе сделана инициализация, посмотрите внимательно, увидите.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 76
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#10

Сообщение Golan » 13.01.2018{, 11:41}

Спасибо, я вижу, что только не менял в кодах, но я в них разбираюсь как гаишник в законах %) , надеюсь что это только пока.
А как понять ИЗ-ЗА другой, у меня одна сейчас стоит?
Добро не ценится в современном мире, люди от него наглеют!

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#11

Сообщение Sancho » 13.01.2018{, 12:29}

Golan писал(а):
13.01.2018{, 11:41}
А как понять ИЗ-ЗА другой, у меня одна сейчас стоит?
Программа FLProg инициализирует другую библиотеку, объявляет объекты по-другому, разные команды:
1. как в посте 7, для биб-ки из поста 6; объявление и xx.begin(16, 2); инициализация
2. LiquidCrystal_I2C _lcd1(0x3F, 20, 4); xx.init(); объявление и иниц. для родной, встроенной
Мой случай - всех учу, а на просевшем питании сам попался :senile: :haha:
Всё работает.

Отправлено спустя 16 минут 21 секунду:
Просмотрел библиотеки, встроенную и новую, предложенную Golan, Newliquidcrystal_1.3.5.zip.
Если используется платы с 8574 как на фото выше, и объявление выглядят как
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
то никаких отличий я не нашёл.
Попробуйте всё-таки вернуть назад библиотеку и загрузитесь заново из FLProg.
В чудеса в электронике не верю. В Глюки - да. :)
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 76
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#12

Сообщение Golan » 13.01.2018{, 13:41}

То есть использовать LiquidCrystal_I2C ?

Я сейчас полностью вычищу все следы Ардуино и FLProg и все с чистого листа поставлю, но что то мне чутье подсказывает ничего не измениться.
Спасибо большое

Отправлено спустя 5 часов 59 минут 57 секунд:
Sancho, должен Вам выразить огромную благодарность за оказанную помощь, хотя я так и не понял почему сторонняя библиотека мешала работе дисплея.
Как я понял что если я, не дай бог, установлю какую нибудь библиотеку LiquidCrystal_I2C, помимо уже имеющейся, то получу тот же геморрой, который мучил прошлые сутки?
Добро не ценится в современном мире, люди от него наглеют!

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#13

Сообщение Sancho » 13.01.2018{, 19:57}

Golan писал(а):
13.01.2018{, 19:41}
если я, не дай бог, установлю какую нибудь библиотеку LiquidCrystal_I2C, помимо уже имеющейся, то получу тот же геморрой, который мучил прошлые сутки?
У каждой биб-ки свой "диалект", наречие, язык, команды так сказать.
И когда Вы пытаетесь с ними говорить по другому - они Вас не понимают, компилятор ругается из-за невозможности сопоставить, что Вы говорите и что они понимают. Образно говоря.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 76
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

Работа с LCD дисплей на HD44780 по I2C

#14

Сообщение Golan » 13.01.2018{, 20:03}

:taunt: Я вас понял, еще раз благодарю, да пребудет с Вами сила!
Добро не ценится в современном мире, люди от него наглеют!

Ответить

Вернуться в «Дисплеи и индикаторы»