Подключение LCD 20X4
- Войдите на сайт для отправки комментариев
Сб, 13/10/2012 - 15:52
На дисплей lcd 16x2 выводится меню из шести строк для управления мотором. Всё работает. Нужно подключить lcd 20x4. Инициировал. Написал заставку - выводится на все четыре строчки . Меню выводится только на две строки. В чём проблема ?
1. Скорее всего меню писалось для дисплея 16х2, а не 20х4.
2. Проблема в том, что здесь нет экстрасенсов и никто не видит что у вас за код.
Вставка программного кода в тему/комментарий
Вот часть кода, где есть дисплей
Ещё
Ещё
На дисплей lcd 16x2 выводится меню из шести строк для управления мотором. Всё работает. Нужно подключить lcd 20x4. Инициировал. Написал заставку - выводится на все четыре строчки . Меню выводится только на две строки. В чём проблема ?
Проблема в том скорее всего что он состоит из двух 20х2 и есть два пина enable смотрите даташит.
Инициализацию проводите примерно так
LiquidCrystal lcd1(8, 6, 5, 4, 3, 2);
LiquidCrystal lcd2(8, 11, 5, 4, 3, 2);
lcd1.begin(20, 2);
lcd2.begin(20, 2);
Будет две строки верхние и две нижние, такой способ применил для 40х4
Дисплей Winstar WN2004d с одним E. Работают все строчки. Проблема в программе наверное. Но как сделать, что бы на дисплей выводилось 4 стоки меню у меня знаний не хватает.
У вас в коде инициализация только двух строк lcd.begin(16, 2);
Замените на lcd.begin(16, 4);
Да, да или lcd.begin(20, 4); попробуйте.
Я всё пробовал с lcd.begin(20,4). замена на 16,4 ничего не даёт. Нашёл часть кода связанного с отображением меню. Ночью пробовал разные комбинации дописывать -курсор всё равно только на двух строчках, а в меню появляются глючные записи на 4 строке
После проб и ошибок заставил меню появиться на всех четырёх строчках. осталось заставить курсор бегать по 3 и 4 строке
Полное решение не скажу, но думается мне, что вам должно помочь следующее:
в методе "draw_values" при условии draw_all == false надо написать как то так:
Это должно помочь с движением курсора ниже второй строчки.
А вообще, было бы неплохо вам чутка порефакторить код :)
Сейчас попробую ваш вариант. Серьёзно изменить код знаний не хватает. Сейчас всё работает - боюсь влезу глубоко и потом управление накроется.
Сейчас попробую ваш вариант. Серьёзно изменить код знаний не хватает. Сейчас всё работает - боюсь влезу глубоко и потом управление накроется.
Можно начать с простого, например разбить большие методы на более маленькие, дав им при этом осмысленные имена. Так же можно сгруппировать и разнести методы по разным исходным файлам, например: методы для работы с меню в Menu.cpp(.h), методы для работы с кнопками в Keyboard.cpp(.h) и т.д. Это сильно поможет в поддержке кода.
Курсор пошёл на 3 и 4 строчки, но не удаляется с предыдущих. Попробовал поиграться в строчках
Вот что получается. При замене cur_pos на (cur_pos + 2) курсор работает только на двух строках, а потом поднимается меню.
При (cur_pos + 3 ) курсор вообще на месте, а поднимается меню.
В какой ситуации не удаляется? При движении вверх или вниз?
Меню из шести строк. Сначала на дисплее 4 строки. Курсор при нажатии кнопки опускается вниз и остаётся на каждой строке. При переходе на 5 строку меню на дисплее выведено две строки (5 и 6). Курсор на первой и последней (4) строке дисплея. При нажатии кнопки курсор бегает по дисплею произвольно и не в начале строк. Всё это при движени вниз. Движение курсора вверх изначально было нормально.
Эм... странно, вот тот кусочек кода, что я скинул как раз и должен удалять старый курсор при движении вниз. Перепроверьте, что пробел выводится именно в положении (0, cur_pos - 1).
Нашёл у себя ошибку. Теперь курсор бегает вниз нормально, но при переходе на 5 и 6 строки меню глюки как писал выше.
Для дисплея 16х2 написано
А как для дисплея 20х4 ?
логично предположить, что 21: 20 под отображаемые символы и 1 под символ перевода строки '\n' (или скорее - под символ конца строки - '\0')
Спасибо
Вечер добрый.
Подскажите. Есть LCD 20*4 совершенно левая, но рабочая, проверял на параллельном порту ПК.
Можно подключать панельки сторонние, а не те что на сайте производителя?
ВОт еще нашел LiquidCrystalRus.h
НУ если кому интересно.
Качать тут https://github.com/RoboCraft/LiquidCrystalRus/zipball/master
Можно подключать панельки сторонние, а не те что на сайте производителя?
какие панели имеются ввиду?
Сторонних производителей. К примеру 20*4 размером 150мм х 60мм
Незнаю как описать, у меня 20*4 с 3-мя чипами с зади.
Занимался модингом лицевых панелей ПК, ранее. Вот осталось.
Сторонних производителей. К примеру 20*4 размером 150мм х 60мм
Незнаю как описать, у меня 20*4 с 3-мя чипами с зади.
Занимался модингом лицевых панелей ПК, ранее. Вот осталось.
если у вас голый индикатор, то никакой панели для подключения не нужно - проводами подключайте.
Спасибо.
Доброго времени суток господа!
Имел не осторожность раздербанить устройство и извлечь из него дисплей 20х4 BT42008 LED.
Решил его подключить к UNO по стандартной схеме для начинающих и... ничего не получилось. Не кажет!!!
Подключил обратно в старое устройство все работает.
Что может быть не так? Подскажите посоветуйте!!!
Ну, давай, по порядку:
1. Подали питание - (в двух местах) - есть "контрольная" строка? загораются "квадратики"?
2. Параллельную шину как используешь - 4 или 8 бит? (при подключении должна пропасть контрастность на "контрольной строке")
--------------------------------------
Подключал разные панельки и все без проблем. ПОНЯЛ только одно! какие библиотеки юзаем.
Подключался по вот этому примеру.
http://wiki.amperka.ru/схемы-подключения:подключение-текстового-экрана
нашел даташит на экран все один в один как в примере.
по первому пункту контрольной строки не было
по второму 4 бит
А в листинге, в инициализации, 20х4 ставишь?
Воевал с "бубном" при подключении графических дисплеев, но вроде побеждал всегда.
А тут то, два провода
КРУТИ КОНТРАСТНОСТЬ. посмотрел таташид - стандартный контроллер
http://robocraft.ru/blog/arduino/503.html или
http://audio.probudget.ru/arduino/arduino-i-lcd-ekran
Вот так подключи. Контакты 1,2 и 15,16 - питание!!!!!!!!!!!!!!!
И учти, во многих статьях есть специальные опечатки! Что бы сами думали.
да меняю с 16x2 на 20х4
пробывал ни хухе(
(блин надо руки пересаживать:))
Бесполезно не могу запустить(
что еще можно подумать?
Для начала , подключи 1,2 и 15,16
Должна загореться строка "кубиками"
Покажи ФОТО с обеих сторон
Точно такая же ситуация, не могу победить дисплей BONO MC2402. Подключен по даташиту (пробовал и 4 и 8 бит). Ни с одной библиотекой не работает, при этом кубики в верхней строке есть и контрастность регулируется. То ли команды инициализации другие, то ли что-то не то с распиновкой выводов :(
фото дисплея?
потыкал мультиметром и определил, что первый выход 0V, второй +5V, а с третьим загвоздка при замере между 1 и 3 напряжение около -6,5V между 2 и 3 - 12V вот как то так)))
И как это сделать мемогу догнать помогите!!! HELP ME!!!
ВОТ тут скачать можно
Ну, начну с самого начала.
Как и писал. подкидываем питание и смотрим, должна показать высокий контраст одна из строк (обычно первая). В принципе убить чипы, путем не правильного подключения нельзя, но статикой убиваются мгновенно, сам пару спалил, пока понял, что капут дисплеям.
После питания, подключаем данные. Заливаем тест сетча.
НО. я уде давно использую шину I2C . Проводов меньше и дискретчики лишними не бывают.
Вот тут покупаю, если быстро надо и дешево, или по ссылке выше, но долго.
результат.
А вот и полный пример, с промежуточными результатами.
Мозг кипит, а каши нету!
По третьему пункту не могу понять хоть убей(
Может кто разъяснит?
А какой результат по такому подключению?
И давай на почту, а тут результат работы выставишь!
А то модераторы забанят, за флуд на сайте.
korzhavin@gmail.com
Имел не осторожность раздербанить устройство и извлечь из него дисплей 20х4 BT42008 LED.
Что за девайс разобрал??
Здравствуйте друзья! Заказал на али дисплей 20х4 Noname. Попытки подключить не увенчались успехом. Подскажите пожалуйста, при подаче питания должно что либо высветиться на дисплее? Он у меня молчит...
Здравствуйте друзья! Заказал на али дисплей 20х4 Noname. Попытки подключить не увенчались успехом. Подскажите пожалуйста, при подаче питания должно что либо высветиться на дисплее? Он у меня молчит...
Там подстроечным резистором 10k (он бывает сразу на дисплее) нужно контраст выставлять.
Спасибо дружище огромнейшее! Схема очень помогла. А в заблуждение меня ввел старый LCD, который при подаче на 1 и 2 ногу питания загорался, и так я испытал 2 абсолютно разных дисплея, подозреваю что они на HD44780, а подключаемые мной были с S6A0069 от Самсунга. Теперь буду знать. Еще раз благодарю за помощь!