Подключение LCD 1602 (HD44780) к Arduino
Содержание
LCD дисплеи размерности 1602, на базе контроллера HD44780, являются одними из самых простых, доступных и востребованных дисплеев для разработки различных электронных устройств. Его можно встретить как и в устройствах собранных на коленке, так и в промышленных устройствах, таких, как например, автоматы для приготовления кофе. На базе данного дисплея собраны самые популярные модули и шилды в тематике Arduino такие как LCD I2C модуль и LCD Keypad Shield.
В данной статье мы расскажем как его подключить к Arduino и вывести информацию.
Используемые компоненты (купить в Китае):
• Управляющая плата
Arduino UNO 16U2, либо более дешевая Arduino UNO CH340G,
Arduino Nano CH340G, либо Arduino MEGA 16U2, либо более дешевая Arduino MEGA CH340G,
• Дисплей
LCD 1602 либо LCD2004
• Соединительные провода
Данные дисплеи имеют два исполнения: желтая подсветка с черными буквами либо, что встречается чаще, синюю подсветку с белыми буквами.
Размерность дисплеев на контроллере HD44780 может быть различной, управляться они будут одинаково. Самые распространенные размерности 16×02 (т.е. по 16 символов в двух строках) либо 20×04. Разрешение же самих символов — 5×8 точек.
Большинство дисплеев не имеют поддержку кириллицы, имеют её лишь дисплеи с маркировкой CTK. Но данную проблему можно попытаться частично решить (продолжение в статье).
Выводы дисплея:
На дисплее имеется 16pin разъем для подключения. Выводы промаркированы на тыльной стороне платы.
1 (VSS) — Питание контроллера (-)
2 (VDD) — Питание контроллера (+)
3 (VO) — Вывод управления контрастом
4 (RS) — Выбор регистра
5 (R/W) — Чтение/запись ( режим записи при соединении с землей)
6 (E) — Еnable (строб по спаду)
7-10 (DB0-DB3) — Младшие биты 8-битного интерфейса
11-14 (DB4-DB7) — Старшие биты интерфейса
15 (A) — Анод (+) питания подсветки
16 (K) — Катод (-) питания подсветки
Режим самотестирования:
Перед попытками подключения и вывода информации, было бы неплохо узнать рабочий дисплей или нет. Для этого необходимо подать напряжение на сам контроллер (VSS и VDD), запитать подсветку (A и K), а также настроить контрастность.
Для настройки контрастности следует использовать потенциометр на 10 кОм. Каким он будет по форме — не важно. На крайние ноги подается +5V и GND, центральная ножка соединяется с выводом VO
После подачи питания на схему необходимо добиться правильного контраста, если он будет настроен не верно, то на экране ничего не будет отображаться. Для настройки контраста следует поиграться с потенциометром.
При правильной сборке схемы и правильной настройке контраста, на экране должна заполниться прямоугольниками верхняя строка.
Вывод информации:
Для работы дисплея используется встроенная с среду Arduino IDE библиотека LiquidCrystal.h
Сам же дисплей может работать в двух режимах :
• 8-битный режим — для этого используются и младшие и старшие биты (BB0- DB7)
• 4-битный режим — для этого используются и только младшие биты (BB4- DB7)
Использование 8-битного режима на данном дисплее не целесообразно. Для его работы требуется на 4 ноги больше, а выигрыша в скорости практически нет т.к. частота обновления данного дисплея упирается в предел 10раз в секунду.
Для вывода текста необходимо подключить выводы RS, E, DB4, DB5, DB6, DB7 к выводам контроллера. Их можно подключать к либым пинам Arduino, главное в коде задать правильную последовательность.
Создание собственных символов
С выводом текста разобрались, буквы английского алфавита зашиты в память контроллера внутри дисплея и с ними проблем нет. А вот что делать если нужного символа в памяти контроллера нет?
Не беда, требуемый символ можно сделать вручную (всего до 7ми символов). Ячейка, в рассматриваемых нами дисплеях, имеет разрешение 5х8 точек. Все, к чему сводится задача создания символа, это написать битовую маску и расставить в ней единички в местах где должны гореть точки и нолики где нет.
В ниже приведенном примере нарисуем смайлик.
Бонус
В комментариях участник сообщества скинул ссылку на генератор символов
генератор символов по примеру выше,
сделал потому что не слабо )
http://codepen.io/nardist01/pen/RPPvMg?editors=101
А как же комментарии?
В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.
Источник: