LCD ekraan
LCD ekraan (Liquid Crystal Display) on tüüpi ekraanitehnoloogia, mis kasutab vedelikke ja kristalle, et kuvada pilte ja teksti. LCD ekraanid on kerged, õhukesed ja energiatõhusad, mistõttu on need laialdaselt kasutusel mitmesugustes seadmetes, sealhulgas arvutites, televiisorites, mobiiltelefonides ja muudes elektroonikaseadmetes.
LCD ekraani tööpõhimõte põhineb vedelate kristallide omadusel muuta oma läbipaistvust, kui nendele rakendatakse elektriväli. Ekraan koosneb mitmest kihist, sealhulgas taustvalgustusest, polariseerivast filtrist ja vedelatest kristallidest. Taustvalgustus loob valguse, mis läbib polariseerivaid filtreid ja vedelaid kristalle, et moodustada soovitud pilt.
LCD ekraanid on tuntud oma terava pildi ja madala energiatarbimise poolest. Neil on ka vähem liikuvat osa, mis teeb need vastupidavamaks ja usaldusväärsemaks võrreldes vanemate tehnoloogiate, nagu CRT (katoodkiirguse toru), ekraanidega. LCD ekraanide kvaliteet ja värvide täpsus on samuti paranenud, muutes need populaarseks valikuks erinevates rakendustes.
Teksti kuvamine LCD-ekraanil / Ekraani ühendamine ja teksti kuvamine 1602 LCD-ekraanil
Komponendid:
1 x 1602 LCD ekraan
1 x potentsiomeeter
16 x tavalised üksikud isane-isane juhtmed
1 x 330 Ω takisti
Ühendamine:
Tulemuseks on liikuv pilt, kus poiss ja tüdruk üksteiseke südameid ja naerunägusid saadavad.

Näidis kood:
#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);
}
RTClib.h teeke installimine ja kasutamine
Kasutuskomponeendid:
Arduino Uno
Pildil on

Kood:
#include <Wire.h>
#include <RTClib.h>
RTC_DS1307 rtc;
void setup ()
{
Serial.begin(9600);
Wire.begin();
rtc.begin();
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop () {
DateTime now = rtc.now();
char dt[10];
char tm[10];
sprintf(dt, "%02d/%02d/%02d", now.year(),now.month(),now.day());
sprintf(tm, "%02d:%02d:%02d", now.hour(),now.minute(),now.second());
Serial.print(dt);
Serial.print(" ");
Serial.print(tm);
Serial.println();
delay(1000);
}
Teeke installimine:

Ülesanne 5 Interaktiivne infoekraan “Ilmajaam”
Komponendid:
1 arduino plaat
17 juhet
2 takisti
1 lüliti
1 LCD ekraan
Kood:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
char* myStrings[]={"Vaga kulm", "natuke kulm", "normaalne", "soe", "vaga soe"};
int sensorValue;
byte minus[8] = {
0b00000,
0b00000,
0b00000,
0b00000,
0b11111,
0b00000,
0b00000,
0b00000
};
byte plus[8] = {
0b00000,
0b00000,
0b00100,
0b00100,
0b11111,
0b00100,
0b00100,
0b00000
};
byte odin[8] = {
0b00000,
0b00010,
0b00110,
0b01010,
0b00010,
0b00010,
0b00010,
0b00000
};
byte nol[8] = {
0b00000,
0b00000,
0b00110,
0b01001,
0b01001,
0b01001,
0b00110,
0b00000
};
byte pjat[8] = {
0b00000,
0b01110,
0b01000,
0b01110,
0b00010,
0b00010,
0b01110,
0b00000
};
byte c[8] = {
0b00000,
0b00110,
0b01000,
0b01000,
0b01000,
0b01000,
0b00110,
0b00000
};
byte a[8] = {
0b11100,
0b10100,
0b11100,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};
void setup() {
lcd.begin(16, 2);
lcd.createChar(1, minus);
lcd.createChar(2, plus);
lcd.createChar(3, odin);
lcd.createChar(4, nol);
lcd.createChar(5, pjat);
lcd.createChar(6, c);
lcd.createChar(7, a);
}
void loop() {
sensorValue = analogRead(A5); // Считываем значение с аналогового пина A0
sensorValue = map(sensorValue, 0, 1023, 1, 7);
if (sensorValue==1){
lcd.clear();
lcd.setCursor(2, 0);
lcd.write(1);
lcd.setCursor(3, 0);
lcd.write(5);
lcd.setCursor(4, 0);
lcd.write(4);
lcd.setCursor(5, 0);
lcd.write(6);
lcd.setCursor(6, 0);
lcd.write(7);
lcd.setCursor(7, 1);
lcd.println(myStrings[0]);
delay(500);
}
else if (sensorValue==2){
lcd.clear();
lcd.setCursor(2, 0);
lcd.write(1);
lcd.setCursor(3, 0);
lcd.write(3);
lcd.setCursor(4, 0);
lcd.write(5);
lcd.setCursor(5, 0);
lcd.write(6);
lcd.setCursor(6, 0);
lcd.write(7);
lcd.setCursor(5, 1);
lcd.println(myStrings[1]);
delay(500);
}
else if (sensorValue==3){
lcd.clear();
lcd.setCursor(2, 0);
lcd.write(4);
lcd.setCursor(3, 0);
lcd.write(6);
lcd.setCursor(4, 0);
lcd.write(7);
lcd.setCursor(7, 1);
lcd.println(myStrings[2]);
delay(500);
}
else if (sensorValue==4){
lcd.clear();
lcd.setCursor(2, 0);
lcd.write(2);
lcd.setCursor(3, 0);
lcd.write(3);
lcd.setCursor(4, 0);
lcd.write(5);
lcd.setCursor(5, 0);
lcd.write(6);
lcd.setCursor(6, 0);
lcd.write(7);
lcd.setCursor(13, 1);
lcd.println(myStrings[3]);
delay(500);
}
else if (sensorValue==5){
lcd.clear();
lcd.setCursor(2, 0);
lcd.write(2);
lcd.setCursor(3, 0);
lcd.write(5);
lcd.setCursor(4, 0);
lcd.write(4);
lcd.setCursor(5, 0);
lcd.write(6);
lcd.setCursor(6, 0);
lcd.write(7);
lcd.setCursor(8, 1);
lcd.println(myStrings[4]);
delay(500);
}
}
Video: