1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Подключение 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.

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

Модуль дисплея LCD 1602 — очень популярен в последнее время ввиду простоты его работы и способа подключения. Используется во множестве проектов где требуется вывод информации на дисплей. О том как подключить и настройка LCD модуля 1602 к Arduino и пойдет речь в этом посте.

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

Стоит он не дорого и не нуждается в какой либо тонкой и сложной настройке. Все что нужно для того чтобы начать с ним работать это подключить его к Arduino по схемам ниже. Подключить библиотеку для работы с ним и написать скрипт.

Читать еще:  Что лучше для игр телефон или планшет. Гайд: что выбрать смартфон или планшет? Видео рассказывает о том как выбрать планшет

Распиновка пинов LCD модуля 1602

Назначение выводов дисплея 1602

Основные технические характеристики дисплея 1602

  • наличие светодиодной подсветки;
  • контроллер HD44780;
  • напряжение питания 5 В;
  • формат размер 16х2 символов;
  • диапазон рабочих температур от -20 С до +70 С;
  • угол обзора 180 градусов.

Схема подключения LCD модуля 1602 к Arduino без I2C

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

Схема подключения LCD модуля 1602 к Arduino при помощи модуля I2C

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

Модуль i2c для работы с LCD 1602

Этот интерфейсный модуль позволяет уменьшить количество используемых выводов контроллера, вместо 8 или 4-битного соединения, требуется только 2 вывода (SDA и SCL).

  • поддержка дисплеев: LCD 16×02 / 20×04;
  • дополнительно: регулировка контрастности;
  • напряжение питания. 5 В;
  • интерфейс: I2C;
  • размеры модуля: 54 мм x 19 мм x 15 мм

Схема модуля i2c для работы с LCD 1602

Внешний вид интерфейсного модуля i2c

Для соединения на модуле расположено три группы контактов:

Первая группа:

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

Вторая группа:

  • VSS: «-» питание
  • VDD: «+» питание
  • VO: Вывод управления контрастом
  • RS: Выбор регистра
  • RW: Чтение/запись ( режим записи при соединении с землей)
  • E: Еnable (строб по спаду)
  • DB0-DB3: биты интерфейса (младшие )
  • DB4-DB7: биты интерфейса (старшие)
  • A: «+» питания подсветки
  • K: «-» питания подсветки

Третья группа: (по умолчанию установлена перемычка)

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

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

  1. Библиотеки Wire.h — стандартная библиотека для работы Arduino c устройствами по протоколу с I2C она уже есть в Arduino IDE;
  2. Библиотека LiquidCrystal.h так же есть в в Arduino IDE используется при прямом подключении Arduino к LCD 1602 (без модуля I2C) ;
  3. Библиотека LiquidCrystal_I2C.h которая предоставляет все необходимые функции для работы с LCD 1602. Скачать вы ее можете в конце статьи.

Примеры скетчев

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

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

Возможные ошибки при подключении модуля I2C

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

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

Подключение дисплея 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.

Читать еще:  Не заряжается браслет mi band. Все о зарядке Xiaomi Mi Band

Краткое описание пинов 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 модули с уже припаянными переходниками, их использование максимально упощено. Если вы купили отдельный переходник, нужно будет предварительно припаять его к модулю.

Читать еще:  Что делать, если Save As (Сохранить как) не нажимается? Почему не могу сохранить файл. Почему не сохраняется музыка в "вк", или как сохранять аудиозаписи из социальных сетей

Подключение ЖК экрана к Ардуино по 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 аналоговых пина. Во многих ситуациях это может быть очень важным. Плата за удобство – необходимость в использовании дополнительного модуля – конвертера и библиотеки. На наш взгляд, совсем не высокая цена за удобство и мы крайне рекомендуем использовать эту возможность в проектах.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector