5.1 Отображение текста на LCD экране/Ekraani ühendamine ja teksti kuvamine 1602 LCD ekraanil

// 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);
}
Uued Funktisonid:
Ülesanne 5 Interaktiivne infoekraan:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
: Создание объектаlcd
класса LiquidCrystal. Эта строка указывает, какие пины на Arduino подключены к пинам дисплея для передачи данных и управления.byte lill[8] ={0b10101, 0b01110, 0b11011, 0b01111, 0b10101, 0b00100, 0b00100, 0b00100};
: Здесь объявляется массив байтовlill
, содержащий определение пользовательского символа. Каждый элемент массива представляет одну строку пикселей символа.lcd.createChar(3, lill);
: Эта функция создает пользовательский символ с индексом 3, используя определение, содержащееся в массивеlill
. Этот символ будет использоваться позже при выводе на дисплей.lcd.begin(16, 2);
: Инициализирует дисплей с размером 16 символов в каждой строке и 2 строками.lcd.setCursor(2, 0);
: Устанавливает курсор на позицию (2, 0), то есть на третий символ в первой строке (индексация начинается с 0).lcd.print("ale");
: Выводит текст “ale” на дисплей, начиная с текущей позиции курсора.lcd.write(3);
: Выводит пользовательский символ с индексом 3 (который был создан с помощьюlcd.createChar()
) на текущую позицию курсора. Этот символ будет отображаться на дисплее.

https://www.tinkercad.com/things/advWaVkcox2-tremendous-sango-robo
Ma kasutasin:
1 takisti
Arendusplaat
Arduino Uno
Juhtmed
1 Potontsiomeetr
1 Photoresistor
1 Lcd ekraan
Töö kirjeldus:
Работа опыта зависит от положения потонциометра. Его диапазон разделён на 6 частей и в зависимости от того какая выбранная сейчас показывается изображение на lcd экране.
0 – 42 – надпись “Tere!”
43 -82- надпись “Timur on hea”
85-123- надпись “Aitah Timur”
124-169- человек идёт домой изображение
169-211 – простое математическое вычесление
212-255 – цветы растут изображение
Katse toimimine sõltub potentsiomeetri asendist. Selle vahemik on jagatud 6 osaks ja lcd-ekraan näitab pilti sõltuvalt sellest, milline neist on valitud.
0 – 42 – “Tere!”
43 -48 – kiri “Timur on hea”.
85-123- kiri “Aitah Timur”.
124-169- mees läheb koju
169-211 – lihtne matemaatiline arvutus
212-255 – lilled kasvavad pilt
// lisame LiquidCrystal library
#include <LiquidCrystal.h>
int sensorPin = 0;
int sensorValue = 0;
// määrame, milliste digitaalpesadega ekraan ühendatud on
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// loome erisümbolid
byte koju[8]= {
0b00100,
0b00100,
0b01010,
0b10001,
0b11111,
0b10001,
0b10001,
0b11111};
byte inimine[8] ={0b00100,
0b01010,
0b00100,
0b00111,
0b00100,
0b00100,
0b01010,
0b01001};
byte lill[8] ={0b10101,
0b01110,
0b11011,
0b01111,
0b10101,
0b00100,
0b00100,
0b00100};
void setup() {
Serial.begin(9600);
// algväärtustatakse LDC ekraani read ja veerud
lcd.begin(16, 2);
// defineerime erisümbolid
lcd.createChar(1, koju);
lcd.createChar(2, inimine);
lcd.createChar(3, lill);
}
void loop() {
sensorValue = analogRead(sensorPin);
sensorValue=map(sensorValue,0,1023,0,255);
Serial.println(sensorValue);
if (sensorValue <= 42) {
lcd.setCursor(5, 0);
lcd.print("TERE!");
delay(100);
}
if (sensorValue >= 43 && sensorValue <= 84) {
lcd.setCursor(2, 0);
lcd.print("Timur on hea");
}
if (sensorValue >= 85 && sensorValue <= 123) {
lcd.setCursor(2, 0);
lcd.print("Aitah Timur");
delay(100);
}
if (sensorValue >= 124 && sensorValue <= 168) {
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Inimne laheb");
lcd.setCursor(5, 1);
lcd.print("koju");
delay(2000);
lcd.clear();
lcd.setCursor(15, 0);
lcd.write(1);
delay(1000);
for (int i = 1; i <= 16; i += 1) {
lcd.clear();
lcd.setCursor(15, 0);
lcd.write(1);
lcd.setCursor(i, 0);
lcd.write(2);
delay(250);
}
}
if (sensorValue >= 169 && sensorValue <= 211) {
int a = random(1,20) ;
int b = random(1,20) ;
int c = a+b;
lcd.print(String(a));
lcd.setCursor(1, 0);
lcd.print("a = ");
lcd.setCursor(5, 0);
lcd.print(String(a));
lcd.setCursor(1, 1);
lcd.print("b = ");
lcd.setCursor(5, 1);
lcd.print(String(b));
delay(2000);
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("c = ");
lcd.setCursor(5, 0);
lcd.print(String(c));
delay(2000);
}
if (sensorValue >= 212 && sensorValue <= 255) {
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("lilled kasvavad");
delay(2000);
lcd.clear();
for (int i = 1; i <= 16; i += 1) {
lcd.setCursor(i, 0);
lcd.write(3);
delay(150);
}
for (int i = 1; i <= 16; i += 1) {
lcd.setCursor(i, 1);
lcd.write(3);
delay(150);
}
}
else{
lcd.clear();
}
}
Video
https://drive.google.com/file/d/1VbqcmGM2eRGH9QFnVQIMcxyXdP_v540C/view?usp=share_link
LCD-экраны (жидкокристаллические дисплеи) являются тонкими, легкими и энергоэффективными устройствами вывода информации. Они широко применяются в различных областях и системах, включая:
1.Информационные табло и дисплеи: LCD-экраны используются для отображения информации на информационных табло и дисплеях. Они могут использоваться в общественном транспорте для отображения расписания, на банкоматах, в магазинах для отображения цен и акций, а также в офисных зданиях для отображения информации о встречах и событиях.
2.Мобильные устройства: LCD-экраны применяются в мобильных устройствах, таких как смартфоны, планшеты и ноутбуки. Они обеспечивают яркое и четкое отображение информации, включая текст, изображения и видео.
3.Медицинская техника: LCD-экраны используются в медицинской технике для отображения данных и информации о состоянии пациента. Они могут быть частью мониторов пациентов, электрокардиографов, аппаратов искусственной вентиляции легких и другого медицинского оборудования.
4.Автомобильная промышленность: В автомобилях LCD-экраны применяются для отображения информации на панели приборов, мультимедийных системах и системах навигации. Они обеспечивают водителя и пассажиров яркое и понятное отображение различных параметров и функций автомобиля.
5.Промышленный контроль и автоматизация: LCD-экраны применяются в системах промышленного контроля и автоматизации для отображения данных, параметров и состояний различных процессов. Они могут использоваться в промышленных панелях оператора, системах управления и мониторинга производственных линий и оборудования.