katse 5.1
Tulemuseks on liikuv pilt, kus poiss ja tüdruk üksteiseke südameid ja naerunägusid saadavad.
Komponendid: 1 x 1602 LCD ekraan
1 x potentsiomeeter
16 x tavalised üksikud isane-isane juhtmed
1 x 330 Ω takisti
Skeem:

// 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); }
katse 5.2
RTClib.h teeke installimine ja kasutamine
Kasutuskomponeendid:
Arduino Uno
Pildil on
Skeem:

Kood:
#include <Wire.h> #include <RTClib.h> RTC_DS3231 rtc; void setup() { Wire.begin(); Serial.begin(9600); rtc.begin(); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Используем время компиляции для установки RTC } void loop() { DateTime now = rtc.now(); Serial.println(now.timestamp()); // Выводим временную метку в монитор последовательного порта delay(1000); }
Foto:



Katse 5.3
Töö protsess:
Programm kuvab ekraanil emotikone ja muudab kuvatavat emotikone olenevalt potentsiomeetri asendist.
Komponendid:
1 lcd
17 juhet
2 takisti
1 potentsiomeeter
Arduino
Plaat
Skeem:

kood:
#include <LiquidCrystal.h> //liin ühendab raamatukogu LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //tähistab kontakte, millega signaalid on ühendatud byte smileys[4][8] = { {0b00000, 0b01010, 0b00000, 0b10001, 0b01110, 0b00000, 0b00000, 0b00000}, {0b00000, 0b01010, 0b01010, 0b00000, 0b01110, 0b10001, 0b00000, 0b00000}, {0b00000, 0b01110, 0b01010, 0b00000, 0b10001, 0b01110, 0b00000, 0b00000}, {0b00000, 0b00000, 0b01110, 0b01010, 0b00000, 0b10001, 0b01110, 0b00000} }; //baidimassiivid char smileyTexts[4][9] = { "Happy", "Cool", "Cute", "Funny" }; //sisaldab iga emotikoni tekstikirjeldust. Massiivi iga rida sisaldab märgimassiivi pikkusega 9, mis salvestab tekstikirjelduse int potPin = A0; // deklareerida muutujaid int currentSmileyIndex = 0; void setup() { //Funktsiooni sees määratakse ekraani suurus lcd.begin(16, 2); for (int i = 0; i < 4; i++) { // lcd.createChar(i + 1, smileys[i]); } } //ikl loob LCD-ekraanil kohandatud tähemärke. See kordab i väärtusi vahemikus 0 kuni 3 ja kutsub funktsiooni välja void loop() { int potValue = analogRead(potPin); int smileyIndex = map(potValue, 0, 1023, 0, 3); //funktsioon loop() käivitatakse tsüklina pärast seda, kui funktsioon setup() on lõppenud. See loeb väärtust potentsiomeetrilt if (smileyIndex != currentSmileyIndex) { currentSmileyIndex = smileyIndex; lcd.clear(); lcd.setCursor(0, 0); for (int i = 0; i <= currentSmileyIndex; i++) { lcd.write(i + 1); //kuvab ekraanil naeratuse sümboli. lcd.print(" "); //väljastab tühiku. //kuvab emotikoni kirjeldava teksti. lcd.print(smileyTexts[i]); delay(2000); // 2 sekundit viivitust lcd.setCursor(0, 0); //seab kursori tsükli järgmise iteratsiooni algusasendisse (0, 0). lcd.print(" "); // Liini puhastamine lcd.setCursor(0, 0); // очищает строку на дисплее. } } }
Reaalse elu rakendused:
Vedelkristallkuvarid on laialdaselt kasutusel graafilise või tekstilise teabe kuvamiseks mitmesugustes seadmetes nagu arvutimonitorid (sealhulgas sülearvutid), telerid, telefonid, digikaamerad, e-raamatud, navigaatorid, tahvelarvutid, elektroonilised tõlked, kalkulaatorid ja kellad.
Uued funktsioonid:
lcd.begin()
: LCD-ekraani algseadistusfunktsioon, mis määrab ekraani suuruse.lcd.createChar()
: Funktsioon, mis loob kohandatud tähemärgid (emotikonid) LCD-ekraanile.lcd.clear()
: Funktsioon, mis puhastab LCD-ekraani sisu.lcd.setCursor()
: Funktsioon, mis seab kursori LCD-ekraanil konkreetsele positsioonile.lcd.write()
: Funktsioon, mis kirjutab määratud tähemärgi (emotikoni) LCD-ekraanile.lcd.print()
: Funktsioon, mis kuvab teksti LCD-ekraanile.