Подключение LCD1602 к Arduino по I2C (HD44780/PCF8574)

Подключить LCD1602 к Arduino (или любой другой LCD на базе микросхем HD44780) не всегда удобно, потому что используются как минимум 6 цифровых выходов. LCD I2C модули на базе микросхем PCF8574 позволяют подключить символьный дисплей к плате Arduino всего по двум сигнальным проводам (SDA и SCL).

PCF8574 — I2C модуль для LCD на базе HD44780

Микросхема PCF8574/PCF8574T обеспечивает расширение портов ввода/вывода для контроллеров через интерфейс I2C и позволит легко решить проблему нехватки цифровых портов. При использовании модуля как расширитель портов ввода/вывода следует учитывать то, что вывод Р3 имеет инверсный выход с открытым коллектором.

Микросхема может использоваться для управления ЖК дисплеем под управлением контроллера HD44780, в 4-х битном режиме. Для этой цели на плате установлена микросхема PCF8574, которая является преобразователем шины I2C в параллельный 8 битный порт.

Компоненты PCF8574 - I2C модуль для LCD на базе HD44780

Плата модуля разведена таким образом, чтобы ее можно было сразу подключить к ЖКИ. На вход подается питание и линии I2C. На плате сразу установлены подтягивающие резисторы на линиях SCL и SDA, потенциометр для регулировки контрастности и питание самого дисплея. Джампер справа включает/отключает подсветку.

Установка библиотеки LiquidCrystal I2C

Для работы с данным модулем необходимо установить библиотеку LiquidCrystal I2C. Скачиваем, распаковываем и закидываем в папку libraries в папке Arduino. В случае, если на момент добавления библиотеки, Arduino IDE была открытой, перезагружаем среду.

Библиотеку можно установить из самой среды следующим образом:

  1. В Arduino IDE открываем менеджер библиотек: Скетч->Подключить библиотеку->Управлять библиотеками…Подключение LCD1602 к Arduino по I2C (PCF8574) - Управлять библиотеками...
  2. В строке поиска вводим «LiquidCrystal I2C», находим библиотеку Фрэнка де Брабандера (Frank de Brabander), выбираем последнюю версию и кликаем Установить.Подключение LCD1602 к Arduino по I2C (PCF8574) - Установка LiquidCrystal I2C
  3. Библиотека установлена (INSTALLED).Подключение LCD1602 к Arduino по I2C (PCF8574) - LiquidCrystal I2C INSTALLED

Описание методов библиотеки LiquidCrystal I2C

LiquidCrystal_I2C(uint8_t, uint8_t, uint8_t)

Конструктор для создания экземпляра класса, первый параметр это I2C адрес устройства, второй — число символов, третий — число строк.

init()

Инициализация ЖК-дисплея.

backlight()

Включение подсветки дисплея.

setCursor(uint8_t, uint8_t)

Установка позиции курсора.

clear()

Возвращает курсор в начало экрана.

home()

Возвращает курсор в начало экрана и удаляет все, что было на экране до этого.

write(uint8_t)

Позволяет вывести одиночный символ на экран.

cursor()

Показывает курсор на экране.

noCursor()

Скрывает курсор на экране.

blink()

Курсор мигает (если до этого было включено его отображение).

noBlink()

Курсор не мигает (если до этого было включено его отображение).

display()

Позволяет включить дисплей.

noDisplay()

Позволяет отключить дисплей.

scrollDisplayLeft()

Прокручивает экран на один знак влево.

scrollDisplayRight()

Прокручивает экран на один знак вправо.

autoscroll()

Позволяет включить режим автопрокручивания. В этом режиме каждый новый символ записывается в одном и том же месте, вытесняя ранее написанное на экране.

noAutoscroll()

Позволяет выключить режим автопрокручивания. В этом режиме каждый новый символ записывается в одном и том же месте, вытесняя ранее написанное на экране.

leftToRight()

Установка направление выводимого текста — слева направо.

rightToLeft()

Установка направление выводимого текста — справа налево.

createChar(uint8_t, uint8_t[])

Создает символ. Первый параметр — это номер (код) символа от 0 до 7, а второй — массив 8 битовых масок для создания черных и белых точек.

Подключение LCD1602 к Arduino

Модуль оборудован четырех-пиновым разъемом стандарта 2.54мм

  • SCL: последовательная линия тактирования (Serial CLock)
  • SDA: последовательная линия данных (Serial DAta)
  • VCC: «+» питания
  • GND: «-» питания

 

Выводы отвечающие за интерфейс I2C на платах Arduino на базе различных контроллеров разнятся

Arduino Mega Arduino Uno/Nano/Pro Mini LCD I2C модуль Цвет проводов на фото
GND GND GND Черный
5V 5V VCC Красный
20 (SDA) A4 SDA Зелёный
21 (SCL) A5 SCL Жёлтый

Схема подключения LCD1602 к Arduino по I2C

Схема подключения LCD1602 к Arduino по I2C(HD44780 - PCF8574)

Пример скетча

Результат

Подключение LCD1602 к Arduino - Результат
Подключение LCD1602 к Arduino - Результат

Создание собственных символов

С выводом текста разобрались, буквы английского алфавита зашиты в память контроллера. А вот что делать если нужного символа в памяти контроллера нет? Требуемый символ можно сделать вручную. Данный способ частично, ограничение в 7 символов, поможет решить проблему вывода.

Ячейка, в рассматриваемых нами дисплеях, имеет разрешение 5х8 точек. Все, к чему сводится задача создания символа, это написать битовую маску и расставить в ней единички в местах где должны гореть точки и нолики где нет.

Пример скетча

Результат

Подключение LCD1602 к Arduino - Создание собственных символов

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

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

  1. Можно регулировать контрастность индикатора потенциометром. Часто символы просто не видны из-за режима контрастности и подсветки.Подключение LCD1602 к Arduino по I2C (HD44780-PCF8574) - контрастность дисплея
  2. Проверьте правильность подключения контактов, подключено ли питание подсветки. Если вы использовали отдельный I2C переходник, то проверьте еще раз качество пайки контактов.
  3. Проверьте правильность I2C адреса. Попробуйте сперва поменять в скетче адрес устройства с 0x20 до 0x27 для PCF8574 или с 0x38 до 0x3F для PCF8574A. Если и это не помогло, можете запустить скетч I2C сканера, который просматривает все подключенные устройства и определяет их адрес методом перебора. Для изменения адресации необходимо установить джамперы в нужное положение, тем самым притянуть выводы A0, A1, A2 к положительному либо отрицательному потенциалу. На плате положения промаркированы.Подключение LCD1602 к Arduino по I2C (HD44780-PCF8574) - адрес

    Подключение LCD1602 к Arduino по I2C (HD44780-PCF8574) - Выбор адресации

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

Материалы

datasheets PCF8574.pdf
LiquidCrystal_I2C

Купить LCD Adapter PCF8574 на AliExpress

Похожие записи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *