Тема 5.1: Экспериментируйте с ЖК-экраном
Отображение текста на LCD экране
1 ЖК-экран 1602
1 х потенциометр
16 стандартных одиночных проводов
резистор 1 х 330 Ом
Теперь макетную плату можно подключить к компьютеру с помощью USB-кабеля и протестировать экран с помощью примера программы среды разработки. Примеры для тестирования ЖК-экрана среды разработки находятся в File -> Exampes -> LyquidCrystal, из них выберите например «Hello World».
Затем найдите строку lcd.print("hello, world!") в методе setup() кода. и замените слово мир своим именем. После загрузки кода на диск в верхней строке экрана должен появиться текст «здравствуйте, ваше имя», а в нижней строке должен появиться счетчик секунд. Поверните потенциометр как можно дальше влево, чтобы обеспечить максимальный контраст. Если текст не появляется, следует проверить соединения потенциометра, при наличии проблем с подсветкой — соединения двух последних разъемов (А и К).
Первый тест завершен: вы можете попробовать нарисовать на экране движущееся изображение по вашему выбору. Для этого откройте пример спецсимволов File -> Exampes -> LyquidCrystal -> CustomCharacter: при тестировании появится человек с поднятой вверх и вниз рукой. Сам экран состоит из 32 ячеек (16 столбцов и 2 строки), каждая размером 5 х 8 пикселей. Изображения отображаются с использованием последовательностей по 8 байтов, где самые правые 5 бит каждого байта определяют одну строку пикселей. В следующем блоке кода показан код анимации, созданный на основе кода CustomCharacker.

// lisame LiquidCrystal library
#include <LiquidCrystal.h>
// määrame, milliste digitaalpesadega ekraan ühendatud on
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// loome erisümbolid
byte smiley[8] ={0b00000,0b00000,0b01010,0b00000,0b00000,0b10001,0b01110,0b00000};
byte armsDown[8] ={0b00100,0b01010,0b00100,0b00100,0b01110,0b10101,0b00100,0b01010};
byte armsUp[8] ={0b00100,0b01010,0b00100,0b10101,0b01110,0b00100,0b00100,0b01010};
byte kass[8] ={0b00000,0b00000,0b00000,0b10000,0b10011,0b11111,0b01110,0b01010};
byte tydruk[8] ={0b00100,0b01010,0b00100,0b11111,0b00100,0b00100,0b01110,0b11111};
byte v2ikesyda[8] ={0b00000,0b00000,0b00000,0b11011,0b11111,0b11111,0b01110,0b00100};
void setup() {
// algväärtustatakse LDC ekraani read ja veerud
lcd.begin(16, 2);
// defineerime erisümbolid
lcd.createChar(1, smiley);
lcd.createChar(3, armsDown);
lcd.createChar(4, armsUp);
lcd.createChar(5, kass);
lcd.createChar(6, tydruk);
lcd.createChar(7, v2ikesyda);
}
void loop() {
// koht kuhu hakkame joonistama – 3. veerg, esimene rida
lcd.setCursor(2, 0);
// joonistame kassi
lcd.write(5);
// ja tüdruku
lcd.write(6);
//muudame kursori asukohta: 2. rida 14. veerg
lcd.setCursor(13, 1);
// joonistame poisi
lcd.write(3);
delay(400);
//muudame kursori asukohta: 1. rida 5. veerg
lcd.setCursor(4, 0);
//joonistame for tsükli abil väikese pausiga 10 smaili
for (int koht = 0; koht < 10; koht++) {
lcd.write(1);
delay(400);
}
lcd.setCursor(13, 1);
lcd.write(4);
//loobime südameid
for (int koht = 13; koht >= 4; koht–) {
lcd.setCursor(koht, 0);
lcd.write(7);
delay(400);
}
delay(400);
}

https://drive.google.com/file/d/1gkXJT1ove7Nb48n59YFlIqxCEaV7IyYJ/view?usp=sharing