katse 5.1 LCD ekraani kasutamine
Töö kirjeldus:
Looda LCD ekraanil tegevus
Komponendid:
1602 LCD ekraan
potentsiomeeter
takisti 220 Om
Juhtmed 16 tk
Ühendus skeem:

Programm:
#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);
}
Foto:
LCD ekraanil muutub väärtused mis näitab liikumist ja muutmist
Ülesanne 5 Interaktiivne infoekraan
Töö kirjeldus:
Näita LCD ekraanil lause või seisukord väljas (temperatuur)
Komponendid:
Arduino Uno
Arendusplaat
Potentsioometr 1tk
LCD ekraan 1602
Temperatuuri andur TMP
Takisti 220 Om
Juhtmed 19 tk
Ühendus skeem:

Seletus:
LCD ekraanil näitakse temperatuur vastavalt temperatuuri anduri tulemusest, kui temperatuuri andur loeb soe temperatuuri siis näitab LCD ekraanil on soe , päike ja rõõmus näö. Kui temperatuuri andur loeb külma temperatuuri siis näitab LCD ekraanil on külm, kuu ja kurb näö.
Programm:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int temperaturePin = A0;
const char* myStrings[] = {
"temperatuur",
"on soe"
};
const char* coldStrings[] = {
"temperatuur",
"on kylm"
};
byte smiley[8] ={
0b00000,
0b00000,
0b01010,
0b00000,
0b00000,
0b10001,
0b01110,
0b00000};
byte sadface[8] = {
0b00000,
0b01010,
0b00000,
0b00000,
0b00000,
0b00000,
0b01110,
0b10001
};
byte sunSymbol[8] = {
0b10101,
0b01110,
0b01110,
0b11111,
0b11111,
0b01110,
0b01110,
0b10101
};
byte moonSymbol[8] = {
0b00000,
0b00100,
0b01110,
0b01110,
0b01110,
0b00100,
0b00000,
0b00000
};
void setup() {
lcd.begin(16, 2);
lcd.createChar(0, smiley);
lcd.createChar(1, sadface);
lcd.createChar(2, sunSymbol);
lcd.createChar(3, moonSymbol);
Serial.begin(9600);
}
void loop() {
int temperature = analogRead(temperaturePin);
float celsius = map(temperature, 0, 1023, -40, 250);
lcd.setCursor(0, 0);
lcd.print(myStrings[0]); // "temperatuur" kuvamine esimesel real
lcd.setCursor(0, 1);
if (celsius > 22) {
lcd.print(myStrings[1]); // Kuva "soe" teisel real, kui see on kuum
lcd.write((uint8_t)2); // Päikese sümboli kuvamine
lcd.write((uint8_t)0); // Naeratava näo kuvamine
} else {
lcd.print(coldStrings[1]); // Külma korral näidatakse "kylm" teisel real
lcd.write((uint8_t)3); // Kuu sümboli kuvamine
lcd.write((uint8_t)1); // Kurva näo kuvamine
}
// Prindime temperatuuri ja heleduse väärtused serial monitorile
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.println("C");
delay(1000); // Temperatuurikontrollide vaheline viivitus - 1 sekund
lcd.clear();
}
Video:
https://drive.google.com/drive/folders/1QIIOFeZJeWjZsU1fwYtt2furDs4VmduP?usp=share_link
Kus võib seda kasutada
Nutitelefon
Sülearvuti
Televisoorid
Videokassettmagnetofon
Mp3 pleer
Uued funktsioonid:
lcd.write((uint8_t)2); uint8_t universaalne vorm pöörama objektile, siis võtakse milline objekti number, mis oli määratud setup-s.