Способы подключения LCD дисплеев к микроконтроллерам
Журнал: Научный журнал «Студенческий форум» выпуск №39(90)
Рубрика: Технические науки
Научный журнал «Студенческий форум» выпуск №39(90)
Способы подключения LCD дисплеев к микроконтроллерам
Аннотация. В данной статье рассматривается подключение LCD дисплея к плате Iskra Neo без использования специального интерфейса на основе I2C протокола. Основная цель показать возможность использование LCD дисплея без дополнительных модулей. Во время эксперимента использовались LCD дисплей, платформа Iskra Neo, макетная плата, потенциометр, USB кабель.
Ключевые слова: Iskra Neo; Arduino; I2C модуль; LCD 1602; программирование микроконтроллеров.
Введение
Для подключения LCD дисплеев используются встроенные модули, поддерживающие I2C протокол. Однако в условиях проведения университетских занятий, с помощью элементов, задействованных ранее в других проектах, можно воспользоваться альтернативным методом подключения дисплея, тем самым сэкономив финансовые ресурсы и ознакомить студентов с основами построения модулей и базовых схем на основе LCD экрана, принципами их работы и замены.
Описание и распиновка LCD дисплея
Текстовый экран LCD 1602 — жидкокристаллический дисплей (LCD), способный отображать одновременно до 32 символов (2 строки по 16 символов). Каждый символ занимает 5×8 пикселей. В корпус дисплейного модуля встроена LED-подсветка. По умолчанию поддерживает латиницу, использование кириллицы допустимо при использовании специальных библиотек, возможна загрузка собственных символов. [5, с. 55]
Технические характеристики:
- Источник питания: один источник питания (5 В ± 10%);
- Входные данные: доступен 4-битный или 8-битный интерфейс;
- Контроллер: HD44780
- Режим отображения: STN, BLUB;
- Рабочая температура: max 50°С;
- Температура хранения -10 ... +60 °С;
- Размеры: 82мм x 35мм x 18мм.
Рисунок 1. LCD 1602
Распиновка LCD 1602:
1. Vss - Подключение к земле (GND)
2. Vdd - Напряжение питание (3.3V - 5V)
3. V0 - Отвечает за контрастность дисплея. С помощью потенциометра можно изменять значение пина тем самым меняя контрастность с темного на светлый.
4. Rs - В зависимости от 0 или 1, значения на пинах D0-D7 будут восприниматься дисплеем как инструкция либо как данные.
5. Rw - Дает возможность менять режим дисплея на чтение или на запись данных. По умолчанию подключен к земле (режим чтения)
6. E - Сигнал разрешения на обработку данных
7 - 14. Шины данных (D0-D7)
15. A - Анод светодиода подсветки (3.3V - 5V)
16. К - Катод светодиода подсветки (GND) [1, с. 3]
Описание работы LCD вместе с интерфейсом I2C
Прежде чем описать работу дисплея через i2c-переходник, дадим определение i2C протоколу.
I2C (Inter-Integrated Circuit) – протокол, созданный для соединения интегральных микросхем между собой. Основной особенностью I2C является использование специальной системы адресации, благодаря которой можно общаться по двум шинам(SDA и SCL) с несколькими устройствами. Разработан фирмой Philips.[3, с. 171]
Рисунок 2. Модуль I2C для LCD 1602 Arduino
Модуль I2C для LCD 1602 Arduino - плата на основе микроконтроллера PCF8574F предназначена для установки протокола I2C на дисплей LCD. [4 с. 54]
Технические характеристики:
- Источник питания: один источник питания (2.5 - 6 В);
- Контроллер: PCF8574F
- Поддержка дисплеев: LCD 16×02 / 20×04;
- Размеры: 54мм x 19мм x 15мм
Рисунок 3. Схема подключения с помощью модуля
Распиновка микроконтроллера PCF8574F:
1 - 3. Пины адреса (A0-A2). В зависимости какой пин запаян показывает адрес LCD экрана. Всего 8 вариантов.
4 - 11. Квазидвунаправленные пины(P0-P7). Подают сигналы на вторую группу распиновки модуля
12. Vss - Подключение к земле (GND)
13. INT - порт прерывания (активный LOW)
14. Vdd - Напряжение питание (3.3V - 5V)
15. SCL - линия тактирования
16. SDA - линия данных. Принимает данные от аналогового пина Arduino[2, с. 5]
Первая группа распиновки Модуля:
- SCL - линия тактирования
- SDA - линия данных. Предназначена для передачи пакетов данных
- VCC - питание
- GND - земля
Вторая группа распиновки Модуля:
1. Vss - Подключение к земле (GND)
2. Vdd - Напряжение питание (3.3V - 5V)
3. V0 - Отвечает за контрастность дисплея. С помощью потенциометра можно изменять значение пина тем самым меняя контрастность с темного на светлый.
4. Rs - В зависимости от 0 или 1, значения на пинах D0-D7 будут восприниматься дисплеем как инструкция либо как данные.
5. Rw - Дает возможность менять режим дисплея на чтение или на запись данных. По умолчанию подключен к земле (режим чтения)
6. E - Сигнал разрешения на обработку данных
7 - 14. Шины данных (D0-D7)
15. A - Анод светодиода подсветки (3.3V - 5V)
16. К - Катод светодиода подсветки (GND) [1, с. 3]
Третья группа распиновки Модуля:
- VCC
- Пин от LCD
Проведение опыта подключение LCD дисплея к Iskra Neo
1. Включаем дисплей: подключаем два провода от +5V и заземления к соответствующим им рядам “+” или “-” на макетной плате.
2. Подключаем питание и подсветку дисплея к -5V ряду на макетной плате: -GND на макетной плате к VSS пину дисплея,
+5V на макетной плате к VDD пину,
+5V на макетной плате к A пину на LCD,
-GND на макетной плате к K на LCD.
3. Подсоединяем плату к ПК, используя USB-кабель.
4. Подключаем потенциометр, регулирующий контрастность LCD дисплея.
пин №1 потенциометра к “-” на макетной плате,
пин №2 на потенциометре к V0 на дисплее,
пин №3 потенциометра к “+” на макетной плате.
После того, как питание через USB-кабель было подано, в первом ряду символов на дисплее должны отобразиться пустые прямоугольники. Однако, если они не отобразились, следует покрутить потенциометр слева направо для регулировки контраста.
5. Обеспечиваем обмен данных между платой и LCD дисплеем. Подключаем:
RS экрана к пину №7 Iskra,
RW LCD дисплея к земле на макетной плате,
E дисплея к пину №6 Iskra,
D4 экрана к пину №5 Iskra
D5 дисплея к пину №4 Iskra,
D6 экрана к пину № 3 Iskra,
D7 LCD дисплея к пину №2 Iskra.
Рисунок 4. Схема подключения без модуля
Программа для Arduino IDE – отображение надписи на дисплее 1602
//Тестировалось на Arduino IDE 1.0.5
#include <LiquidCrystal.h> //Добавляем необходимую библиотеку
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7)
void setup(){
lcd.begin(16, 2); // Задаем размерность экрана
lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки
lcd.print("IKB-72 Nikita"); // Выводим текст
lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки
lcd.print("Alisa Liza"); // Выводим текст
}
void loop(){
}
Рисунок 5. Вывод надписи на экран
Вывод
В результате проделанной работы было изучено устройство I2C модуля и проведено подключение LCD дисплея к плате Iskra Neo без его использования. Данный способ подключения позволил студентам более подробно ознакомиться с работой модулей.