Подключение LCD 1602 к Аrduino

При создании электронных систем автоматики и робототехники на базе проектов Arduino нередко возникает необходимость подключения дисплея для вывода рабочей информации. Для этих целей может быть использован экран LCD 1602. Он приобрел популярность и у профессионалов, и у любителей продуктов «Ардуино».

экран LCD 1602

Основные характеристики lcd 1602

Этот ЖК-дисплей размером 16х2 символа относится к недорогим, простым и при этом востребованным мониторам для вывода строк с различной подсветкой. Работает он на контроллере HD44780 от Hitachi, снабжен 16 выходами и использует интерфейс 8-bit Parallel Interface.

Ниже приведены основные характеристики дисплея LCD 1602:

  • размер — 80×36 мм;
  • светодиодная подсветка;
  • 6 обязательных портов из 16 при стандартном подключении к Arduino;
  • чипы ST7066U и ST7065S;
  • работает при температуре от -20°C до +70°C;
  • источник питания — 5В;
  • угол обзора — 180°C;
  • 2 строки вывода по 16 символов;
  • размер 1 символа — 4,35×2,95 мм;
  • размер точки — 0,5×0,5 мм;
  • в качестве стандартной используется библиотека LiquidCrystal.

Дисплей может использоваться с разными наборами библиотек, которые доступны бесплатно. При отсутствии необходимых символов в памяти контроллера допускается их самостоятельное создание.

Контакты и схема подключения

Каждый выход экрана имеет свое функциональное назначение. Все имеющиеся у модуля LCD 1602 контакты по порядку приведены в списке ниже, в скобках указано название соответствующего порта Arduino, к которому может осуществляться подключение:

  1. VSS, земля (GND);
  2. VDD, питание 5В (5V);
  3. V0, управление контрастностью и напряжением дисплея (GND, через резистор);
  4. RS, регистр (пин 0);
  5. RW, запись и чтение данных (GND);
  6. E, Enable, строб по спаду (пин 1);
  7. DB0 (не подключается);
  8. DB1 (не подключается);
  9. DB2 (не подключается);
  10. DB3 (не подключается);
  11. DB4 (пин 2);
  12. DB5 (пин 3);
  13. DB6 (пин 4);
  14. DB7 (пин 5);
  15. А, плюс подстветки (5V, через резистор);
  16. К, минус подсветки (GND).
Контакты с 7-го до 14-го являются линиями данных (4 младших и 4 старших бита). Для различных модификаций LCD 1602 расположение выходов может быть немного другим.

LCD 1602

Режим самотестирования

Самотестирование дисплея необходимо для того, чтобы проверить его работоспособность еще до подключения к системе. Чтобы запустить этот режим, нужно подать питание на подсветку, а напряжение — на контроллер. Сделать это можно с использованием потенциометра или мультиметра на 10 или 50 кОм, подсоединив следующие контакты:

  • VSS и заземление;
  • VDD и источник питания 5В;
  • V0 и потенциометр;
  • A и источник питания 5В;
  • K и заземление.

После того как схема соединена, вся верхняя строка дисплея должна засветиться сплошными темными прямоугольниками. Если это произошло — LCD 1602 в порядке, если нет — либо не настроена контрастность, либо устройство не работает. Откорректировать контрастность экрана можно с помощью потенциометра, покрутив его ручку.

Подключение дисплея к плате ардуино

Существует несколько способов подключения, но перед тем как попробовать какой-либо из них, нужно подготовить коннекторы. Если они распаяны, нужно запаять все 16 контактов со стороны коротких ног. Длинные ноги будут использоваться для соединения с периферийными аппаратами и картами.

Стандартный способ

При подключении LCD 1602 по стандартной схеме в 4-битном режиме его необходимо установить на макетной плате, а затем в следующей последовательности соединить все контакты:

  • подать питание на плату, подключив пины 5V и GND Arduino к дорожкам «+» и «-» соответственно;
  • подключить экран к питанию, соединив пин VSS c дорожкой «-«, а VDD — c дорожкой «+»;
  • подключить подсветку дисплея, соединив порт K c дорожкой «-«, а порт А — с дорожкой «+»;
  • подключить проект Arduino к компьютеру, после чего LCD 1602 начнет светиться;
  • подключить потенциометр или подстроечный резистор на 10 или 40 кОм, установив его на макетной плате и соединив его крайние порты с «-» и «+», а средний — с выходом V0 дисплея, после чего на мониторе выведется линия закрашенных прямоугольников, как и при самотестировании;
  • соединить RS-выход экрана с контактом 7 Arduino желтого цвета, RW-выход — к одному из портов GND (земля), E-порт — к порту 8 на плате «Ардуино», а выходы 11, 12, 13 и 14 дисплея (DB4 — DB7) — к пинам 2, 3, 4 и 5 платы соответственно, что обеспечит обмен данными.
Если все выполнено верно, LCD 1602 выведет предусмотренные проектом символы в рабочем режиме. Проводить 8-битное подключение нецелесообразно, т.к. при этом лишь увеличится энергопотребление.

подключение arduino

Нестандартный способ

Стандартный способ может вызывать большие трудности, если необходимые пины на плате Arduino используются для других целей. Вместо того, чтобы полностью перестраивать проект, можно инициализировать новые, неиспользуемые порты интерфейса. Для этого в строке «LiquidCrystal lcd (12, 11, 6, 5, 4, 3, 2)» в скетче в скобках нужно заменить имеющиеся числа на номера новых, свободных выходов, соблюдая соответствие назначению позиции.

Если количество контактов на карте «Ардуино» недостаточно для подключения экрана, можно использовать первые 5 аналоговых портов вместо цифровых под номерами 14 — 19 или провести подключение через I2C.

Подключение по протоколу i2c

I2C (или IIC, от англ. Inter-Integrated Circuit) — это двухпроводная 8-битная шина, которая служит для последовательного соединения схем в электронных приборах. Так как при стандартном подключении LCD 1602 к Arduino занятыми оказываются, как минимум, 6 портов, использование этого дисплея без переходника неудобно, особенно с картами «Уно» или «Нано». Протокол I2C позволяет сократить количество используемых пинов до 2 -х и поэтому имеет большое значение для сложных проектов.

При подключении используются выходы SDA (линия данных) и SCL (линия синхронизации) и 4 провода, 2 из которых служат для питания. К этим линиям может быть подсоединено более 2 ведомых устройств, что позволяет включить в систему не только экран, но и часы, термометр или прочие периферийные объекты. Строки скетча при этом остаются неизменными.

При подключении по протоколу IIC рекомендовано использовать специальные библиотеки.

Возможные проблемы с подключением

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

Если настройка контрастности не помогает, а соответствие схемы и наличие питания (в т.ч. питания подсветки) уже проверены, проблема может быть связана с качеством спайки контактов. В этом случае необходимо проверить работу дисплея в режиме самотестирования и при подключении по стандартной 4-битной схеме без переходника.

Иногда при использовании шины i2c ошибка может возникать из-за ее неверного адреса. Адрес можно изменить в скетче. Для чипа PCF8574 подбор проводится от 0x20 до 0x27, а для PCF8574 — от 0x38 до 0x3F. Правильный вариант зависит от производителя.

Версии Arduino выше 1,8 имеют сложности при работе с библиотекой LiquidCrystal_I2C. В случае возникновения ошибок ее можно заменить на LCD_1602_RUS или LiquidCrystal_PCF8574.

Библиотека liquidcrystal.h

По умолчанию при соединении дисплея LCD 1602 с проектами «Ардуино» используется стандартная библиотека LiquidCrystal.h. Она создана специально для ЖК-экранов на базе чипа HD44780 и хорошо справляется с обработкой данных как при 4-битном, так и при 8-битном подключении. Библиотека управляет работой курсора (перемещение, видимость, мигание), выводом информации, очисткой дисплея, порядком вывода (слева направо или справа налево) и смещением символов.

В случае использования переходника I2C рекомендуется применять библиотеки LiquidCrystal_I2C.h и Wire.h совместно. Они могут входить в пакет софта Arduino IDE по умолчанию, а также скачаны дополнительно.

Подключить новые библиотеки можно прямо в интерфейсе «Ардуино», последовательно выбрав в меню следующие пункты:

  • скетч;
  • подключить библиотеку;
  • управлять библиотеками.

После подключения можно запустить пример программного кода из комплекта библиотеки и таким образом проверить правильность работы модуля. Стандартный способ проверки — вывод надписи «Hello, Word».

LiquidCrystal

Как создать собственные символы

Если в наборе LCD 1602 отсутствует нужный для работы проекта символ, его можно создать самостоятельно. Для добавления нового символа нужно сформировать битовую маску размером 5х8 ячеек (в соответствии с количеством точек, которое приходится на 1 символ). Затем в маске необходимо разместить единицы там, где предполагается наличие подсветки, и нули — там, где должно остаться серое закрашивание.

Для экономии времени можно использовать генератор символов, созданный любителями и размещенный в свободный доступ в интернете.

Таким путем в память может быть добавлено до 7 дополнительных самодельных знаков.

Ссылка на основную публикацию