LCD ekraani kasutamine

// 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);
}
Interaktiivne infoekraan
Töö kirjeldus:
Ekraan, millele kirjutab potentsiomeetri abil päev, öö. Kui ekraanil “Päev” on hele, pimedal ajal “Öö” ja siis tuleb sisse lülitada “Vaja on lampi keerata”.
Komponendid:
Arudino Uno
Takisti (2)(330 Om ja 10kOm)
Juhtmed (19)
Potentsiomeetr
Valgustakisti
LCD ekraan 16×2
https://www.tinkercad.com/things/6tc05W3103S?sharecode=id2_tXf6THvyBrdtrXpiKdCSGhDTjd3DlVxOq3X2VEE

Tööpõhimõte:
LCD-ekraan, millele ilmuvad pealdised päev, öö, peate lambi sisse lülitama. Need pealdised sõltuvad fototakistist, kui ekraanile on kirjutatud päev valgus “Päev” ja päike paistab alt, pimeduse korral kirjutatakse ekraanile öö ja alt ilmuvad kuud, pärast seda kirjutatakse ekraanile. ekraan lambi sisselülitamiseks “Need turn lamp” (sõna Vaja on väga nõrgalt näha) ja alt ilmuvad lambid.
Kuidas seda kasutada saab?
Seda saab kasutada valgussensorina, mis näitab, kui ruum on liiga hämar ja tuleb valgus sisse lülitada.
Programm:
#include <LiquidCrystal.h>
int sensorPin = 0;
int lightLevel, high = 0, low = 1023;
// initialize the library
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte night[8] = {0b00000,0b00111,0b01100,0b11000,0b11000,0b01100,0b00111,0b00000};
byte lamp[8] ={0b01110,0b00100,0b11111,0b11111,0b10001,0b10101,0b11111,0b11111};
byte sun[8] = {0b00000,0b01110,0b11111,0b11111,0b11111,0b01110,0b00000,0b00000};
const char* myStrings[]={"Night ", "Day ","Need turn lamp "};
void setup()
{
lcd.begin(16, 2);
lcd.createChar(1, night);
lcd.createChar(2, lamp);
lcd.createChar(3, sun);
Serial.begin(9600);
}
void loop()
{
lightLevel = analogRead(sensorPin);
lightLevel = map(lightLevel, 300, 800, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
Serial.print(lightLevel);
Serial.println("");
if(lightLevel>=10)
{
lcd.setCursor(5, 0);
lcd.println(myStrings[1]);
for (int i = 3; i <= 10; i++)
{
lcd.setCursor(i, 1);
lcd.write(3);
delay(300);
}
lcd.clear();
}
else if(lightLevel<10)
{
lcd.setCursor(5, 0);
lcd.println(myStrings[0]);
for (int i = 3; i <= 10; i++)
{
lcd.setCursor(i, 1);
lcd.write(1);
delay(300);
}
lcd.clear();
lcd.setCursor(1, 0);
lcd.println(myStrings[2]);
for (int i = 3; i <= 10; i++)
{
lcd.setCursor(i, 1);
lcd.write(2);
delay(300);
}
lcd.clear();
}
}