Pin-Up дисплея LCD 1602 к arduino по i2c / IIC

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

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

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

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

Давайте посмотрим на Pin-Up LCD1602 повнимательней:

LCD i2c

Каждый из выводов Pin-Up свое назначение:

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

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

  1. Плюс подсветки;
  2. Минус подсветки.

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

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

Школа Arduino

Pin-Up подключения LCD к плате Ардуино без i2C

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

Схема LCD arduino

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

Где Pin-Up LCD экраны и шилды для ардуино

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

Модуль Pin-Up с синим экраном, совместим с ArduinoПростой дисплей LCD1602 (зеленая подсветка) дешевле 80₸Большой экран Pin-Up с I2C HD44780 для ардуино (синяя и зеленая подсветка)
Дисплей Pin-Up с IIC адаптером и синей подсветкойЕще один вариант Pin-Up со впаянным I2C модулемМодуль Pin-Up Port IIC/I2C/TWI/SPI для экрана 1602, совместим с Ардуино
Pin-Up с RGB-подсветкой! LCD 16×2 + keypad +Buzzer Shield for ArduinoPin-Up для Ардуино с кнопками и экраном LCD1602 LCD 1602LCD дисплей для 3D принтера (Smart Controller for Pin-Up 1.4, Text LCD 20×4 ), модулем кардридера SD и MicroSD-

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

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

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

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

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

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

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

Недостатки:

  • Pin-Up емкостное ограничение на линии - 400 пФ.
  • Трудное программирование контроллера I2C, если на шине Pin-Up несколько различных устройств.
  • При большом Pin-Up устройств возникает трудности локализации сбоя, если одно из них ошибочно устанавливает состояние низкого уровня.

Модуль i2c для LCD Pin-Up Arduino

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

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

LCD i2c дисплей экран и переходник ардуино Переходник i2c дисплей

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

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

Подключение ЖК Pin-Up к Ардуино по I2C

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

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

Схема подключения LCD к ардуино LCD i2c дисплей экран и переходник ардуино

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

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

LCD i2c дисплей и переходник подключение к ардуино

Подклюение LCD к ардуино

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

Библиотеки для Pin-Up с i2c LCD дисплеем

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

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

Pin-Up библиотеку для работы с экраном I2C LiquidCrystal_I2C.

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

#include <Wire.h> #include <LiquidCrystal_I2C.h> // Подключение библиотеки /h> // Pin-Up альтернативной библиотеки LiquidCrystal_I2C lcd(0x27,16,2); // Указываем I2C адрес (наиболее распространенное значение), а также параметры экрана (в случае LCD 1602 - 2 строки по 16 символов в каждой //LiquidCrystal_PCF8574 lcd(0x27); /init(); /backlight(); /setCursor(0,0); /print("Hello"); /setCursor(0,1); /print("ArduinoMaster"); // Набор текста на второй строке } void loop() { }

Описание функций и методов Pin-Up LiquidCrystal_I2C:

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

Альтернативная библиотека для Pin-Up с i2c дисплеем

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

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

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

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

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

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

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

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

Заключение

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

11 КОММЕНТАРИИ

  1. По подключению Pin-Up дисплея по I2C - с указанной библиотекой (LiquidCrystal_I2C.h) в среде Arduino 1.8.5 работает частично - печатает только первые символы в каждой строке. В итоге заработало с библиотекой LiquidCrystal_PCF8574.h (библиотека ставится из среды Arduino)
    #include
    Pin-Up // рабочая библиотека лдя обмена с экраном по I2C
    LiquidCrystal_PCF8574 lcd(0x27);// адрес экрана 0x27
    void setup() {
    lcd.begin(16, 2);// у нас экран 16 столбцов на 2 Pin-Up
    lcd.setBacklight(255); Pin-Up яркость подсветки на максимум
    ул. Достык, 144
    lcd.print(“Hello”);// печатаем нужную строку
    lcd.setCursor(4, Pin-Up переводим курсор в нужную позицию
    lcd.print(“ArduinoMaster”);// печатаем нужную строку
    }
    void loop() {
    // put your Pin-Up code here, to run repeatedly:
    }

  2. Добрый день.

    Спасибо за урок. Очень полезно.
    Я сейчас применяю плату STM32F103C8.
    В ее составе 2 аппаратных IIC (1й - B6, Pin-Up и 2й - B10, B11(выводы)).
    Сейчас я работаю с 1м. Также как у Вас в уроке. Все работает.
    Возникла Pin-Up использовать 2й IIC. Каким образом я могу это сделать?
    Добавление цифр 1 или 2 (как для Serial) не Pin-Up
    Заранее спасибо.

    Антон.

  3. Перепробовали все варианты библиотек для Pin-Up LCD по I2C,
    но на дисплее только подсветка.

    • поддерживаю. Но есть результат. Он начал при адресе 0x26 при старте моргать. что делать? Подскажите Pin-Up

  4. (Перепробовали все варианты Pin-Up для подключения LCD по I2C,
    но на дисплее только подсветка.)

    Покрутите Pin-Up резистор на I2C модуле - переходника, и будет Вам счастье!

  5. Добрый день.

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

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

    Может кому пригодитсяhttps:/su

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here