Текстовый дисплей 16×2 (Troyka-модуль)
Используйте текстовый экран 16×2 для вывода показаний сенсоров, отображения простых меню, подсказок и приветствий.
Видеообзор
Примеры работы для Arduino
Схема устройства
Дисплей общается с управляющей платформой по шине I²C через пины SDA
и SCL
. В качестве примера используем плату Arduino Uno.
Для быстрой сборки возьмите Troyka Shield.
С Troyka Slot Shield провода не понадобятся вовсе.
Вывод текста
Для упрощения работы с LCD-дисплеем мы написали библиотеку TroykaTextLCD. В ней вы найдёте примеры кода с подробными комментариями.
Для вывода первой программы приветствия, воспользуйтесь кодом вроде этого:
- helloWorld.ino
// библиотека для работы с дисплеем #include <TroykaTextLCD.h> // создаем объект для работы с дисплеем TroykaTextLCD lcd; void setup() { // устанавливаем количество столбцов и строк экрана lcd.begin(16, 2); // устанавливаем контрастность в диапазоне от 0 до 63 lcd.setContrast(27); // устанавливаем яркость в диапазоне от 0 до 255 lcd.setBrightness(255); // устанавливаем курсор в колонку 0, строку 0 lcd.setCursor(0, 0); // печатаем первую строку lcd.print("Hello, world!"); // устанавливаем курсор в колонку 0, строку 1 // на самом деле это вторая строка, т.к. нумерация начинается с нуля lcd.setCursor(0, 1); // печатаем вторую строку lcd.print("Do It Yourself"); } void loop() { }
Размер текста
Дисплей позволяет увеличить размер текста путём объединения двух строк в одну.
- HelloWorldBigSize.ino
// библиотека для работы с дисплеем #include <TroykaTextLCD.h> // создаем объект для работы с дисплеем TroykaTextLCD lcd; void setup() { // устанавливаем количество столбцов, строк экрана и размер текста lcd.begin(16, 2, 2); // устанавливаем контрастность в диапазоне от 0 до 63 lcd.setContrast(27); // устанавливаем яркость в диапазоне от 0 до 255 lcd.setBrightness(255); // устанавливаем курсор в колонку 0, строку 0 lcd.setCursor(0, 0); // печатаем строку lcd.print("Hello, world!"); } void loop() { }
Вывод собственных символов
Дисплей позволяет создавать и выводить собственные иконки с размером 5×8 пикселей.
- CustomCharacter.ino
// библиотека для работы с дисплеем #include <TroykaTextLCD.h> // создаем объект для работы с дисплеем TroykaTextLCD lcd; // создаём массивы иконок byte heart[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000 }; byte smiley[8] = { 0b00000, 0b00000, 0b01010, 0b00000, 0b00000, 0b10001, 0b01110, 0b00000 }; byte frownie[8] = { 0b00000, 0b00000, 0b01010, 0b00000, 0b00000, 0b00000, 0b01110, 0b10001 }; byte armsDown[8] = { 0b00100, 0b01010, 0b00100, 0b00100, 0b01110, 0b10101, 0b00100, 0b01010 }; byte armsUp[8] = { 0b00100, 0b01010, 0b00100, 0b10101, 0b01110, 0b00100, 0b00100, 0b01010 }; void setup() { // устанавливаем количество столбцов и строк экрана lcd.begin(16, 2); // устанавливаем контрастность в диапазоне от 0 до 63 lcd.setContrast(27); // устанавливаем яркость в диапазоне от 0 до 255 lcd.setBrightness(255); // создаём новые символы в ячейках памяти lcd.createChar(0, heart); lcd.createChar(1, smiley); lcd.createChar(2, frownie); lcd.createChar(3, armsDown); lcd.createChar(4, armsUp); // устанавливаем курсор в колонку 0, строку 0 lcd.setCursor(0, 0); // печатаем первую строку lcd.print("I "); // печатаем символ из нулевой ячейки lcd.write(0); lcd.print(" Arduino! "); // печатаем символ из первой ячейки lcd.write(1); // устанавливаем курсор на вторую строку и четвёртый символ lcd.setCursor(4, 1); } void loop() { // устанавливаем курсор на вторую строку и четвёртый символ lcd.setCursor(4, 1); // выводим символ из третьей ячейки lcd.write(3); // ждём пол секунды delay(500); // устанавливаем курсор на вторую строку и четвёртый символ lcd.setCursor(4, 1); // выводим символ из четвёртой ячейки lcd.write(4); // ждём пол секунды delay(500); }
Элементы платы
Дисплей
Экран выполнен на жидкокристаллической матрице, которая отображает две строки по 16 символов. Каждый символ состоит из отдельного знакоместа 5×8 пикселей. Матрица индикатора подключена к встроенному чипу ST7032, который выполняет роль посредника между экраном и микроконтроллером.
Подсветка дисплея
Сама по себе LCD-матрица не излучает свет, поэтому в корпус дисплейного модуля встроена LED-подсветка.
За включение и отключение подсветки отвечает сигнальный пин A
. А если контакт управляющей платы поддерживает ШИМ, то можно управлять яркостью подсветки.
Troyka-контакты
На дисплейном модуле выведено две пары Troyka-контактов.
Нижняя группа
- Сигнальный (A) — пин управления подсветкой экрана. Подключите к аналоговому/цифровому пину микроконтроллера.
- Питание (V) — соедините с рабочим напряжением микроконтроллера.
- Земля (G) — соедините с землёй микроконтроллера.
Верхняя группа
- Сигнальный (D) — пин данных шины I²C. Подключите к
SDA
пину микроконтроллера. - Сигнальный (C) — пин тактирования шины I²C. Подключите к
SCL
пину микроконтроллера.
Принципиальная и монтажная схемы
Характеристики
- Тип дисплея: текстовый
- Цвет: монохромный
- Технология: LCD (Liquid Crystal Display)
- Индикация: 2 строки по 16 символов
- Драйвера матрицы: ST7032
- Интерфейс: I²C
- Адрес модуля: 0x3E
- Тип подсветки: LED
- Цвет подсветки: синий
- Цвет символов: белый
- Напряжение питания: 3.3–5 В
- Габариты: 76,2×25,4 мм