Katse LCD ekraan

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:

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