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

от admin

Дисплей 1602 подключение к arduino

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

Дисплеи под ардуино

Дисплеи могут выводит информацию по датчикам или создавать определённый визуальный эффект.

Рассмотрим процесс подключения дисплея 1602. У него шестнадцать выводов. Рассмотрим вариант подключения по четырёх битному параллельному интерфейсу.

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

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 к Ардуино

Как подключить два экрана LCD 1602 к Ардуино

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

Скетч для двух дисплеев LCD 1602 iic Arduino

Как подключить display LCD 1602 без модуля iic

Как подключить display LCD 1602 без модуля iic

Жидкокристаллический дисплей имеет два ряда по 16 символов, отсюда и название LCD 1602. Память устройства содержит 192 символа, при этом 8 дополнительных символов могут быть заданы пользователем. Если вы подключите дисплей без модуля IIC, вам потребуется использовать 6 портов общего назначения на плате, не считая портов питания. Соберите схему, как на картинке выше и загрузите в плату следующую программу.

Скетч display LCD 1602 Arduino без модуля iic

Заключение. В простой схеме подключения устройств по протоколу I²C может быть несколько ведомых устройств и одно ведущее устройство, которое инициирует передачу данных и синхронизирует сигнал. Используя примеры программ для платы Ардуино и жк экрана лсд 1602, представленные в этой статье, и схему подключения lcd 1602 к Arduino по i2c, вы сможете использовать этот модуль в своих будущих проектах на Arduino.

Как подключить экран к Ардуино?

Как подключить и использовать экран (жидкокристаллический дисплей) с Arduino. (Её можно скачать с официального сайта: www.arduino.cc).Такие ЖК-дисплеи очень популярны и широко используются во многих проектах электроники, потому что они отлично подходят для отображения простой информации данных датчиков, и при этом очень доступны по цене.

Что такое жидкокристаллический символьный дисплей?

Символьные ЖК-мониторы — это уникальный тип дисплея, который может выводить только отдельные символы ASCII с фиксированным размером. Используя эти отдельные элементы можно формировать текст.

Если внимательно посмотреть на дисплей в глаза попадаются небольшие прямоугольные области, состоящие из сетки 5×8 пикселей. Каждый пиксель может светиться отдельно и таким образом генерировать символы в пределах каждой сетки.

Количество прямоугольных областей определяет размер ЖК-дисплея. Самый популярный — это монитор 16×2, который имеет два ряда с 16 прямоугольными областями или символами. Конечно, существуют и другие размеры: 16×1, 16×4, 20×4 и так далее, но все они работают по одному и тому же принципу. Кроме того, могут иметь разный цвет фона и текста.

Распиновка ЖК-дисплея 16×2

Он имеет 16 выводов, первый слева направо — это вывод Ground. Второй VCC, к которому подключается 5 вольт на плате Arduino. Следующий Vo, к которому подключается потенциометр для управления контрастностью дисплея.

patillaje lcd 1602 2

Далее, вывод RS или выбора регистра используется для выбора того, чтобы посылать команды или данные на ЖК-дисплей. Например, если вывод RS установлен в низкое состояние или ноль вольт, то посылается на ЖКИ команды: установить курсор в определенное место, очистить дисплей, выключить и так далее. А когда вывод RS установлен в состояние High или 5 вольт, посылается данные или спецсимволы на монитор.

Далее идет вывод R/W, который выбирает режим чтения или записи на ЖКИ. Здесь очевиден режим записи, который используется для записи или отправки команд и данных. Режим чтения используется самим монитором при выполнении программы.

Далее следует пин E, который разрешает запись в регистры или следующие 8 пинов данных от D0 до D7. Через эти контакты отправляется 8 бит информации при записи в регистры или например, чтоб увидеть на дисплее последнюю заглавную букву A, отправляется в регистры 0100 0001 в соответствии с таблицей ASCII. Последние два контакта A и K или анод и катод, предназначены для светодиодной подсветки.

В конце концов, не нужно особо беспокоиться о том, как работает ЖК-дисплей, поскольку библиотека Liquid Crystal Library позаботится практически обо всем. На официальном сайте Arduino можно найти и посмотреть функции библиотеки, которые позволяют легко пользоваться библиотекой в 4-х или 8-ми битном режиме.

Как Нужно подключить экран 16×2 к плате.

Использовать только 6 цифровых входных контактов платы Arduino. Регистры экрана с D4 по D7 будут подключены к цифровым контактам с 4 по 7. Контакт Enable будет подключен к номер 2, а RS — к контакту номер 1. R/W будет подключен к земле, а контакт Vo будет подключен к среднему потенциометра.

Регулировка контрастности монитора.

Можно регулировать контрастность, изменяя напряжение на выводе Vo. Использовать потенциометр, таким образом легко настроить контрастность, регулируя входное напряжение от 0 до 5 В.

104727 5631149cb8b5b5631149cb8b93 1

Можно ли использовать ЖК-дисплей без потенциометра?

Возможно, если нет потенциометра, все равно получиться настроить контрастность с помощью делителя напряжения, состоящего из двух резисторов. Применяя делитель напряжения, должны установить значение напряжения между 0 и 5 В можно получить хороший контраст на дисплее. Напряжение около 1 В отлично подходит для экрана. Применить резистор 1K и 220 Ом, чтобы получить хороший контраст.

Есть и другой способ регулировки контрастности монитора, который заключается в подаче ШИМ-сигнала от Arduino на вывод Vo. Подключить вывод Vo к любому выводу с поддержкой ШИМ, и в разделе настройки прописать следующую строку кода:

Она будет генерировать ШИМ-сигнал на выводе D11, со значением 100 из 255, что переводится в напряжение от 0 до 5 В, это будет около 2 В на входе на вывод Vo LCD.

Вот простой код, с помощью которого получиться объяснить принцип работы жидкокристаллической библиотеки:

#include // включает библиотеку LiquidCrystal Library

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Создает объект LCD. Параметры: (rs, enable, d4, d5, d6, d7)

void setup() <

lcd.begin(16,2); // Инициализирует интерфейс ЖК-экрана и задает размеры (ширину и высоту) дисплея >

>

void loop() <

lcd.print(«Arduino»); // Печатает на монитор

delay(3000); // Задержка 3 секунды

lcd.setCursor(2,1); // Устанавливает место, в котором будет отображаться последующий текст, записанный на ЖК-дисплей

lcd.print(«LCD Tutorial»);

delay(3000);

lcd.clear(); // Очищает дисплей

lcd.blink(); //Отображает мигающий ЖК-курсор

delay(4000);

lcd.setCursor(7,1);

delay(3000);

lcd.noBlink(); // Выключает мигающий ЖК-курсор

lcd.cursor(); // Отображает знак подчеркивания (черту) в позиции, в которую будет записан следующий символ

delay(4000);

lcd.noCursor(); // Скрывает ЖК-курсор

lcd.clear(); // Очищает ЖК-экран

>

Первое, что нужно сделать, это вставить жидкокристаллическую библиотеку. Сделать это следующим образом: Sketch > Include Library > Liquid Crystal. Затем должны создать объект LC. Параметрами этого объекта должны быть номера выводов цифрового входа платы Arduino соответственно выводам LCD следующим образом: (RS, Enable, D4, D5, D6, D7). В установке должны инициализировать интерфейс с ЖК-дисплеем и указать размеры дисплея с помощью функции begin().

В цикле пишется основная программа. Используя функцию print(), выводится изображение на ЖК-дисплей.

lcd.print(«Arduino»); // Печатает » на мониторе.

Функция setCursor() используется для установки места, в котором будет отображаться последующий текст, записанный на ЖКИ.

lcd.setCursor(2,1); // Устанавливает место, в котором будет отображаться последующий текст, записанный на ЖК-дисплее

Функция blink() используется для отображения мигающего курсора, а noBlink() — для выключения.

lcd.blink(); //Отображает мигающий ЖК-курсор

Функция cursor() используется для отображения курсора с подчеркиванием, а noCursor() — для выключения. С помощью clear() очистить ЖК-экран.

lcd.clear(); // Очистка ЖК-экрана

Пример прокрутки текста на ЖК-дисплее 16×2 и.

Если есть текст длиной более 16 символов, прокрутить его с помощью scrollDisplayLeft() или scrollDisplayRight() из библиотеки LiquidCrystal.

Читать:
Что будет если остановят с другим двигателем

Вот пример кода:

#include

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Создает объект LCD. Параметры: (rs, enable, d4, d5, d6, d7)

void setup() <

lcd.begin(16, 2);

lcd.print(«Пример прокрутки текста»);

>

void loop() <

lcd.scrollDisplayLeft();

delay(500);

>

С помощью scrollDisplayLeft() или scrollDisplayRight() выбраться, в какую сторону будет прокручиваться текст — влево или вправо. С помощью delay() устанавливается скорость прокрутки.

Получить больше контроля над прокруткой текста, также сделать прокрутку самостоятельно, используя цикл «for». Вот пример:

#include

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Создает объект LCD. Параметры: (rs, enable, d4, d5, d6, d7)

void setup() <

lcd.begin(16, 2); // Инициализирует интерфейс ЖК-экрана и задает размеры (ширину и высоту) дисплея

>

void loop() <

// прокрутка текста вправо

for (int i = 0; i<= 13; i++) <

lcd.setCursor(i, 0); // Устанавливает место, в котором будет отображаться последующий текст, записанный на ЖК-дисплей

lcd.print(«LCD»);

delay(500); // Задержка в 1 секунду

lcd.clear(); // Запись символа на дисплей

>

// прокрутка текста влево

for (int i = 12; i >= 1; i—) <

lcd.setCursor(i, 0);

lcd.print(«LCD»);

delay(500);

lcd.clear();

>

>

Как генерировать и отображать пользовательские символы на мониторе. Помимо ASCII, с помощью библиотеки LiquidCrystal можно генерировать и отображать на ЖК-дисплее пользовательские спецсимволы.

Задать внешний вид каждого символа с помощью массива из 8 байт. Вот пример кода:

#include

byte heart[8] = < // Массив байтов

B00000, // B означает двоичный форматтер, а пять цифр — это пиксели.

B01010,

B11111,

B11111,

B01110,

B00100,

B00000,

B00000

>;

byte smile[8] = <

B00000,

B00000,

B01010,

B00000,

B10001,

B01110,

B00000,

B00000

>;

byte lock[8] = <

B01110,

B10001,

B10001,

B11111,

B11011,

B11011,

B11111,

B00000

>;

byte character[8] = <

B11111,

B10101,

B11111,

B01010,

B01110,

B11111,

B01110,

B01110

>;

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Создает объект LC. Параметры: (rs, enable, d4, d5, d6, d7)

void setup() <

lcd.begin(16, 2); // Инициализирует интерфейс ЖК-экрана и задает размеры (ширину и высоту) дисплея

lcd.createChar(0, heart); // Создание пользовательского символа

lcd.createChar(1, smile);

lcd.createChar(2, замок);

lcd.createChar(3, character);

// Очистка монитора

lcd.clear();

// Вывод сообщения на дисплей

lcd.print(«Пользовательский символ»);

>

void loop() <

lcd.setCursor(1, 1);

lcd.write(byte(0)); // Отображение пользовательского знака 0, сердца

lcd.setCursor(5, 1);

lcd.write(byte(1));

lcd.setCursor(9, 1);

lcd.write(byte(2));

lcd.setCursor(13, 1);

lcd.write(byte(3));

>

Задать внешний вид, меняя 0 на 1 в пределах сетки 5×8 пикселей.

В настройке должны создать пользовательский символ с помощью createChar().

lcd.createChar(0, heart); // Создание пользовательского элемента

Первым параметром в этой функции является число от 0 до 7 или должны зарезервировать один из 8 поддерживаемых пользовательских символов. Второй параметр — это имя массива байтов.

Записывается пользовательский спецсимвол на дисплей с помощью write(), а в качестве параметра используем номер знака.

lcd.write(byte(0)); // Отображение пользовательского знака 0, или сердца.

Итак, рассмотрено практически все, что нужно знать об использовании ЖК-дисплеев. Это действительно удобны для отображения информации во многих электронных проектах. В приведенных выше примерах использовано монитор 16×2, но тот же принцип работы применим для любого другого размера этих символьных дисплеев.

Кабели для общих экранов.

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

Ниже перечислены распространенные экраны и соответствующие кабели, которые следует использовать с ними:

  • Ethernet категории 5 с разъемом RJ45
  • Реле
  • LCD и дисплеи
  • Емкостные тачпады
  • CAN-шина
  • Кабель данных CAN-шины
  • Протощит
  • Провода
  • Мотор
  • Провода

Кабели CAN-шины на рынке в дефиците, достать труднее всего на фоне остальных. Кабель Ethernet может иметь длину до 100 м, в том числе при использовании «Power over Ethernet». Кабель CAN-шины может иметь длину до 250 м. Многие проекты, отлично обходится с более 50 м Ethernet или CAN-шины, по этой причине не стоить приобретать столь длинные кабели.

Подключение LCD дисплея к Ардуино

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

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;
  • провода «папа-мама».

Схема подключения текстового экрана 16x2 к Ардуино Схема подключения текстового экрана 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 модуля

Пояснения к коду:
  1. для данного примера используется стандартная библиотека LiquidCrystal.h для QAPASS, которая не поддерживает кириллицу;
  2. чтобы упростить схему и не использовать большое количество пинов микроконтроллера, следует использовать дисплей с модулем I2C.

Принцип работы I2C интерфейса Arduino

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

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

Схема 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 1602 к Arduino UNO через I²C

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

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

Подключение двух дисплеев по I2C

По умолчанию у всех дисплеев 1602 с модулем I2C адрес — «0x27», но можно изменить адрес текстового экрана и узнать его через сканер iic шины. Таким образом, если у вас есть необходимость подключить к одному микроконтроллеру несколько дисплеев 1602, то следует изменить адреса устройств, что бы не было совпадений. Давайте рассмотрим, каким образом изменить IIC адрес жидкокристаллического дисплея.

Текстовый дисплей 1602 с модулем I2C

Текстовый дисплей 16×2 с модулем I2C

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

Скетч. Подключение нескольких LCD 1602 к шине i2c

Подключение двух дисплеев 1602 I2C к Ардуино

Подключение к Ардуино двух дисплеев 16×2 по I2C

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

Пояснения к коду:
  1. в программе у каждого дисплея имя должно быть уникальным.

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

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

Скетч. Описание библиотеки LiquidCrystal_I2C.h

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

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

Похожие публикации