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

В этой статье рассмотрим подключение простенького LCD дисплея к Arduino, а также выясним, для чего он предназначен и каковы особенности написания кода для работы с ним.
Подключая какие-либо датчики и модули к Arduino или к другим платформам, мы часто используем монитор порта для вывода данных.
Например, если мы подключили датчик температуры из семейства DHT или подключили какой-нибудь ультразвуковой модуль для измерения расстояния до ближайшего объекта, то данные с них (здесь – это температура и влажность воздуха или расстояние в сантиметрах) выводятся именно на экран компьютера.
Но ведь, если вы сделали метеостанцию на Arduino (пусть даже самую простую), вам непременно захочется сделать ее автономной и поместить в каком-нибудь отдельном месте дома или квартиры, чтобы следить за показаниями. В этом случае постоянно держать под рукой компьютер не получится.
На помощь придет обычный дисплей, который позволит нам выводить данные напрямую на экран, и тогда не придется постоянно заходить в монитор порта.
Для реализации проекта из этой статьи нам потребуются следующие компоненты:
- Arduino Uno R3
- LCD 1602 16×2 – символьный I2C дисплей с голубой подсветкой
- Макетная плата на 400 точек
- Набор макетных проводов “папа-папа”
Обзор дисплея LCD 1602
Дисплей представляет собой достаточно небольшой (по меркам дисплеев) модуль, с примерными размерами 8×3 см, закрепленный на небольшой подложке с контактами для подключения.
К его основным достоинствам можно приписать низкую стоимость, четкое отображение, выдержка перепадов температур (от -20 до +70°C), широкий угол обзора, регулируемая контрастность и малые размеры, о чем говорилось ранее.

Данные на дисплее могут отображаться в формате 16×2 символов. Питание осуществляется с помощью напряжения в 5 В. Также на дисплее имеется светодиодная подсветка, что позволяет использовать его в темное время суток.
Подключение дисплея
Дисплей имеет 16 контактов для подключения:
Также для подключения понадобится переменный резистор (потенциометр) на 10 кОм.
Все это подключается так, как на схеме ниже:
| 1 | GND (земля) |
| 2 | +5В питание |
| 3 | VO (установка контрастности) |
| 4 | RS (команды и данные) |
| 5 | RW (чтение и запись) |
| 6 | E (Enable) |
| 7-14 | (DB0…DB7) линия данных |
| 15 | A (плюс подсветки) |
| 16 | K (минус подсветки) |

После успешного подключения и подачи питания на Arduino дисплей загорится. А еще с помощью резистора вы можете менять яркость подсветки.
Как можно заметить, подключение довольно муторное, ибо занимает 9 пинов на плате Ардуино, что значительно снизит возможность платы в вашем проекте (особенно, если в нем присутствуют несколько модулей).
Для удобства подключения принято использовать интерфейс I2C. Благодаря данной шине число пинов, используемых на подключение дисплея, сводится к четырем.
Чаще всего такие дисплеи уже продаются с данной шиной, припаянной с обратной стороны, но вы также можете подключить этот интерфейс к экрану и самостоятельно, если изначально приобрели дисплей без I2C переходника.

Также желательно не снимать перемычку, на которую указывает желтая стрелочка. Она нужна для корректной работы модуля и для подсветки. Также в сам модуль i2c уже встроен резистор для регулировки контрастности и дополнительно подключать переменный резистор уже не нужно.
Подключение в Arduino IDE
Для работы дисплея используется встроенная в среду Arduino IDE библиотека LiquidCrystal.h. Если вы подключаете дисплей по i2c протоколу, то лучше используйте библиотеку LiquidCrystal_I2C.h.
Подключив данный модуль к Arduino, можно проверить его работоспособность, загрузив программный код из примеров, которые уже загружены в среду разработки. Путь расположения указан на картинке ниже:

Программа “HelloWorld” выводит текст в кавычках на дисплей и является самой простой для работы с дисплеем.
Как подключить lcd дисплей к ардуино без i2c
Очень часто в наших проектах с Ардуиной нам необходимо управлять и видеть какиме либо процессы и показания. Так же реализовать визуальное меню управления нашим проектом.
Схема подключения:

Для подсветки нашего LCD 1602 нам нельзя использовать +5В, так как это очень много для светодиода установленого в данном модуле. Будем использовать резистор 1кОм. Для настройки яркости подсветки вы можете подобрать другой наминал подходяший для вас. В следующем уроке мы разберем как менять яркость подсветки без резистора, а с помощью кнопок и PWM.
Нам необходима библиотека LiquidCrystal скачать. Установите данную библиотеку и приступаем к разбору примера.
Код программы:
#include // Устанавливаем номера пинов к которым подключен дисплей LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() < // Устанавливаем количество символов в строке (16) и количство строк (2) lcd.begin(16, 2); // Выводим на дисплей надпись "iarduino.ru" lcd.print("iarduino.ru"); //Устанавливаем курсор на вторую строчку (Первая строка - 0 , вторая - 1) и 8 символ читая с левой стороны lcd.setCursor(8, 1); // Выводим на дисплей надпись "LCD 1602" lcd.print("LCD 1602"); >void loop() < // Устанавливаем курсор на вторую строку и нулевой символ. lcd.setCursor(0, 1); // Выводим на экран количество секунд с момента запуска ардуины lcd.print(millis()/1000); >
Результат:
Видео примера LCD 1602 Arduino
Дисплей 1602 подключение к arduino
Дисплеи очень важные части устройства, если нужно получить обратную связь без использования компьютера. К плате arduino можно подключать как специально разработанные дисплеи, так и схожие по техническим характеристикам.
Дисплеи могут выводит информацию по датчикам или создавать определённый визуальный эффект.
Рассмотрим процесс подключения дисплея 1602. У него шестнадцать выводов. Рассмотрим вариант подключения по четырёх битному параллельному интерфейсу.
Таблица обозначения подключений
Перед тем, как собрать данную схему, вам необходимо припаять провода к выводам дисплея. Для удобства предлагаю использовать провода МГТФ самого малого диаметра. Их преимущества в гибкости и прочности. С них легко снять изоляцию. Также можно использовать акустические провода, но они обладают более «толстой» изоляцией и менее гибкие. Длина провода не более 15 см. для каждого вывода.

Для теста возьмём пример из библиотеки LiquidCrystal.h — «Hello World».

Подадим питание на arduino и загрузим программу.
Ниже представлен видеообзор подключения дисплея.
Лучшие схемы создаются во fritzing.
Текстовый экран 16×2: инструкция, примеры использования и документация
В качестве примера подключим дисплей к управляющей плате Arduino Uno.
Подключение к Arduino
Для упрощения работы с LCD-дисплеем используйте встроенную библиотеку Liquid Crystal. В ней вы найдёте примеры кода с подробными комментариями.
Вывод текста
Для вывода первой программы приветствия, воспользуйтесь кодом вроде этого:
// Библиотека для работы с текстовым дисплеем #include // Задаём имя пинов дисплея constexpr uint8_t PIN_RS = 6; constexpr uint8_t PIN_EN = 7; constexpr uint8_t PIN_DB4 = 8; constexpr uint8_t PIN_DB5 = 9; constexpr uint8_t PIN_DB6 = 10; constexpr uint8_t PIN_DB7 = 11; /* * Создаём объект для работы с текстовым дисплеем * LiquidCrystal lcd(RS, EN, DB4, DB5, DB6, DB7); * Подробности подключения: * http://wiki.amperka.ru/products:display-lcd-text-16x2 */ LiquidCrystal lcd(PIN_RS, PIN_EN, PIN_DB4, PIN_DB5, PIN_DB6, PIN_DB7); void setup() // Устанавливаем размер экрана // Количество столбцов и строк lcd.begin(16, 2); // Устанавливаем курсор в колонку 0 и строку 0 lcd.setCursor(0, 0); // Печатаем первую строку lcd.print("Hello, world!"); // Устанавливаем курсор в колонку 0 и строку 1 lcd.setCursor(0, 1); // Печатаем вторую строку lcd.print("Do It Yourself"); > void loop() >
Вывод текста: кириллица
Существует два способа вывода кириллицы на текстовые дисплеи:
Рассмотрим оба способа более подробно.
Таблица знакогенератора
Дисплейный модуль хранит в памяти две страницы знакогенератора, которые состоят из различных символов и букв.
Для вывода символа на дисплей необходимо передать его номер в шестнадцатеричной системе из таблицы знакогенератора.
Так букве Я соответствует код B1 в шестнадцатеричной системе. Чтобы передать на экран строку «Яndex», необходимо в явном виде с помощью последовательности \x## встроить в строку код символа:
lcd.print("\xB1ndex");
Вы можете смешивать в одной строке обычные символы и явные коды как угодно. Единственный нюанс в том, что после того, как компилятор в строке видит последовательность \x , он считывает за ним все символы, которые могут являться разрядами шестнадцатеричной системы даже если их больше двух. Из-за этого нельзя использовать символы из диапазона 0-9 и A-F следом за двузначным кодом символа, иначе на дисплее отобразится неправильная информация. Чтобы обойти этот момент, можно использовать тот факт, что две записанные рядом строки склеиваются.
Сравните две строки кода для вывода надписи «Яeee»:
lcd.print("\xB1eee"); // ошибка lcd.print("\xB1""eee"); // правильно
Используя полученную информацию выведем на дисплей сообщение «Привет, Амперка!»:
// Библиотека для работы с текстовым дисплеем #include // Задаём имя пинов дисплея constexpr uint8_t PIN_RS = 6; constexpr uint8_t PIN_EN = 7; constexpr uint8_t PIN_DB4 = 8; constexpr uint8_t PIN_DB5 = 9; constexpr uint8_t PIN_DB6 = 10; constexpr uint8_t PIN_DB7 = 11; /* * Создаём объект для работы с текстовым дисплеем * LiquidCrystal lcd(RS, EN, DB4, DB5, DB6, DB7); * Подробности подключения: * http://wiki.amperka.ru/products:display-lcd-text-16x2 */ LiquidCrystal lcd(PIN_RS, PIN_EN, PIN_DB4, PIN_DB5, PIN_DB6, PIN_DB7); void setup() // Устанавливаем размер экрана // Количество столбцов и строк lcd.begin(16, 2); // Устанавливаем курсор в колонку 5 и строку 0 lcd.setCursor(5, 0); // Печатаем первую строку lcd.print("\xA8""p""\xB8\xB3""e\xBF"); // Устанавливаем курсор в колонку 3 и строку 1 lcd.setCursor(3, 1); // Печатаем вторую строку lcd.print("o\xBF A\xBC\xBE""ep\xBA\xB8"); > void loop() >
Переключение страниц знакогенератора
Дисплейный модуль хранит в памяти две страницы знакогенератора. По умолчанию установлена нулевая страница. Для переключения между страницами используйте методы:
// переключение с нулевой страницы на первую command(0x101010); // переключение с первой страницы на нулевую command(0x101000);
Дисплей не может одновременно отображать символы разных страниц.
Рассмотрим пример, в котором одна и та же строка будет отображаться по-разному — в зависимости от выбранной страницы.
// Библиотека для работы с текстовым дисплеем #include // Задаём имя пинов дисплея constexpr uint8_t PIN_RS = 6; constexpr uint8_t PIN_EN = 7; constexpr uint8_t PIN_DB4 = 8; constexpr uint8_t PIN_DB5 = 9; constexpr uint8_t PIN_DB6 = 10; constexpr uint8_t PIN_DB7 = 11; /* * Создаём объект для работы с текстовым дисплеем * LiquidCrystal lcd(RS, EN, DB4, DB5, DB6, DB7); * Подробности подключения: * http://wiki.amperka.ru/products:display-lcd-text-16x2 */ LiquidCrystal lcd(PIN_RS, PIN_EN, PIN_DB4, PIN_DB5, PIN_DB6, PIN_DB7); void setup() // Устанавливаем размер экрана // Количество столбцов и строк lcd.begin(16, 2); // Устанавливаем курсор в колонку 5 и строку 0 lcd.setCursor(5, 0); // Печатаем строку lcd.print("\x9b\x9c\x9d\x9e\x9f"); > void loop() // Устанавливаем нулевую станицу знакогенератора (стоит по умолчанию) lcd.command(0b101000); // Ждём 1 секунду delay(1000); // Устанавливаем первую станицу знакогенератора lcd.command(0b101010); // Ждём 1 секунду delay(1000); >
Полную таблицу символов с кодами можно найти в документации к экрану.
Использование библиотеки LiquidCrystalRus
Совсем не обязательно мучатся со знакогенератором, чтобы вывести русский символ. Для решения проблемы скачайте и установите библиотеку LiquidCrystalRus.
Это копия оригинальной библиотеки LiquidCrystal с добавлением русского языка. Добавленный в библиотеку код трансформирует русские символы UTF8 в правильные коды для текстового экрана.
В качестве примера выведем фразу «Привет от Амперки» на дисплей.
// Библиотека для работы с текстовым дисплеем #include // Задаём имя пинов дисплея constexpr uint8_t PIN_RS = 6; constexpr uint8_t PIN_EN = 7; constexpr uint8_t PIN_DB4 = 8; constexpr uint8_t PIN_DB5 = 9; constexpr uint8_t PIN_DB6 = 10; constexpr uint8_t PIN_DB7 = 11; /* * Создаём объект для работы с текстовым дисплеем * LiquidCrystalRus lcd(RS, EN, DB4, DB5, DB6, DB7); * Подробности подключения: * http://wiki.amperka.ru/products:display-lcd-text-16x2 */ LiquidCrystalRus lcd(PIN_RS, PIN_EN, PIN_DB4, PIN_DB5, PIN_DB6, PIN_DB7); void setup() // Устанавливаем размер экрана // Количество столбцов и строк lcd.begin(16, 2); // Устанавливаем курсор в колонку 5 и строку 0 lcd.setCursor(5, 0); // Печатаем первую строку lcd.print("Привет"); // Устанавливаем курсор в колонку 3 и строку 1 lcd.setCursor(3, 1); // Печатаем вторую строку lcd.print("от Амперки"); > void loop() >
Примеры работы для Espruino
В качестве примера подключим дисплей к управляющей плате Iskra JS.
LCD 1602 I2C дисплей подключение к Arduino
Классические LCD-дисплеи имеют широкое применение в кассовых аппаратах, офисной технике и многих других устройствах. В этой статье мы рассмотрим их характеристики, виды и особенности использования.
Размеры и типы LCD-дисплеев
LCD-дисплеи могут быть разных размеров. Самый популярный вариант – это LCD 1602 (с 16 столбцами и 2 строками). Встречаются также другие размеры: 2004, 0802 и др. Здесь мы сосредоточимся на дисплее 1602.

Цвет фона и букв
Существуют различные комбинации цветов фона и букв на дисплеях. Пример сочетаний:
- Синий фон и белые буквы
- Голубой фон и черные буквы
- Зеленый фон и чёрные буквы
- Оранжевый фон и черные буквы
- Чёрный фон и белые буквы
В данной статье мы будем рассматривать дисплей с темно-синим фоном и белыми буквами.
Светодиодная подсветка
Дисплеи часто имеют отключаемую светодиодную подсветку, что улучшает видимость и комфорт чтения информации с экрана.
Подключение и переходник
Сам по себе классический LCD-дисплей требует для подключения к микроконтроллеру Ардуино минимум 8 цифровых пинов. Однако существует переходник на шину I2C на базе PCF8574, производимый китайскими компаниями. Он значительно упрощает подключение и экономит пины. В данном случае рассматривается дисплей с припаянным переходником.

Настройка контрастности
На переходнике предусмотрен подстроечный резистор настройки контрастности, под крестовую отвёртку. Необходимо вручную подстроить контрастность.

Адресация интерфейса
Переходник может иметь разный адрес для указания в коде: 0х27 или 0x3F. Адрес формируется перемычками обозначенными на плате A0, A1,A2. Это необходимо учитывать при программировании и использовании дисплея.

Код для Ардуино
Скачайте и установите библиотеку LiquidCrystal, выберите пример «demo». Если все подключено без ошибок, то дисплей сразу начнет демонстрировать свои возможности. Для русификации шрифтов дисплея, Вам потребуется библиотека LCD 1602 RUS.
Заключение
Классические LCD-дисплеи являются универсальным и доступным решением для отображения информации на различных устройствах. Учитывая разнообразие цветов и возможность подключения через различные переходники, эти дисплеи остаются по сей день популярными и актуальными на рынке.
Как подключить lcd дисплей к ардуино без i2c

Для работы с символьными графическими дисплеями предлагаем воспользоваться библиотекой LiquidCrystal которая входит в стандартный набор Arduino IDE и предназначена для работы по 8-битному (4-битному) параллельному интерфейсу. Если Ваш дисплей подключается к Arduino по аппаратной шине I2, то Вам нужно установить библиотеку LiquidCrystal_I2C (большинство функций которой повторяют функции первой библиотеки).
Поддерживаемые дисплеи:
| Дисплей | Подключение и инициализация |
|---|---|
| LCD1602 — символьный дисплей (16×02 символов), с параллельным интерфейсом (синий) ![]() |
#include LiquidCrystal lcd( 2 , 3 , 4 , 5 , 6 , 7 [ , 8 , 9 , 10 , 11 ] ); void setup() |
// Пояснение:
LiquidCrystal ОБЪЕКТ ( RS , E , D4 , D5 , D6 , D7 );
void setup()

// Пояснение:
LiquidCrystal ОБЪЕКТ ( RS , E , D4 , D5 , D6 , D7 );
void setup()

#1 Пример
Выводим надпись на дисплей LCD1602 подключённый по шине I2C. Для работы с дисплеем LCD2004 нужно изменить 3 строку на LiquidCrystal_I2C lcd(0x27,20,4);
#2 Пример
Выводим надпись на дисплей LCD1602 подключённый по 4-битной параллельной шине. Для работы с дисплеем LCD2004 нужно изменить 5 строку на lcd.begin(20, 4);
#3 Пример
Выводим надпись «Русский язык» на дисплей LCD1602 подключённый по шине I2C:
#4 Пример
Выводим время прошедшее после старта на дисплей LCD1602 подключённый по шине I2C:
Как подключить lcd дисплей к ардуино без i2c
В данной публикации речь пойдет о подключении жидкокристаллического дисплея LCD2004A без интерфейса I2C. Это обычный жидкокристаллический дисплей с четырьмя строками по 20 символов в каждой, подключается он так же как и двухстрочный аналогичный дисплей, поэтому инструкция будет полезна и для дисплея с двумя строками LCD2002.
Выглядит дисплей вот так:

- 1 Vss — Земля (общий провод)
- 2 Vdd — Питание + 5 В
- 3 Vo — Управление контрастностью дисплея. Вход для подключения среднего вывода делителя напряжения + 5 В. Можно использовать подстроечный резистор сопротивлением 10-20 кОм.
- 4 RS — Выбор регистра: 0 – регистр команд; 1 – регистр данных. Низкий уровень сигнала означает, что на шине данных сформирована команда, высокий уровень – на шине данные.
- 5 R/W — Направление передачи данных: 0 – запись; 1 – чтение. Во многих приложениях функция чтения не используется, поэтому сигнал часто подключается к земле.
- 6 E — Строб операции шины (по отрицательному фронту).
- 7 DB0 — Младшие биты восьми битного режима. При четырех битном интерфейсе не используются.
- 8 DB1 — Младшие биты восьми битного режима. При четырех битном интерфейсе не используются.
- 9 DB2 — Младшие биты восьми битного режима. При четырех битном интерфейсе не используются.
- 10 DB3 — Младшие биты восьми битного режима. При четырех битном интерфейсе не используются.
- 11 DB4 — Старшие биты восьми битного режима или биты данных четырех битного интерфейса.
- 12 DB5 — Старшие биты восьми битного режима или биты данных четырех битного интерфейса.
- 13 DB6 — Старшие биты восьми битного режима или биты данных четырех битного интерфейса.
- 14 DB7 — Старшие биты восьми битного режима или биты данных четырех битного интерфейса.
- 15 A — Анод питания подсветки (+).
- 16 K — Катод питания подсветки (-). Ток должен быть ограничен.
Схема сборки на макетной плате:

Принципиальная схема:

После сборки схемы, нам понадобится скетч, для теста.
Вначале лучше запустить скетч который выведет все символы ASCII на дисплей, это позволит нам понять, есть ли у дисплея русские символы, ниже приведён именно такой скетч.
Дело в том, что многие дисплеи привезённые из Китая, не обладают русским набором символов, и если после заливки и выполнении скетча на устройстве вы видите это:

Это означает, что дисплей не имеет русских символов в прошивке, а если вы видите русские буквы, то вам повезло.
Теперь попробуем другую прошивку, которая отобразит тестовую информацию, при этом в данной прошивке мы создадим свой символ в виде человечка (Правда таких символов можно создать всего 8).
Скетч примера:
Вот что должно получиться после загрузки и выполнения данного скетча:
Liquid Crystal Displays (LCD) with Arduino
This article was revised on 2021/11/18 by Karl Söderby.
The LiquidCrystal library allows you to control LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.

Output of the sketch on a 16×2 LCD
The LCDs have a parallel interface, meaning that the microcontroller has to manipulate several interface pins at once to control the display. The interface consists of the following pins:
- A register select (RS) pin that controls where in the LCD’s memory you’re writing data to. You can select either the data register, which holds what goes on the screen, or an instruction register, which is where the LCD’s controller looks for instructions on what to do next.
- A Read/Write (R/W) pin that selects reading mode or writing mode
- An Enable pin that enables writing to the registers
- 8 data pins (D0 -D7). The states of these pins (high or low) are the bits that you’re writing to a register when you write, or the values you’re reading when you read.
There’s also a display contrast pin (Vo), power supply pins (+5V and GND) and LED Backlight (Bklt+ and BKlt-) pins that you can use to power the LCD, control the display contrast, and turn on and off the LED backlight, respectively.
The process of controlling the display involves putting the data that form the image of what you want to display into the data registers, then putting instructions in the instruction register. The LiquidCrystal Library simplifies this for you so you don’t need to know the low-level instructions.
The Hitachi-compatible LCDs can be controlled in two modes: 4-bit or 8-bit. The 4-bit mode requires seven I/O pins from the Arduino, while the 8-bit mode requires 11 pins. For displaying text on the screen, you can do most everything in 4-bit mode, so example shows how to control a 16×2 LCD in 4-bit mode.
Hardware Required
- Arduino Board
- LCD Screen (compatible with Hitachi HD44780 driver)
- pin headers to solder to the LCD display pins
- 10k ohm potentiometer
- 220 ohm resistor
- hook-up wires
- breadboard
Circuit
Note that this circuit was originally designed for the Arduino UNO. As the Arduino is communicating with the display using SPI, pin 11 & 12 will change depending on what board you are using. For example, on a MKR WiFi 1010, the SPI bus is attached to pin 8 & 11.
Before wiring the LCD screen to your Arduino board we suggest to solder a pin header strip to the 14 (or 16) pin count connector of the LCD screen, as you can see in the image further up.
To wire your LCD screen to your board, connect the following pins:
- LCD RS pin to digital pin 12
- LCD Enable pin to digital pin 11
- LCD D4 pin to digital pin 5
- LCD D5 pin to digital pin 4
- LCD D6 pin to digital pin 3
- LCD D7 pin to digital pin 2
- LCD R/W pin to GND
- LCD VSS pin to GND
- LCD VCC pin to 5V
- LCD LED+ to 5V through a 220 ohm resistor
- LCD LED- to GND
Additionally, wire a 10k potentiometer to +5V and GND, with it’s wiper (output) to LCD screens VO pin (pin3).

The circuit (made using Fritzing).
Schematic

The schematic (made using Fritzing).
Hello World Example
This example sketch prints to the LCD and shows the time in seconds since the Arduino was reset.
Autoscroll Example
This example sketch shows how to use the and methods to move all the text on the display left or right.
- moves all the text one space to the left each time a letter is added
- turns scrolling off
This sketch prints the characters to with autoscroll off, then moves the cursor to the bottom right, turns autoscroll on, and prints them again.
Blink Example
This example sketch shows how to use the and methods to blink a block-style cursor.
Cursor
This example sketch shows how to use the and methods to control an underscore-style cursor.
Display Example
This example sketch shows how to use the and methods to turn on and off the display. The text to be displayed will still be preserved when you use noDisplay() so it’s a quick way to blank the display without losing everything on it.
Scroll Example
This example sketch shows how to use the and methods to reverse the direction the text is flowing. It prints «Hello World!», scrolls it offscreen to the left, then offscreen to the right, then back to home.
Serial to Display Example
This example sketch accepts serial input from a host computer and displays it on the LCD. To use it, upload the sketch, then open the Serial Monitor and type some characters and click Send. The text will appear on your LCD.
Set Cursor Example
This example sketch shows how to use the method to reposition the cursor. To move the cursor, just call with a row and column position. For example, for a 2×16 display:
Here is the full example:
Text Direction Example
This example sketch shows how to use the and methods. These methods control which way text flows from the cursor.
- causes text to flow to the left from the cursor, as if the display is right-justified.
- causes text to flow to the right from the cursor, as if the display is left-justified.
This sketch prints through right to left, then through left to right, then through right to left again.
Custom Character
This example demonstrates how to add custom characters on an LCD display.
Подключение модуля LCD 1602 к Arduino
Модуль дисплея LCD 1602 — очень популярен в последнее время ввиду простоты его работы и способа подключения. Используется во множестве проектов где требуется вывод информации на дисплей. О том как подключить и настройка LCD модуля 1602 к Arduino и пойдет речь в этом посте.
При помощи модуля LCD 1602 можно без труда вывести на кран какую либо информацию — будь это текстовое сообщение, значение температуры, количество оборотов, давление и любые другие параметры.
Стоит он не дорого и не нуждается в какой либо тонкой и сложной настройке. Все что нужно для того чтобы начать с ним работать это подключить его к Arduino по схемам ниже. Подключить библиотеку для работы с ним и написать скрипт.
Распиновка LCD модуля 1602

Назначение выводов дисплея 1602
| Вывод | Обозначение | Пин Arduino Uno |
|---|---|---|
| 1- земля GND; | GND | GND |
| 2-питание 5 В; | VCC | 5V |
| 3-установка контрастности монитора; | VO | GND |
| 4-команда, данные; | RS | 11 |
| 5-записывание и чтение данных; | R/W | GND |
| 6-enable; | E | 12 |
| 7- линии данных; | DB0 | — |
| 8- линии данных; | DB1 | — |
| 9- линии данных; | DB2 | — |
| 10- линии данных; | DB3 | — |
| 11- линии данных; | DB4 | 5 |
| 12- линии данных; | DB5 | 4 |
| 13- линии данных; | DB6 | 3 |
| 14- линии данных; | DB7 | 2 |
| 15- плюс подсветки; | VCC | 5V |
| 16- минус подсветки; | GND | GND |
Основные технические характеристики дисплея 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 потребуются две библиотеки:
- Библиотеки Wire.h — стандартная библиотека для работы Arduino c устройствами по протоколу с I2C она уже есть в Arduino IDE;
- Библиотека LiquidCrystal.h так же есть в в Arduino IDE используется при прямом подключении Arduino к LCD 1602 (без модуля I2C) ;
- Библиотека 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 адрес, для устранения неисправности попробуйте выполнить следующие шаги:
Похожие публикации:
- Как покрасить руль жидкой кожей своими руками
- Как понять что мотор перегрелся
- Как проверить уровень масла в коробке шевроле авео т250
- Как расчитать возврат за страхование авто
Как подключить lcd дисплей к ардуино без i2c
Рассмотрим, как подключить модуль дисплея LCD 1602 к плате Arduino и рассмотрим основные команды инициализации и управления жидкокристаллическим дисплеем. Разберем основные функции библиотеки LiquidCrystal_I2C.h для вывода текстовой информации на экран, которые вы можете использовать в своих различных проектах, так как этот модуль позволяет визуально отображать данные от датчиков и сенсоров.
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- экран lcd 1602 arduino
- экран lcd 1602 с i2c модулем
- коннекторы
- скачать библиотеку LiquidCrystal_I2C.h
Текстовый дисплей используется для отображения информации с датчиков, создания меню или подсказок. На экране lcd 1602 отображаются черные символы размером 5×8 пикселей. Встроенная подсветка включается при подаче питания на контакты модуля. Текстовый дисплей без модуля i2c подключается к микроконтроллеру Ардуино через 8 контактов. Пример подключения lcd с i2c модулем показан на изображении ниже.
LCD 1602 i2c Arduino распиновка, характеристики

Характеристики LCD 1602 i2c (datasheet)
- Напряжение питания: 5 В
- Количество строк: 2
- Количество символов в строке: 16
- Общее количество символов: 32
- Диапазон рабочих температур: 0 — +60º C
По умолчанию жк дисплей с модулем I2C имеет адрес «0x27«. Если необходимо подключить к микроконтроллеру более одного дисплея 1602, необходимо изменить адреса устройств. Если вы перевернете дисплей и посмотрите на модуль IIC, вы увидите контакты, обозначенные «A0», «A1» и «A2». Если по умолчанию модуль имеет адрес «0x27» на шине IIC Arduino, то замыкание перемычки «A0» изменит адрес устройства на «0x26«.
Как подключить LCD 1602 к Ардуино по i2c

| LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VCC | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
ЖК дисплей 1602 i2c подключается к плате Ардуино всего 4 проводами — 2 провода для обмена данными и 2 провода питания. Подключение дисплея QAPASS 1602a к Arduino осуществляется стандартным для шины i2c способом: вывод SDA подключается к порту A4 (SDA), вывод SCL — к порту A5 (SCL). Питание дисплея осуществляется от 5 Вольт. Подробная схема подключения дисплея 1602 приведена на изображении выше.
Скетч для дисплея LCD 1602 i2c Arduino
Как подключить два экрана LCD 1602 iic к Ардуино

Перед загрузкой следующей программы сначала соберите схему с двумя ЖК дисплеями 1602a и просканируйте шину i2c Arduino Uno. Это гарантирует, что микроконтроллер «увидит» оба устройства на шине. Также проверьте правильность адресов. После этого вы можете загрузить следующую программу, которая позволит вам управлять сразу двумя жк дисплеями с помощью модулей i2c от микроконтроллера Arduino.
Скетч для двух дисплеев LCD 1602 iic Arduino
Как подключить display LCD 1602 без модуля iic

Жидкокристаллический дисплей имеет два ряда по 16 символов, отсюда и название LCD 1602. Память устройства содержит 192 символа, при этом 8 дополнительных символов могут быть заданы пользователем. Если вы подключите дисплей без модуля IIC, вам потребуется использовать 6 портов общего назначения на плате, не считая портов питания. Соберите схему, как на картинке выше и загрузите в плату следующую программу.
Скетч display LCD 1602 Arduino без модуля iic
Заключение. В простой схеме подключения устройств по протоколу I²C может быть несколько ведомых устройств и одно ведущее устройство, которое инициирует передачу данных и синхронизирует сигнал. Используя примеры программ для платы Ардуино и жк экрана лсд 1602, представленные в этой статье, и схему подключения lcd 1602 к Arduino по i2c, вы сможете использовать этот модуль в своих будущих проектах на Arduino.
Взаимодействие LCD 1602 с Ардуино. Описание, распиновка, подключение
Хотите, чтобы в ваших проектах Arduino отображались пользовательские сообщения или показания датчиков? Тогда для этих целей можно рекомендовать дисплей LCD 1602. Подобные дисплеи чрезвычайно распространены и представляют собой быстрый способ добавить читаемый интерфейс в какой-либо проект.
Эта статья охватит все, что необходимо знать, чтобы начать работу с LCD 1602. Да и не только с 1602 (16×2), но и любыми другими символьными ЖК-дисплеями (например, 16×4, 16×1, 20×4 и т. д.), основанными на контроллере параллельного интерфейса HD44780 от Hitachi.
В LCD дисплеях используются жидкие кристаллы для создания видимого изображения. Когда к подобному кристаллу прикладывается ток он становится непрозрачным, перекрывая подсветку, которая находится за экраном. В результате эта конкретная область становиться темной по сравнению с другой. Подобным образом на экране отображаются символы.
Обзор LCD 1602
Эти ЖК-дисплеи идеально подходят для отображения только текста/символов, отсюда у них есть и другое название — «символьные ЖК-дисплеи». Дисплей имеет светодиодную подсветку и может отображать 32 символа в кодировке ASCII в двух рядах по 16 символов в каждом ряду.

Если вы посмотрите внимательно, вы можете увидеть маленькие прямоугольники для каждого символа на дисплее и пиксели, которые составляют символ. Каждый из этих прямоугольников представляет собой сетку 5 × 8 пикселей.
Хотя такие дисплеи отображают только текст, они бывают разных размеров и цветов: например, 16×1, 16×4, 20×4, с белым текстом на синем фоне, с черным текстом на зеленом и другие.
Хорошая новость заключается в том, что все эти дисплеи взаимозаменяемые — если вы строите свой проект с одним из них, вы можете просто отключить его и использовать другой (размер/цвет) ЖК-дисплей на свой выбор. Возможно, придется откорректировать код в зависимости от количества строк, но по крайней мере проводка останется той же!
Распиновка 16х02 символов
Перед тем, приступить к сборке и написанию кода, давайте сначала взглянем на распиновку LCD 1602.

- GND— должен быть подключен к земле Arduino.
- VCC — это вывод питание для ЖК-дисплея, к которому мы подключаем 5-вольтовый контакт Arduino.
- Vo (LCD Contrast) — вывод контролирует контрастность и яркость ЖК-дисплея. Используя простой делитель напряжения с потенциометром, мы можем точно отрегулировать контрастность.
- RS (Register Select) — этот вывод позволяет Arduino сообщать ЖК-дисплею, отправляются команды или данные. В основном этот вывод используется для дифференциации команд от данных. Например, когда на выводе RS установлено значение LOW, мы отправляем команды на ЖК-дисплей (например, установить курсор в определенном месте, очистить дисплей, сдвинуть дисплей вправо и т. д.). Когда вывод RS установлено значение HIGH, мы отправляем данные/символы на ЖК-дисплей.
- R/W (Read/Write) — вывод предназначен для контроля того, что необходимо сделать — считать данные или передать их на ЖК-дисплй. Поскольку мы просто используем этот ЖК-дисплей в качестве устройства вывода, то достаточно на этот вывод подать HIGH уровень, тем самым мы перейдем в режим записи.
- EN (Enable)— вывод используется для включения дисплея. Это означает, что когда на этом выводе установлено значение LOW ЖК-дисплей не реагирует на то, что происходит с R/W, RS и линиями шины данных. Когда же на этом выводе HIGH ЖК-дисплей обрабатывает входящие данные.
- D0-D7 (Data Bus) — это выводы, по которым передаются 8-битные данные на дисплей. Например, если мы хотим отобразить символ «A» в верхнем регистре, мы отправляем на LCD дисплей 0100 0001 (в соответствии с таблицей ASCII) .
- AK (Anode & Cathode) используются для управления подсветкой LCD дисплея.
Практика
Теперь мы переходим к интересным вещам. Давайте проверим ЖК-дисплей. Сначала подключим контакты 5В и GND от Arduino Uno к шинам электропитания макетной платы. Затем подключим LCD 1602. Данный LCD имеет две отдельные линии питания:

- Контакт 1 и контакт 2 для питания самого LCD 1602
- Контакт 15 и контакт 16 для подсветки LCD 1602
Подсоедините контакты 1 и 16 LCD на минус питания, а контакты 2 и 15 к + 5В.
Далее необходимо подключить контакт 3, который отвечает за контрастность и яркость дисплея. Для точной настройки контрастности необходимо подключить крайние выводы потенциометра сопротивлением 10 кОм к 5В и GND, а центральный контакт (бегунок) потенциометра к контакту 3 на LCD дисплея.
Регулировка контрастности ЖК-дисплея с помощью потенциометра
Теперь включите Arduino и вы увидите подсветку. Поворачивая ручку потенциометра, вы должны заметить появление первой линии прямоугольников. Если это произойдет, поздравляем! Ваш ЖК-дисплей работает правильно.
Подключение LCD 1602 к Arduino
Прежде чем мы приступим к загрузке скетча и отправке данных на дисплей, давайте подключим LCD 1602 к Arduino.
LCD дисплей имеет много контактов (16 контактов). Но, хорошая новость заключается в том, что не все эти контакты необходимы для нас, чтобы подключиться к Arduino.
Мы знаем, что есть 8 выводов данных, по которым передаются данные на дисплей. Но, ЖК-дисплеи на HD44780 разработаны таким образом, что мы можем общаться с ЖК-дисплеем, используя только 4 вывода данных (4-разрядный режим) вместо 8 (8-разрядный режим). Таким образом мы можем сэкономить 4 вывода Arduino!
Разница между 4-битным и 8-битным режимом
8-битный режим быстрее, чем 4-битный. Это связано с тем, что что в 8-битном режиме мы передаем данные за один раз. Однако в 4-битном режиме мы должны разделить байт на 2 части, сдвинуть один из них на 4 бита вправо и выполнить 2 операции записи.
Итак, 4-битный режим часто используется для экономии выводов микроконтроллера, а 8-битный режим лучше всего использовать, когда требуется высокая скорость в приложении и при этом доступно как минимум 10 выводов ввода/вывода микроконтроллера.
Итак, что мы будем работать с LCD дисплеем, используя 4-битный режим, и, следовательно, нам нужно только 6 контактов: RS, EN, D7, D6, D5 и D4.
Теперь давайте подключим ЖК-дисплей к Arduino. Четыре контакта данных (D4-D7) дисплея подключаем к цифровым контактам Arduino #4, #5, #6, #7. Вывод EN подключим к Arduino вывод #2, а вывод RS к выводу #1.

Подключение 16-символьного ЖК-дисплея к Arduino UNO
Скетч
Следующий тестовый скетч напечатает сообщение «Hello World!». Далее разберем его работу по подробнее.
Объяснение кода:
Скетч начинается с подключения библиотеки LiquidCrystal. Как упоминалось ранее в этом руководстве, в сообществе Arduino есть библиотека LiquidCrystal, которая облегчает использование LCD дисплеев. Вы можете узнать больше о библиотеке LiquidCrystal на официальном сайте Arduino .
Далее мы должны создать объект LiquidCrystal. Этот объект использует 6 параметров и указывает, какие выводы Arduino подключены к выводам RS, EN и выводам данных: d4, d5, d6 и d7.
Теперь, когда мы объявили объект LiquidCrystal, мы можем получить доступ к специальным методам (или функциям), специфичным для ЖК-дисплея.
В функции setup() мы будем использовать две функции: первая функция begin(). В ней указываются размер дисплея, т.е. количества столбцов и строк. Если вы используете 16 × 2 символьный ЖК-дисплей, укажите параметры 16 и 2, если вы используете ЖК-дисплей 20 × 4, укажите параметры 20 и 4.
Вторая функция clear() очищает экран и перемещает курсор в верхний левый угол.
В функции loop() мы используем функцию print(), выводящая сообщение, которое мы видим в первой строке экрана.
После этого мы переводим курсор на вторую строку, вызвав функцию setCursor(). Позиция курсора указывает место, где вам нужно отобразить новый текст на дисплее. Верхний левый угол считается col = 0, row = 0.
Другие полезные функции библиотеки LiquidCrystal
Есть несколько полезных функций, которые вы можете использовать с объектом LiquidCrystal. Немногие из них перечислены ниже:
- Если вы просто хотите расположить курсор в верхнем левом углу дисплея без очистки дисплея, используйте home().
- Существует много приложений, таких как turbo C++ или notepad ++, в которых нажатие клавиши «insert» на клавиатуре меняет курсор. Точно так же вы можете изменить курсор на ЖК-дисплее с помощью blink() или lcd.Cursor().
- Функция blink() отображает мигающий блок размером 5 × 8 пикселей, а lcd.Cursor() подчеркивание (линия) на позиции, в которую будет записан следующий символ.
- Вы можете использовать функцию noblink(), чтобы отключить мигающий курсор на дисплее и lcd.noCursor() чтобы скрыть курсор.
- Вы можете прокрутить содержимое дисплея на один пробел вправо, используя lcd.scrollDisplayRight() или один пробел влево используя lcd.scrollDisplayLeft(). Если вы хотите непрерывно прокручивать текст, вам нужно использовать эти функции внутри цикла for.
Генерация пользовательских символов для LCD
Если вы находите символы на дисплее неподходящими и неинтересными, вы можете создать свои собственные символы (глиф) для своего ЖК-дисплея. Пользовательские символы чрезвычайно полезны в том случае, когда вы хотите отобразить символ, который не является частью стандартного набора символов ASCII.
Как мы уже обсуждали ранее в этом руководстве, символ на дисплее формируется в матрице 5×8 пикселей, поэтому вам нужно определить свой пользовательский символ в этой матрице. Для определения символа необходимо использовать функцию createChar() библиотеки LiquidCrystal.
Для использования createChar() сначала необходимо назначить массив из 8 байт. Каждый байт (учитывается только 5 бит) в массиве определяет одну строку символа в матрице 5×8. В то время как нули и единицы в байте указывают, какие пиксели в строке должны быть включены, а какие-выключены.
Генератор символов LCD
Создание собственного символа до сих пор было непросто! Поэтому было создано небольшое приложение под названием «Генератор пользовательских символов» для LCD.
Вы видите синюю сетку ниже? Вы можете нажать на любой из 5 × 8 пикселей, чтобы установить/очистить этот конкретный пиксель. И когда вы нажимаете на пиксели, код для символа генерируется рядом с сеткой. Этот код может быть непосредственно использован в вашем скетче Arduino.
Единственным ограничением является то, что библиотека LiquidCrystal поддерживает только восемь пользовательских символов.
Следующий скриншот демонстрирует, как вы можете использовать эти пользовательские символы на дисплее.
После включения библиотеки нам нужно инициализировать пользовательский массив из восьми байтов.
В настройках мы должны создать пользовательский символ, используя функцию createChar(). Эта функция принимает два параметра. Первый — это число от 0 до 7, чтобы зарезервировать один из 8 поддерживаемых пользовательских символов. Второй параметр — это имя массива байтов.
Далее в цикле для отображения пользовательского символа мы используем функцию write(), а в качестве параметра мы используем номер символа, который мы зарезервировали.
Подключение LCD дисплея к Ардуино

LCD дисплей Arduino позволяет визуально отображать данные с датчиков. Расскажем, как правильно подключить модуль QAPASS LCD к Arduino по I2C и рассмотрим основные команды инициализации и управления LCD 1602. Также рассмотрим различные функции в языке программирования C++, для вывода текстовой информации на дисплее, который часто требуется использовать в проектах Ардуино.
Как подключить к Arduino LCD без I2C
Текстовый экран 16×2 используется для вывода информации с датчиков, отображения меню или подсказок. На экране выводятся черные символы размером 5×8 пикселей. Встроенная подсветка включается подачей питания на пины модуля. Текстовый дисплей 16×2 без модуля IIC подключается к микроконтроллеру через 16 контактов. Распиновка экрана с примером подключения размещена ниже.
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- LCD монитор 1602 i2c;
- провода «папа-мама».

Схема подключения текстового экрана 16×2 к Ардуино
| LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VCC | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
Жидкокристаллический дисплей имеет 2 ряда по 16 символов, отсюда и его название LCD 1602. В память устройства встроено 192 знака, еще 8 знаков может определить сам пользователь. При подключении дисплея без IIC модуля потребуется использовать 6 портов общего назначения у микроконтроллера Arduino, не считая питания. Соберите схему, как на картинке выше и загрузите следующую программу в плату.
Скетч. Ардуино и LCD 1602 без I2C модуля
Пояснения к коду:
- для данного примера используется стандартная библиотека LiquidCrystal.h для QAPASS, которая не поддерживает кириллицу;
- чтобы упростить схему и не использовать большое количество пинов микроконтроллера, следует использовать дисплей с модулем I2C.
Принцип работы I2C интерфейса Arduino
I2C — последовательная двухпроводная шина для связи интегральных схем внутри электронных приборов, известна, как I²C или IIC (англ. Inter-Integrated Circuit). I²C была разработана фирмой Philips в начале 1980-х годов, как простая 8-битная шина для внутренней связи между схемами в управляющей электронике (например, в компьютерах на материнских платах, в мобильных телефонах и т.д.).

Схема i2c интерфейса для подключения lcd16x2
В простой системе I²C может быть несколько ведомых устройств и одно ведущее устройство, которое инициирует передачу данных и синхронизирует сигнал. К линиям SDA (линия данных) и SCL (линия синхронизации) можно подключить несколько ведомых устройств. Часто ведущим устройством является контроллер Ардуино, а ведомыми устройствами: часы реального времени или LCD Display.
Как подключить LCD 1602 I2C к Arduino
Жидкокристаллический дисплей 1602 с I2C модулем подключается к плате Ардуино всего 4 проводами — 2 провода данных и 2 провода питания. Подключение QAPASS 1602a к Arduino проводится стандартно для шины I2C: вывод SDA подключается к порту A4, вывод SCL – к порту A5. Питание LCD дисплея осуществляется от порта +5V. Смотрите подробнее схему подключения жк монитора 1602 на фото ниже.

Подключение модуля LCD 16×2 к 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
Пояснения к коду:
- перед выводом информации на дисплей, необходимо задать положение курсора командой setCursor(0,1) , где 0 — номер символа в строке, 1 — номер строки;
- в отличии от clear() — команда noDisplay() не удаляет надпись, а отключает ее вывод на дисплее и ее можно снова показать.
Подключение двух дисплеев по I2C
По умолчанию у всех дисплеев 1602 с модулем I2C адрес — «0x27», но можно изменить адрес текстового экрана и узнать его через сканер iic шины. Таким образом, если у вас есть необходимость подключить к одному микроконтроллеру несколько дисплеев 1602, то следует изменить адреса устройств, что бы не было совпадений. Давайте рассмотрим, каким образом изменить IIC адрес жидкокристаллического дисплея.

Текстовый дисплей 16×2 с модулем I2C
Если перевернуть дисплей и посмотреть на IIC модуль (смотри фото выше), то там можно заметить контакты, обозначенные, как «A0», «A1» и «A2». Если по умолчанию LCD имеет адрес «0x27» на шине IIC, то замкнув перемычку «A0», адрес дисплея сменится на «0x26». Таким образом, к одной шине можно подключить несколько дисплеев, не забыв указать их адреса в скетче — смотри следующий пример кода.
Скетч. Подключение нескольких LCD 1602 к шине i2c

Подключение к Ардуино двух дисплеев 16×2 по I2C
Перед загрузкой следующего скетча, сначала соберите схему с двумя дисплеями и просканируйте шину IIC. Это необходимо сделать, чтобы убедится в том, что плата Arduino «видит» оба устройства на шине. А также перепроверить правильность адресов. После этого можно загружать следующий код, который позволит управлять сразу двумя дисплеями с модулями IIC от одного микроконтроллера Arduino Uno.
Пояснения к коду:
- в программе у каждого дисплея имя должно быть уникальным.
Библиотека LiquidCrystal_I2C.h для LCD дисплея
В следующем примере разберем сразу несколько возможностей, которая дает библиотека LiquidCrystal_I2C Arduino (на самом деле мы взяли команды из стандартной библиотеки). Продемонстрируем вывод мигающего курсора, как убрать надпись с экрана на некоторое время без удаления и, как управлять подсветкой дисплея из кода программы. Для этого загрузите в Ардуино следующий код программы.
Скетч. Описание библиотеки LiquidCrystal_I2C.h
Пояснения к коду:
- библиотека LiquidCrystal_I2C.h содержит встроенные команды для управления LCD дисплея по шине I²C и позволяет значительно упростить скетч.
- читайте также про возможность авто прокрутки строки на дисплее Ардуино.
Заключение: Используя программы Ардуино для lcd 1602a из этой записи и схему подключения lcd 1602 к Ардуино по i2c вы сможете применять данный дисплей в проектах Ардуино с LCD и в различных примерах. Если у вас остались вопросы по использованию монитора 1602 i2c Arduino — оставляйте их в комментариях на этой странице. Возможно, то что вы ищете уже решено и есть в ответах.
Подключение модуля LCD 1602 к Arduino
Модуль дисплея LCD 1602 — очень популярен в последнее время ввиду простоты его работы и способа подключения. Используется во множестве проектов где требуется вывод информации на дисплей. О том как подключить и настройка LCD модуля 1602 к Arduino и пойдет речь в этом посте.
При помощи модуля LCD 1602 можно без труда вывести на кран какую либо информацию — будь это текстовое сообщение, значение температуры, количество оборотов, давление и любые другие параметры.
Стоит он не дорого и не нуждается в какой либо тонкой и сложной настройке. Все что нужно для того чтобы начать с ним работать это подключить его к Arduino по схемам ниже. Подключить библиотеку для работы с ним и написать скрипт.
Распиновка LCD модуля 1602

Назначение выводов дисплея 1602
| Вывод | Обозначение | Пин Arduino Uno |
|---|---|---|
| 1- земля GND; | GND | GND |
| 2-питание 5 В; | VCC | 5V |
| 3-установка контрастности монитора; | VO | GND |
| 4-команда, данные; | RS | 11 |
| 5-записывание и чтение данных; | R/W | GND |
| 6-enable; | E | 12 |
| 7- линии данных; | DB0 | — |
| 8- линии данных; | DB1 | — |
| 9- линии данных; | DB2 | — |
| 10- линии данных; | DB3 | — |
| 11- линии данных; | DB4 | 5 |
| 12- линии данных; | DB5 | 4 |
| 13- линии данных; | DB6 | 3 |
| 14- линии данных; | DB7 | 2 |
| 15- плюс подсветки; | VCC | 5V |
| 16- минус подсветки; | GND | GND |
Основные технические характеристики дисплея 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 потребуются две библиотеки:
- Библиотеки Wire.h — стандартная библиотека для работы Arduino c устройствами по протоколу с I2C она уже есть в Arduino IDE;
- Библиотека LiquidCrystal.h так же есть в в Arduino IDE используется при прямом подключении Arduino к LCD 1602 (без модуля I2C) ;
- Библиотека 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 адрес, для устранения неисправности попробуйте выполнить следующие шаги:
Похожие публикации:
- Как поменять термопасту на компьютере
- Как рассчитать корпус для колонки
- Как сетевой фильтр защищает от скачка напряжения
- Какая постоянное напряжение убивает человека
