Katse 5

katse 5.1 LCD ekraani kasutamine

Töö kirjeldus:

Looda LCD ekraanil tegevus

Komponendid:

1602 LCD ekraan
potentsiomeeter
takisti 220 Om
Juhtmed 16 tk

Ühendus skeem:

Programm:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#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);
 
}

Foto:

LCD ekraanil muutub väärtused mis näitab liikumist ja muutmist

Ülesanne 5 Interaktiivne infoekraan

Töö kirjeldus:

Näita LCD ekraanil lause või seisukord väljas (temperatuur)

Komponendid:

Arduino Uno
Arendusplaat
Potentsioometr 1tk
LCD ekraan 1602
Temperatuuri andur TMP
Takisti 220 Om
Juhtmed 19 tk

Ühendus skeem:

https://www.tinkercad.com/things/gn3iX6S4EOP-daring-jaiks/editel?sharecode=0b0_s1dF4zzhvYc600tdORM15FMgxYidNqy5VeQP7I4

Seletus:

LCD ekraanil näitakse temperatuur vastavalt temperatuuri anduri tulemusest, kui temperatuuri andur loeb soe temperatuuri siis näitab LCD ekraanil on soe , päike ja rõõmus näö. Kui temperatuuri andur loeb külma temperatuuri siis näitab LCD ekraanil on külm, kuu ja kurb näö.

Programm:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <LiquidCrystal.h>
 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int temperaturePin = A0;
 
const char* myStrings[] = {
  "temperatuur",
  "on soe"
};
 
const char* coldStrings[] = {
  "temperatuur",
  "on kylm"
};
 
byte smiley[8] ={
  0b00000,
  0b00000,
  0b01010,
  0b00000,
  0b00000,
  0b10001,
  0b01110,
  0b00000};
 
byte sadface[8] = {
    0b00000,
    0b01010,
    0b00000,
    0b00000,
    0b00000,
    0b00000,
    0b01110,
    0b10001
};
 
byte sunSymbol[8] = {
    0b10101,
    0b01110,
    0b01110,
    0b11111,
    0b11111,
    0b01110,
    0b01110,
    0b10101
};
 
byte moonSymbol[8] = {
  0b00000,
  0b00100,
  0b01110,
  0b01110,
  0b01110,
  0b00100,
  0b00000,
  0b00000
};
 
void setup() {
  lcd.begin(16, 2);
  lcd.createChar(0, smiley);
  lcd.createChar(1, sadface);
  lcd.createChar(2, sunSymbol);
  lcd.createChar(3, moonSymbol);
   
  Serial.begin(9600);
}
 
void loop() {
  int temperature = analogRead(temperaturePin);
  float celsius = map(temperature, 0, 1023, -40, 250);   
 
  lcd.setCursor(0, 0);
  lcd.print(myStrings[0]); // "temperatuur" kuvamine esimesel real
 
  lcd.setCursor(0, 1);
  if (celsius > 22) {
    lcd.print(myStrings[1]); // Kuva "soe" teisel real, kui see on kuum
    lcd.write((uint8_t)2); // Päikese sümboli kuvamine
    lcd.write((uint8_t)0); // Naeratava näo kuvamine
  } else {
    lcd.print(coldStrings[1]); // Külma korral näidatakse "kylm" teisel real
    lcd.write((uint8_t)3); // Kuu sümboli kuvamine
    lcd.write((uint8_t)1); // Kurva näo kuvamine
  }
   
  // Prindime temperatuuri ja heleduse väärtused serial monitorile
  Serial.print("Temperature: ");
  Serial.print(celsius);
  Serial.println("C"); 
 
  delay(1000); // Temperatuurikontrollide vaheline viivitus - 1 sekund
  lcd.clear();
     
}

Video:

https://drive.google.com/drive/folders/1QIIOFeZJeWjZsU1fwYtt2furDs4VmduP?usp=share_link

Kus võib seda kasutada

Nutitelefon
Sülearvuti
Televisoorid
Videokassettmagnetofon
Mp3 pleer

Uued funktsioonid:

lcd.write((uint8_t)2); uint8_t universaalne vorm pöörama objektile, siis võtakse milline objekti number, mis oli määratud setup-s.