Praktika 5 LCD ekraan

5. Katse LCD ekraani kasutamine

Lsd ekraanile kuvatakse pildid

#include <LiquidCrystal.h>


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


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() {
lcd.begin(16, 2);
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() {
lcd.setCursor(2, 0);
lcd.write(5);
lcd.write(6);
lcd.setCursor(13, 1);
lcd.write(3);
delay(400);
lcd.setCursor(4, 0);
  

for (int koht = 0; koht < 10; koht++) {
lcd.write(1);
delay(400);
}

lcd.setCursor(13, 1);
lcd.write(4);
  
  
for (int koht = 13; koht >= 4; koht--) {
lcd.setCursor(koht, 0);
lcd.write(7);
delay(400);
  }
delay(400);
}

5.2. DateTime (RTClib.h teeke kasutamine)

Ekraanile kuvatakse kuupäev ja kellaaeg

Ülesanne 5 Interaktiivne infoekraan ( termomeeter lsd ekraaniga (

Töö kirjeldus

LSD ekraanil näidatakse temperatuuri ja kirjutatakse näiteks: kuum, soe, külm. Lisa ka joonistus

Töö protsess

Temperatuuriandurilt loetakse temperatuur ja see näitab temperatuuri, kui kõrge või madal see on ja muster

Kasutatud komponeendid

  • Arduino UNO plaat (1tk)
  • Arendusplaat (1tk)
  • Juhtmed (15tk)
  • Termoandur(1tk)
  • Buzzer(1tk)
  • Takisti (1tk, 220Om)
  • LCD ekraan (1tk)

Skeem

Kood

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int temperaturePin = A1;

const char* temperatureStatus[] = {
  "temperatuur",
  "normaalne",
  "temperatuur",
  "madal",
  "temperatuur",
  "vaga madal",
  "temperatuur",
  "korge",
  "temperatuur",
  "vaga korge"
};

byte cloud[8] = {
 0b00000,
 0b10101,
 0b01110,
 0b11011,
 0b01110,
 0b10101,
 0b00000,
 0b00000
};

byte sun[8] = {
 0b00100,
 0b00000,
 0b10101,
 0b01110,
 0b10101,
 0b00000,
 0b00100,
 0b00000
};

byte snowflake[8] = {
 0b00100,
 0b10101,
 0b01110,
 0b11011,
 0b01110,
 0b10101,
 0b00100,
 0b00100
};

byte hot[8] = {
 0b00100,
 0b10001,
 0b01110,
 0b01010,
 0b01110,
 0b10001,
 0b00100,
 0b00000
};

byte veryHot[8] = {
 0b00100,
 0b10001,
 0b01110,
 0b11111,
 0b01110,
 0b10001,
 0b00100,
 0b00100
};

void setup() {
  lcd.begin(16, 2);
  
  lcd.createChar(0, sun);
  lcd.createChar(1, cloud);
  lcd.createChar(2, snowflake);
  lcd.createChar(3, hot);
  lcd.createChar(4, veryHot);
  
  Serial.begin(9600);
}

void loop() {
  int temperature = analogRead(temperaturePin);
  float celsius = map(temperature, 0, 1023, -40, 250);

  lcd.setCursor(0, 0);
  lcd.print(temperatureStatus[0]);

  lcd.setCursor(0, 1);
  if (celsius >= 25 && celsius <= 35) {
    lcd.print(temperatureStatus[1]);
    lcd.write((uint8_t)0);
  } else if (celsius >= 10 && celsius < 25) {
    lcd.print(temperatureStatus[3]);
    lcd.write((uint8_t)1);
  } else if (celsius < 10) {
    lcd.print(temperatureStatus[5]);
    lcd.write((uint8_t)2);
  } else if (celsius > 35 && celsius <= 50) {
    lcd.print(temperatureStatus[7]);
    lcd.write((uint8_t)3);
  } else if (celsius > 50) {
    lcd.print(temperatureStatus[9]);
    lcd.write((uint8_t)4);
  }
  
  lcd.print(" ");
  lcd.print(celsius);
  lcd.print((char)223); // символ градуса

  delay(800);
  lcd.clear();
}

Video

https://drive.google.com/drive/u/0/folders/1j6WpRfHEuwR4kQf80tgWWJB0ZbuAPIWR

Kus neid komponente kasutada?

LSD-ekraani kasutatakse graafilise või tekstilise teabe kuvamiseks arvutimonitorides (ka sülearvutites), telerites, telefonides, digitaalsetes fotoaparaatides, e-raamatutes, navigatsiooniseadmetes, tahvelarvutites, elektroonilistes tõlkijates, kalkulaatorites, kellades jne.

Uued funktsioonid

#include <LiquidCrystal.h> – Võimaldab suhelda tähtnumbriliste vedelkristallkuvaritega (LCD-d).
lcd.begin – Initsialiseerib LCD-ekraani liidese ja määrab ekraani mõõtmed (laius ja kõrgus)
lcd.createChar – LCD-l kasutamiseks kohandatud märgi (glyph) loomine
lcd.setCursor – Asetage LCD- kursor; see tähendab, et määrake asukoht, kus kuvatakse LCD- le kirjutatud tekst
lcd.print – Trükib teksti LCD-le