Katse 5. LCD ekraan

Skeem:

katse6_LCD

Ekraani ühendamine ja teksti kuvamine 1602 LCD ekraanil

Komponeendid:

Arduino UNO plaat (1tk)
Arendusplaat (1tk)
1602 LCD ekraan (1tk)
Potentsiomeeter (1tk)
tavalised üksikud isane-isane juhtmed (16tk)
330 Ω takisti (1tk)

—————————————Kood—————————————

// 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};

voidsetup() {

// 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);

}

voidloop() {

// 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(intkoht = 0; koht < 10; koht++) {

lcd.write(1);

delay(400);

}

lcd.setCursor(13, 1);

lcd.write(4);

//loobime südameid

for(intkoht = 13; koht >= 4; koht--) {

lcd.setCursor(koht, 0);

lcd.write(7);

delay(400);

  }

delay(400);

}

—————————————————————————————

5.2. DateTime (RTClib.h teeke kasutamine)

Skeem:

RTClib.h teeke installimine ja kasutamine

Komponeendid:

Arduino UNO plaat (1tk)

—————————————Kood—————————————

// lisame RTClib.h library

#include <Wire.h>

#include <RTClib.h>

RTC_DS1307 rtc;

voidsetup ()

{

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__));

}

}

voidloop () {

DateTime now = rtc.now();

chardt[10];

chartm[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);

}

—————————————————————————————

Ülesanne 5 Interaktiivne infoekraan «Ilmajaam»

Ühendamise skeem:

Komponeendid:

Arduino UNO plaat (1tk)
Arendusplaat (1tk)
1602 LCD ekraan (1tk)
Potentsiomeeter (1tk)
Juhtmed (16tk)
220 Ω takisti (1tk)

Video:

https://youtube.com/watch?v=dWFHoWDykXA%3Ffeature%3Doembed

Töö protsess:
Ekraan töötab sõltuvalt potentsiomeetri asendist ja näitab ekraanil aega.

Reaalsed rakendused:

Vedelkristallkuvarid on laialdaselt kasutusel graafilise või tekstilise teabe kuvamiseks mitmesugustes seadmetes, nagu arvutimonitorid (sh sülearvutid), televiisorid, telefonid, digikaamerad, navigaatorid, tahvelarvutid, elektroonilised tõlkeseadmed, kalkulaatorid ja kellad.

—————————————Kood—————————————

#include <LiquidCrystal>
lcd(12,11,5,4,3,2);
int h=15;
int m=59;
int s=48;
int flag;
int TIME;
const int hs=8;
const int ms=9;
const int POTENTIOMETER_PIN=0;

int state1;
int state2;
void setup()
{
lcd.begin(16,2);
}
void loop()
{
lcd.setCursor(0,0);
s=s+1;
lcd.print("TIME:");
lcd.print(h);
lcd.print(":");
lcd.print(m);
lcd.print(":");
lcd.print(s);
if(flag<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM");
if(flag==24)flag=0;
delay(1000);
lcd.clear();
if(s==60){
s=0;
m=m+1;
}
if(m==60)
{
m=0;
h=h+1;
flag=flag+1;
}
if(h==13)
{
h=1;
}
lcd.setCursor(0,1);
lcd.print("HAVE A NICE DAY");
//-------Time
// setting-------//
state1=digitalRead(hs);
if(state1==1)
{
h=h+1;
flag=flag+1;
if(flag<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM");
if(flag==24)flag=0;
if(h==13)h=1;
}
state2=digitalRead(ms);
if(state2==1){
s=0;
m=m+1;
}
}

—————————————————————————————

Uued funktsioonid:

#include <LiquidCrystal.h> - Включает библиотеку LiquidCrystal, которая предоставляет функции для работы с жидкокристаллическими дисплеями (LCD)

lcd.setCursor(0,0); - Устанавливает курсор LCD в позицию (0,0). Первое значение - Номер столбца, а второе значение - номер строки.

lcd.print("TIME:"); - Выводит текст "TIME:" на LCD, начиная с определенной позиции

lcd.clear(); - очищает содержимое LCD