Используйте текстовый экран 16×2 для вывода показаний сенсоров, отображения простых меню, подсказок и приветствий.
Дисплей общается с управляющей платформой по шине I²C через пины SDA
и SCL
. В качестве примера используем плату Arduino Uno.
Для быстрой сборки возьмите Troyka Shield.
С Troyka Slot Shield провода не понадобятся вовсе.
Для упрощения работы с LCD-дисплеем мы написали библиотеку TroykaTextLCD. В ней вы найдёте примеры кода с подробными комментариями.
Для вывода первой программы приветствия, воспользуйтесь кодом вроде этого:
// библиотека для работы с дисплеем #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() { }
Дисплей позволяет увеличить размер текста путём объединения двух строк в одну.
// библиотека для работы с дисплеем #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 пикселей.
// библиотека для работы с дисплеем #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-контактов.
Нижняя группа
Верхняя группа
SDA
пину микроконтроллера.SCL
пину микроконтроллера.