Praktiline töö 5 LCD ekraan

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.

katse6_LCD

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: