Подключение 1602 i2c к ардуино. LCD I2C модуль подключение к Arduino

Содержание

ЖК-дисплей LCD 1602: подключение к Arduino через I2C-модуль

Contents

В это статье мы рассмотрим способы подключения жидкокристаллического дисплея LCD 1602 (чип HD44780) к Arduino. Вообще говоря, LCD 0802 подключается аналогично.

Дисплей LCD 1602 наиболее ходовой из ЖК-дисплеев для ардуины, поскольку прост в подключении и программировании, и стоит недорого. Дисплей позволяет выводить на экран 2 строки по 16 символов в каждой, чего в принципе достаточно для простых приложений типа вывести текущее время и дату.

Сразу скажу, что проще всего этот дисплей будет подключать через IIC/I2C-модуль, что позволяет сильно сократить число проводов до четырех , два из которых — это питание. Стоит этот дополнительный модуль меньше стоимости дисплея. Собственно комплект дисплей + IIC/I2C-модуль, если брать на Али, обойдется меньше, чем в 2$ .


Так что нет смысла покупать их по отдельности.

В общем два основных способа подключения — это напрямую и через I2C-модуль. Давайте сначала рассмотрим способ через I2C-модуль, т.к. он наиболее практический.

Вариант 1. Подключение LCD 1602 к Ардуине через I2C-модуль

Схема подключения показана на рисунке:

т.е. провода соединяются следующим образом:

SCL — последовательная линия тактирования (Serial CLock);

SDA — последовательная линия данных (Serial Data);

Для работы с дисплеем при таком подключении (т.е. через модуль I2C) можно использовать стандартную библиотеку LiquidCrystal_I2C1602V1 — её нужно распаковать в папку arduino/libraries , если её там нет (хотя обычно уже есть).

А вот базовый пример программы для вывода информации на дисплей.

Здесь использовался адрес 0x27 шины I2C. У некоторых модулей этот адрес может быть 0x3F. Это возможно определить по маркировке. Вообще говоря, этот адрес можно менять (с помощью паяльника) — такой нехитрый метод позволят в теории подключить более одного дисплея к одной ардуине.

Вариант 2. Прямое подключение LCD 1602 непосредственно к Ардуине

Схема подключения показана на рисунке

В этом случае используется другая библиотека — LiquidCrystal.

Подключение 1602 i2c к ардуино. LCD I2C модуль подключение к Arduino

Рассмотрим пример подключения и управления символьным дисплеем LCD1602 IIC/I2C с помощью плат Arduino. На сегодняшний день это один из самых распространенных и недорогих дисплеев, на экран которого, можно например, выводить информацию, получаемую от различных датчиков или просто делать вывод каких-то сообщений характеризующих ход выполнения вашей программы. В принципе на экран можно вывести что угодно в пределах вашей фантазии и 32 символов, из которых состоит символьный дисплей LCD1602 IIC/I2C.

Данный экран оснащен дополнительной платой IIC/I2C интерфейса (последовательный интерфейс), позволяющей работать с микроконтроллерами с помощью всего двух проводов (без учета проводов питания). О наличии последовательного интерфейса в данном экране нам говорят символы IIC/I2C в его названии, а сама плата последовательного интерфейса с обратной стороны экрана выглядит следующим образом.

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

Подключим дисплей к плате Arduino Mega 2560.

Все довольно просто. Сначала подключаем питание. Пин GND дисплея соединяем с пином GND платы Ардуино. Пин VCC дисплея соединяем с пином 5V платы Ардуино. После чего подключаем провода управляющие дисплеем. Пин SDA дисплея соединяем с пином 20 SDA платы Arduino Mega 2560. Пин SCL дисплея соединяем с пином 21 SCL платы Arduino Mega 2560. Все пины на IIC/I2C интерфейсе и на плате Arduino Mega 2560 подписаны соответствующим образом, поэтому проблем с подключением на этом этапе не должно возникать.

*Если вы используете плату Arduino UNO, подключайте пин SDA дисплея к пину A4 платы Arduino UNO, а пин SCL дисплея подключайте к пину A5 платы Arduino UNO.

Для работы с дисплеем LCD1602 IIC/I2C необходимо скачать и установить библиотеку LiquidCrystal_I2C. Напишем теперь минимально необходимый скетч для запуска дисплея.

Минимальный скетч который выводит в середине верхней строки символы VoltOM.RU. Все очень просто. Когда вам необходимо будет выводить показания датчиков на дисплей, просто в строке lcd.print(VoltOM.RU); подставляете вместо VoltOM.RU имя переменной, которой будут передаваться показания датчика. Когда вы разберетесь с показаниями каких-либо датчиков, особых вопросов как их вывести на экран дисплея у вас не должно возникнуть. А сейчас давайте немного закрепим тему и добавим несколько строк в наш скетч, чтобы под надписью VoltOM.RU сделать секундомер.

Заливаем скетч и видим как под надписью VoltOM.RU на экране дисплея тикает секундомер.

Вроде все минимально необходимое для начала работы с дисплеем LCD1602 IIC/I2C мы разобрали. Стоит обратить ещё внимание на возможные проблемы, которые могут возникнуть у вас при первом знакомстве с этими дисплеями.

Возможные проблемы при подключении дисплея LCD1602 IIC/I2C:

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

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

3. Обратите внимание на строку LiquidCrystal_I2C lcd(0x3F,16,2); в начале кода. I2C интерфейсы у разных дисплеев могут иметь разные адреса. Возможно, в вашем дисплее будет адрес 0x27, тогда строка будет выглядеть так: LiquidCrystal_I2C lcd(0x27,16,2);, то есть просто меняете 0x3F на 0x27. Если ни один из этих адресов не подошел, необходимо будет запустить сканер I2C интерфейса с помощью следующего скетча.

Код взят с сайта http://blog.jacobean.net/?p=653, разбирать мы его не будем. Наша задача просто залить его и открыть монитор порта. В котором мы должны будем увидеть строки:

Где 0x3F — (может быть другой) адрес вашего интерфейса. Его мы и должны вставлять в наших скетчах в строке LiquidCrystal_I2C lcd(0x3F,16,2);

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

Подключение дисплея LCD 1602 к arduino по i2c / IIC

LCD дисплей – частый гость в проектах ардуино. Но в сложных схемах у нас может возникнуть проблема недостатка портов Arduino из-за необходимости подключить экран, у которого очень очень много контактов. Выходом в этой ситуации может стать I2C /IIC переходник, который подключает практически стандартный для Arduino экран 1602 к платам Uno, Nano или Mega всего лишь при помощи 4 пинов. В этой статье мы посмотрим, как можно подключить LCD экран с интерфейсом I2C, какие можно использовать библиотеки, напишем короткий скетч-пример и разберем типовые ошибки.

ЖК дисплей Arduino LCD 1602

Жидкокристаллический дисплей (Liquid Crystal Display) LCD 1602 является хорошим выбором для вывода строк символов в различных проектах. Он стоит недорого, есть различные модификации с разными цветами подсветки, вы можете легко скачать готовые библиотеки для скетчей Ардуино. Но самым главным недостатком этого экрана является тот факт, что дисплей имеет 16 цифровых выводов, из которых обязательными являются минимум 6. Поэтому использование этого LCD экрана без i2c добавляет серьезные ограничения для плат Arduino Uno или Nano. Если контактов не хватает, то вам придется покупать плату Arduino Mega или же сэкономить контакты, в том числе за счет подключения дисплея через i2c.

Краткое описание пинов LCD 1602

Давайте посмотрим на выводы LCD1602 повнимательней:

Каждый из выводов имеет свое назначение:

  1. Земля GND;
  2. Питание 5 В;
  3. Установка контрастности монитора;
  4. Команда, данные;
  5. Записывание и чтение данных;
  6. Enable;

7-14. Линии данных;

Технические характеристики дисплея:

  • Символьный тип отображения, есть возможность загрузки символов;
  • Светодиодная подсветка;
  • Контроллер HD44780;
  • Напряжение питания 5В;
  • Формат 16х2 символов;
  • Диапазон рабочих температур от -20С до +70С, диапазон температур хранения от -30С до +80 С;
  • Угол обзора 180 градусов.

Схема подключения LCD к плате Ардуино без i2C

Стандартная схема присоединения монитора напрямую к микроконтроллеру Ардуино без I2C выглядит следующим образом.

Из-за большого количества подключаемых контактов может не хватить места для присоединения нужных элементов. Использование I2C уменьшает количество проводов до 4, а занятых пинов до 2.

Где купить LCD экраны и шилды для ардуино

LCD экран 1602 (и вариант 2004) довольно популярен, поэтому вы без проблем сможете найти его как в отечественных интернет-магазинах, так и на зарубежных площадках. Приведем несколько ссылок на наиболее доступные варианты:

Описание протокола I2C

Прежде чем обсуждать подключение дисплея к ардуино через i2c-переходник, давайте вкратце поговорим о самом протоколе i2C.

I2C / IIC(Inter-Integrated Circuit) – это протокол, изначально создававшийся для связи интегральных микросхем внутри электронного устройства. Разработка принадлежит фирме Philips. В основе i2c протокола является использование 8-битной шины, которая нужна для связи блоков в управляющей электронике, и системе адресации, благодаря которой можно общаться по одним и тем же проводам с несколькими устройствами. Мы просто передаем данные то одному, то другому устройству, добавляя к пакетам данных идентификатор нужного элемента.

Самая простая схема I2C может содержать одно ведущее устройство (чаще всего это микроконтроллер Ардуино) и несколько ведомых (например, дисплей LCD). Каждое устройство имеет адрес в диапазоне от 7 до 127. Двух устройств с одинаковым адресом в одной схеме быть не должно.

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

В работе I2C можно выделить несколько преимуществ:

  • Для работы требуется всего 2 линии – SDA (линия данных) и SCL (линия синхронизации).
  • Подключение большого количества ведущих приборов.
  • Уменьшение времени разработки.
  • Для управления всем набором устройств требуется только один микроконтроллер.
  • Возможное число подключаемых микросхем к одной шине ограничивается только предельной емкостью.
  • Высокая степень сохранности данных из-за специального фильтра подавляющего всплески, встроенного в схемы.
  • Простая процедура диагностики возникающих сбоев, быстрая отладка неисправностей.
  • Шина уже интегрирована в саму Arduino, поэтому не нужно разрабатывать дополнительно шинный интерфейс.
  • Существует емкостное ограничение на линии – 400 пФ.
  • Трудное программирование контроллера I2C, если на шине имеется несколько различных устройств.
  • При большом количестве устройств возникает трудности локализации сбоя, если одно из них ошибочно устанавливает состояние низкого уровня.

Модуль i2c для LCD 1602 Arduino

Самый быстрый и удобный способ использования i2c дисплея в ардуино – это покупка готового экрана со встроенной поддержкой протокола. Но таких экранов не очень много истоят они не дешево. А вот разнообразных стандартных экранов выпущено уже огромное количество. Поэтому самым доступным и популярным сегодня вариантом является покупка и использование отдельного I2C модуля – переходника, который выглядит вот так:

С одной стороны модуля мы видим выводы i2c – земля, питание и 2 для передачи данных. С другой переходника видим разъемы внешнего питания. И, естественно, на плате есть множество ножек, с помощью которых модуль припаивается к стандартным выводам экрана.

Для подключения к плате ардуино используются i2c выходы. Если нужно, подключаем внешнее питание для подстветки. С помощью встроенного подстроечного резистора мы можем настроить настраиваемые значения контрастности J

На рынке можно встретить LCD 1602 модули с уже припаянными переходниками, их использование максимально упощено. Если вы купили отдельный переходник, нужно будет предварительно припаять его к модулю.

Подключение ЖК экрана к Ардуино по I2C

Для подключения необходимы сама плата Ардуино, дисплей, макетная плата, соединительные провода и потенциометр.

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

Жидкокристаллический монитор с поддержкой i2c подключается к плате при помощи четырех проводов – два провода для данных, два провода для питания.

  • Вывод GND подключается к GND на плате.
  • Вывод VCC – на 5V.
  • SCL подключается к пину A5.
  • SDA подключается к пину A.

И это все! Никаких паутин проводов, в которых очень легко запутаться. При этом всю сложность реализации i2C протокола мы можем просто доверить библиотекам.

Библиотеки для работы с i2c LCD дисплеем

Для взаимодействие Arduino c LCD 1602 по шине I2C вам потребуются как минимум две библиотеки:

  • Библиотека Wire.h для работы с I2C уже имеется в стандартной программе Arduino IDE.
  • Библиотека LiquidCrystal_I2C.h, которая включает в себя большое разнообразие команд для управления монитором по шине I2C и позволяет сделать скетч проще и короче. Нужно дополнительно установить библиотеку После подключения дисплея нужно дополнительно установить библиотеку LiquidCrystal_I2C.h

После подключения к скетчу всех необходимых библиотек мы создаем объект и можем использовать все его функции. Для тестирования давайте загрузим следующий стандартный скетч из примера.

Описание функций и методов библиотеки LiquidCrystal_I2C:

  • 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 дисплеем

В некоторых случаях при использовании указанной библиотеки с устройствами, оснащенными контроллерами PCF8574 могут возникать ошибки. В этом случае в качестве альтернативы можно предложить библиотеку LiquidCrystal_PCF8574.h. Она расширяет LiquidCrystal_I2C, поэтому проблем с ее использованием быть не должно.

Скачать библиотеку можно на нашем сайте. Библиотека также встроена в последние версии Arduino IDE.

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

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

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

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

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

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

Заключение

В этой статье мы рассмотрели основные вопросы использования LCD экрана в сложных проектах ардуино, когда нам нужно экономить свободные пины на плате. Простой и недорогой переходник i2c позволит подключить LCD экран 1602, занимая всего 2 аналоговых пина. Во многих ситуациях это может быть очень важным. Плата за удобство – необходимость в использовании дополнительного модуля – конвертера и библиотеки. На наш взгляд, совсем не высокая цена за удобство и мы крайне рекомендуем использовать эту возможность в проектах.

Как подключить LCD дисплей с I2C модулем к Arduino

В статье будем подключать к Ардуино жидкокристаллический дисплей 1602 с I2C модулем FC-113, благодаря чему подключение будет осуществляться всего по 2 проводам данных + 2 проводам питания.

Инструкция по подключению ЖК дисплея к Arduino по интерфейсу I 2 C

Нам понадобится:

  • Arduino UNO или иная совместимая плата;
  • ЖК экран 1602 (16 символов, 2 строки);
  • I2C адаптер FC-113 или аналогичный;
  • соединительные провода (рекомендую вот такой набор);
  • макетная плата (breadboard);
  • персональный компьютер со средой разработки Arduino IDE.

1 Описание FC-113 преобразователя последовательного интерфейса в параллельный

  • Модуль FC-113 сделан на базе микросхемы PCF8574T, которая представляет собой 8-битный сдвиговый регистр – «расширитель» входов-выходов для последовательной шины I2C. На рисунке микросхема обозначена DD1.
  • R1 – подстроечный резистор для регулировки контрастности ЖК дисплея.
  • Джампер J1 используется для включения подсветки дисплея.
  • Выводы 1…16 служат для подключения модуля к выводам LCD дисплея.
  • Контактные площадки А1…А3 нужны для изменения адреса I2C устройства. Запаивая соответствующие перемычки, можно менять адрес устройства. В таблице приведено соответствие адресов и перемычек: 0 соответствует разрыву цепи, 1 – установленной перемычке. По умолчанию все 3 перемычки разомкнуты и адрес устройства 0x27.

I2C модуль FC-113 для подключения ЖК экрана

2 Схема подключения ЖК дисплея к Arduinoпо протоколу I2C

Подключение модуля к Arduino осуществляется стандартно для шины I2C: вывод SDA модуля подключается к аналоговому порту A4, вывод SCL – к аналоговому порту A5 Ардуино. Питание модуля осуществляется напряжением +5 В от Arduino. Сам модуль соединяется выводами 1…16 с соответствующими выводами 1…16 на ЖК дисплее.

Схема подключения ЖК дисплея к Arduino по протоколу I2C

3 Библиотека для работы по протоколу I2C

Теперь нужна библиотека для работы с LCD по интерфейсу I2C. Можно воспользоваться, например, вот этой (ссылка в строке Download Sample code and library). Библиотека для работы по протоколу I2C

Скачанный архив LiquidCrystal_I2Cv1-1.rar разархивируем в папку libraries, которая находится в директории Arduino IDE.

Библиотека поддерживает набор стандартных функций для LCD экранов:

4 Скетч для вывода текста на LCD экран по шине I2C

Откроем образец: Файл Образцы LiquidCrystal_I2C CustomChars и немного его переделаем. Выведем сообщение, в конце которого будет находиться мигающий символ. В комментариях к коду прокомментированы все нюансы скетча.

Кстати, символы, записанные командой lcd.createChar();, остаются в памяти дисплея даже после выключения питания, т.к. записываются в ПЗУ дисплея 1602.

5 Создание собственных символов для ЖК дисплея

Немного подробнее рассмотрим вопрос создания собственных символов для ЖК экранов. Каждый символ на экране состоит из 35-ти точек: 5 в ширину и 7 в высоту (+1 резервная строка для подчёркивания). В строке 6 приведённого скетча мы задаём массив из 7-ми чисел: . Преобразуем 16-ричные числа в бинарные: . Эти числа – не что иное, как битовые маски для каждой из 7-ми строк символа, где 0 обозначают светлую точку, а 1 – тёмную. Например, символ сердца, заданный в виде битовой маски, будет выглядеть на экране так, как показано на рисунке.

Создание собственного символа для LCD экрана

6 Управление ЖК экраном по шине I2C

Загрузим скетч в Arduino. На экране появится заданная нами надпись с мигающим курсором в конце.

Управление ЖК экраном с помощью Arduino по шине I2C

7 Что находится «за» шиной I2C

В качестве бонуса рассмотрим временную диаграмму вывода латинских символов A, B и С на ЖК дисплей. Эти символы имеются в ПЗУ дисплея и выводятся на экран просто передачей дисплею их адреса. Диаграмма снята с выводов RS, RW, E, D4, D5, D6 и D7 дисплея, т.е. уже после преобразователя FC-113 «I2C параллельная шина». Можно сказать, что мы погружаемся немного «глубже» в «железо».

Временная диаграмма вывода латинских символов A, B и С на LCD дисплей 1602

И ещё один пример. На этой временной диаграмме показан вывод символа «Сердце» на ЖК дисплей.

Временная диаграмма вывода символа «Сердце» из ПЗУ на ЖК дисплей 1602

Опять, первые два импульса Enable соответствуют инструкции Home() (0000 00102) – возврат каретки на позицию (0; 0), а вторые два – вывод на ЖК дисплей хранящийся в ячейке памяти 310 (0000 00112) символ «Сердце» (инструкция lcd.createChar(3, heart); скетча).

Скачать LCD 1602 datasheet

  • Скачать техническое описание на LCD дисплей 1602.

Поделиться

Похожие материалы (по тегу)

Последнее от .aave.

Другие материалы в этой категории:

6 комментарии

А что делать если у тебя загорелись H░░░░░░░░░░░░░░░
░♥░░░░░░░░░░░░▓░
░ — Ничего
▓ — Недокурсор
█ — Курсор

помогите в проблеме: W7
юзал с версиями софтвера ардуино 1.05; 1.6.13; 1.8.3 и разными версиями библиотек
дисплея по I2C. Возникла проблема: не могу раскопать откуда, при переустановке, софт берет устанавливаемые вручную библиотеки? Чистил и создаваемую папку ардуино в доках и скрытый app, прошелся по системе клинером (после удаления софта). Но устанавливаю любую версию через установщик и снова в списке библиотек стоят ранее установленные. Поведение софта странное, из установленных библиотек берет команды кривой и работает по её правилу, даже примеры других из библиотек дисплея обрабатывает по выбранной кривой. В меню софта почему то отсутствует простое удаление или замена библиотек.
Подскажите, как удалить библиотеки? откуда он их хватает?
Вчера, эти библиотеки прописывались в папке ардуино > Документы. Указывал зип файл библиотеки и она устанавливалась в папку ардуино. Затем появлялась в меню софта. Удалял созданную библиотеку и она исчезала из меню софта. Все красиво. Не пошла > стер > переустановил. Сегодня ничего не могу сделать. При старте софта и переустановке все библиотеки всплывают и + открывается последний создаваемый скетч даже на переустановленном софте любого релиза.

Я стараюсь использовать портабельные версии, которые не устанавливаются и нигде в системе не прописываются. Тогда и проблем таких не возникает. Попробовал с тремя обозначенными версиями — у меня повторить такую ошибку у себя не получилось.
Поэтому могу лишь порекомендовать воспользоваться бесплатным инструментом Process Monitor от Марка Руссиновича. Эта программа показывает, в том числе, все обращения заданной программы к файловой системе компьютера. Так вы сможете проследить, откуда всё же загружаются библиотеки.

Подскажите пожалуйста как изменить пины A4 и A5 на другие,например на A2 и A3 при работе дисплея 1602 через i2C. Это можно сделать в библиотеке или в скетче!?

Дело в том, что A4 и A5 — это выводы, которые аппаратно реализуют интерфейс I2C в Arduino. Если хотите использовать другие выводы, Вы можете написать свою программную реализацию интерфейса I2C или воспользоваться готовой, например, этой: https://github.com/adafruit/Adafruit_Trellis_Library

Большой проект Color and Code версии 19. Определение элементов по цвету, коду, справочники, включая Arduino.

Есть встроенный калькулятор LCD1602 символов, генерация программной строки.

Дисплей LCD 1602 i2C Ардуино подключение

Подключив LCD дисплей к Arduino ► вы сможете визуально отображать данные с датчиков на экране. Рассмотрим основные команды для управления LCD 1602 по I2C.

LCD дисплей Arduino позволяет визуально отображать данные с датчиков. Расскажем, как правильно подключить модуль QAPASS LCD к Arduino по I2C и рассмотрим основные команды инициализации и управления LCD 1602. Также рассмотрим различные функции в языке программирования C++, для вывода текстовой информации на дисплее, который часто требуется использовать в проектах Ардуино.

Как подключить LCD 1602 к Arduino

I2C — последовательная двухпроводная шина для связи интегральных схем внутри электронных приборов, известна, как I²C или IIC (англ. Inter-Integrated Circuit). I²C была разработана фирмой Philips в начале 1980-х годов, как простая 8-битная шина для внутренней связи между схемами в управляющей электронике (например, в компьютерах на материнских платах, в мобильных телефонах и т.д.).

Схема i2c интерфейса для подключения lcd1602

В простой системе I²C может быть несколько ведомых устройств и одно ведущее устройство, которое инициирует передачу данных и синхронизирует сигнал. К линиям SDA (линия данных) и SCL (линия синхронизации) можно подключить несколько ведомых устройств. Часто ведущим устройством является контроллер Ардуино, а ведомыми устройствами: часы реального времени или LCD Display.

Как подключить жк дисплей к Ардуино по I2C

Жидкокристаллический дисплей 1602 с I2C модулем подключается к плате Ардуино всего 4 проводами — 2 провода данных и 2 провода питания. Подключение QAPASS 1602a к Arduino проводится стандартно для шины I2C: вывод SDA подключается к порту A4, вывод SCL – к порту A5. Питание LCD дисплея осуществляется от порта +5V. Смотрите подробнее схему подключения жк монитора 1602 на фото ниже.

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • LCD монитор 1602 i2c;
  • 4 провода «папа-мама».

Подключение модуля LCD 1602 к Arduino UNO через I²C

После подключения LCD монитора к Ардуино через I2C вам потребуется установить библиотеку LiquidCrystal_I2C.h для работы с LCD дисплеем по интерфейсу I2C и библиотека Wire.h (имеется в стандартной программе Arduino IDE). Скачать рабочую библиотеку LiquidCrystal_I2C.h для LCD 1602 с модулем I2C можно на странице Библиотеки для Ардуино на нашем сайте по прямой ссылке с Google Drive.

Скетч для жк дисплея QAPASS 1602 I2C

Пояснения к коду:

  1. перед выводом информации на дисплей, необходимо задать положение курсора командой setCursor(0,1) , где 0 — номер символа в строке, 1 — номер строки;
  2. в отличии от clear() — команда noDisplay() не удаляет надпись, а отключает ее вывод на дисплее и ее можно снова покзать.

Библиотека LiquidCrystal_I2C.h для дисплея

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

Скетч с командами библиотеки LiquidCrystal_I2C.h

Пояснения к коду:

  1. библиотека LiquidCrystal_I2C.h содержит встроенные команды для управления LCD дисплея по шине I²C и позволяет значительно упростить скетч.
  2. читайте также про возможность авто прокрутки строки на дисплее Ардуино.

Заключение: Используя программы Ардуино для lcd 1602a из этой записи и схему подключения lcd 1602 к Ардуино по i2c вы сможете применять данный дисплей в проектах Ардуино с LCD и в различных примерах. Если у вас остались вопросы по использованию монитора 1602 i2c Arduino — оставляйте их в комментариях на этой странице. Возможно, то что вы ищете уже решено и есть в ответах.

Подключение 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 битный порт.

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

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

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

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

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

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

LiquidCrystal_I2C(uint8_t, uint8_t, uint8_t)

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


Источник: chigap.ru