В сегодняшней статье речь пойдёт об LCD дисплеях. Вернее об одном конкретном дисплее - LCD 1602A на базе контроллера HD44780. Почему именно данный экземпляр? Если не вдаваться в подробности: он простой и относительно дешёвый.
При изготовлении различных самоделок, что представлены на МозгоЧинах, использовались подобные/аналогичные дисплеи. Однако подробного пояснения того, как подключать его к плате Arduino и выводить информацию, к сожалению, не было. Постараемся это исправить.
Подобного рода дисплеи бывают двух видов:
- С чёрными буквами и желтой подсветкой;
- С белыми буквами и синей подсветкой.
Что же касается размерности таких дисплеев, она может быть разной, но при этом стоит учесть – управляются они одинаково. Например, в продаже можно встретить дисплеи с размерностями 16x02 и 20x04. Разрешение символов составляет 5x8 точек.
Стоит отметить следующее: кириллицу поддерживают только дисплеи с маркировкой CTK.
Дисплей имеет 16 выводов (пинов) для подключения к плате. Распиновка следующая:
- 1 "GND" (VSS) – «земля» минус питание;
- 2 "Vcc" (VDD) - питание (+5В);
- 3 "VEE" (VO) - управления контрастом;
- 4 "RS" - выбор регистра;
- 5 "R/W" - Чтение/запись ( режим записи при соединении с землей);
- 6 "EN" (E) – синхронизация;
Шина данных:
- 7-10 "DB0-DB3" - Младшие биты 8-битного интерфейса;
- 11-14 "DB4-DB7" - Старшие биты интерфейса;
- 15 "А" - Анод (+5В) питания подсветки;
- 16 "K" - Катод (земля) питания подсветки.
Прежде чем подключать дисплей к плате контроллера нужно произвести тестовый запуск и убедится в работоспособности периферии. Чтобы выполнить это подадим напряжение на контроллер (VSS и VDD), запитаем подсветку (A и K) и настроим контрастность.
Контрастность регулируется 10 кОм потенциометром. На крайние выводы подводим +5V и GND, центральный вывод соединяем с выводом VO.
Включаем питание и начинаем вращать ручку потенциометра подбирая нужный уровень контраста (вся верхняя строка должна заполниться прямоугольниками).
Для того, чтобы вывести информацию на экран дисплея воспользуемся стандартным библиотечным файлом LiquidCrystal.h.
Существует два режима работы дисплея:
- 8-битный режим - используются младшие и старшие биты (BB0- DB7);
- 4-битный режим - используются только старшие биты (BB4- DB7).
Будем использовать 4-битный режим.
Для отображения информации подключаем выводы RS, E, DB4, DB5, DB6, DB7 к выводам платы Ардуино (выводы на плате могут быть любые, критически важно задать в коде программы верную последовательность).
Распиновка выводов дисплея и платы Ардуино:
- 1 – GND
- 2 – +5V
- 4 – 7
- 6 – 6
- 11 – 5
- 12 – 4
- 13 – 3
- 14 – 2
- 15 – +5V
- 16 – GND
Загружаем прошивку на плату Ардуино Уно и смотрим на результат.
Если на дисплее появилась надпись – результат положительный. Если вместо надписи на дисплее отображаются два ряда черных прямоугольников, то наверняка попутали провода при подключении, проверьте всё несколько раз.
Ниже описаны дополнительные функции по работе с дисплеем.
- home() возвращает курсор на начала экрана;
- clear() возвращает курсор на начала экрана и стирает всё, что было на дисплее;
- write(ch) выводит единичный символ ch на дисплей;
- cursor() включает отображение курсора на дисплее (символ подчёркивания);
- noCursor() выключает отображение курсора на дисплее;
- blink() включает мигание курсора, если включено его отображение;
- noBlink() выключить мигание курсора, если включено его отображение;
- display() включает дисплей;
- noDisplay() выключает дисплей;
- scrollDisplayLeft() прокрутка экрана на один символ влево;
- scrollDisplayRight() прокрутка экрана на один символ вправо;
- autoscroll() включает режим автопрокрутки;
- noAutoscroll() выключает режим автопрокрутки;
- leftToRight() выбор направления вывода текста (слева направо);
- rightToLeft() справа налево;
- createChar(ch, bitmap) позволяет создать пользовательский символ с кодом ch (от 0 до 7), используя массив битовых масок bitmap для задания тёмных и светлых точек.
Спасибо за внимание. Продолжение следует.