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

Экран Уроки

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

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

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

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

monokhromnyy simvolnyy lcd displey 16x2 i2c belyy na sinem 1

Количество прямоугольных областей определяет размер ЖК-дисплея. Самый популярный — это монитор 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. 

Код 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-шины, по этой причине не стоить приобретать столь длинные кабели.

Оцените статью
Информация об Ардуино
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я принимаю политику конфиденциальности.