Подключение LCD дисплея к Arduino и ESP8266
Обзор дисплея, техническая информация, способы подключения к отладочным платам семейства Arduino и ESP, а также пример использования.
Подключение LCD дисплея к Arduino и ESP8266
29.02.2024 в 10:54   2524 0
Версия для печати

Подключение LCD дисплея к Arduino и ESP8266

logo

В данной статье мы рассмотрим все способы подключения жидкокристаллического дисплея LCD1602 и LCD2004 к Arduino и ESP8266

Общие сведения

Символьный дисплей LCD1602— жидкокристаллический дисплей (Liquid Crystal Display) экран которого способен отображать одновременно до 32 символов (16 столбцов, 02 строки). Подключение к  Arduino осуществляется по синхронному 8-битному параллельному интерфейсу.

Характеристики

  • Тип выводимой информации: символьный.
  • Язык в ПЗУ дисплея: латиница, японский.
  • Возможность загрузки собственных символов: есть.
  • Формат выводимой информации: 16×02 символов;
  • Тип дисплея: LCD.
  • Технология дисплея: STN.
  • Угол обзора: 180°.
  • Тип подсветки: LED.
  • Контроллер: HD44780.
  • Интерфейс: синхронный, 8-битный, параллельный.
  • Напряжение питания 5 В.
  • Рабочая температура: -20 ... +70 °С.
  • Температура хранения -30 ... +80 °С.
  • Габариты: 80x36 мм.

Схемы подключения

на схеме ниже представлен пример подключения LCD дисплея к Arduino UNO по параллельному интерфейсу

aurduino

А также к NodeMCU

nodemcu

Подключение дисплея LCD1602 по параллельному интерфейсу немного сложнее чем через конвертер по шине I2C, а также требуется дополнительный элемент - потенциометр для регулировки контрастности.

Шина данных дисплея состоит из 8 линий (D0-D7), но если подключить только старшие 4 линии (D4-D7), как это показано на рисунке, это не снижает скорость работы дисплея.  Вы можете подключать выводы D0-D7, E и RS дисплея, к любым выводам микроконтроллера, указав их в скетче при объявлении объекта библиотеки.

Ниже представлена табличка с названиями пинов Arduino, необходимых для подключения по параллельному интерфейсу

№: Дисплей: Arduino: Назначение:
16 K (LED-) GND Катод (минус) LED (светодиодной) подсветки.
15 A (LED+) 5V Анод (плюс) LED (светодиодной) подсветки.
14...7 D7...D0 (DB7...DB0) Любые Шина данных (Data Bus) состоящая из 8 линий. В приведённой схеме используются только старшие 4 линии, т.к. это не влияет на скорость работы дисплея.
6 E Любой Сигнал разрешения (Enable).
5 RW GND Выбор направления (Read / Write) передачи данных: «1» - чтение из дисплея / «0» - запись в дисплей. Вывод подключен к GND, т.к. данные только записываются в дисплей.
4 RS Любой Выбор регистра (Register Selection) получателя информации: «1» - регистр данных / «0» - регистр инструкций.
3 V0 (VEE)   Установка контрастности дисплея: 0 ... +5 В постоянного тока.
2 VDD (VCC) 5V Питание логики дисплея: +5 В постоянного тока.
1 VSS (GND) GND Общий вывод питания (земля).

LCD1602_I2C

Если к выводам дисплея подключить конвертер, то можно преобразовать его синхронный 8-битный параллельный интерфейс в шину I2C (превратив дисплей из LCD1602 в LCD1602_I2C для облегчения подключения дисплея к микроконтроллеру, т.к. шина I2C использует всего 2 вывода для передачи данных и 2 вывода питания

Таким образом для Arduino Uno подключение будет выглядеть так

uno i2c

Для Arduino Nano таким образом

nanoi2c

И, наконец, для Wemos D1 Mini

wemosi2c

Подключение в Arduino IDE

Для работы дисплея используется встроенная в среду Arduino IDE библиотека LiquidCrystal.h. Если вы подключаете дисплей по i2c протоколу, то лучше используйте библиотеку LiquidCrystal_I2C.h.

Основные функции библиотеки

  • home() и clear() – первая функция позволяет вернуть курсор в начало экрана, вторая тоже, но при этом удаляет все, что было на мониторе до этого.
  • write(ch) – позволяет вывести одиночный символ ch на экран.
  • cursor() и noCursor() – показывает/скрывает курсор на экране.
  • blink() и noBlink() – курсор мигает/не мигает (если до этого было включено его отображение).
  • display() и noDisplay() – позволяет подключить/отключить дисплей.
  • scrollDisplayLeft() и scrollDisplayRight() – прокручивает экран на один знак влево/вправо.
  • autoscroll() и noAutoscroll() – позволяет включить/выключить режим автопрокручивания. В этом режиме каждый новый символ записывается в одном и том же месте, вытесняя ранее написанное на экране.
  • leftToRight() и rightToLeft() – Установка направление выводимого текста – слева направо или справа налево.
  • createChar(ch, bitmap) – создает символ с кодом ch (0 – 7), используя массив битовых масок bitmap для создания черных и белых точек.

Проблемы подключения I2C дисплеев

Если после загрузки скетча у вас не появилось никакой надписи на дисплее, попробуйте выполнить следующие действия

Во-первых, можно увеличить или уменьшить контрастность монитора. Часто символы просто не видны из-за режима контрастности и подсветки.

Если это не помогло, то проверьте правильность подключения контактов, подключено ли питание подсветки. Если вы использовали отдельный i2c переходник, то проверьте еще раз качество пайки контактов.

Другой часто встречающейся причиной отсутствия текста на экране может стать неправильный i2c адрес. Попробуйте сперва поменять в скетче адрес устройства с 0x27 0x20 или на 0x3F. У разных производителей могут быть зашиты разные адреса по умолчанию. Если и это не помогло, можете запустить скетч i2c сканера, который просматривает все подключенные устройства и определяет их адрес методом перебора. Сам скетч можно скачать по ссылке

Материал также доступен на моем канале: Яндекс Дзен и в группе ВК
Категория: Обзоры модулей | Добавил: :, (28.11.2022)
Просмотров: 2524 | Теги: nodemcu, ESP8266, Arduino, Wemos D1 mini, LCD1602 | Рейтинг: 0.0/0
Поделиться:
Всего комментариев: 0
avatar