Katse LCD ekraani kasutamine:

kasutatud komponendid:
1 x 1602 LCD ekraan
1 x potentsiomeeter
16 x tavalised üksikud isane-isane juhtmed
1 x 330 Ω takisti
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}; 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); }
5.2. DateTime (RTClib.h teeke kasutamine)

kasutatud komponendid:
pole
Kood:
// lisame RTClib.h library #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); }
Ülesanne 5 Interaktiivne infoekraan «Ilmajaam»

kasutatud komponendid:
1 Arduino Uno R3
1 LCD 16 x 2
1 250kΩ Potentiometer
1 220Ω Resistor
Kood:
#include <LiquidCrystal.h> #include <RTClib.h> RTC_DS1307 rtc; const int POTENTIOMETER_PIN=0; const int rs=12, en=11, d4=5, d5=4, d6=3, d7=2; const int numRows=2; const int numCols=16; const byte customChar[8]={ B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111 }; const char chessboard1[numRows][numCols+1]={ " 0 0 0 0 0 0 0 0 ", "0 0 0 0 0 0 0 0 " }; const char chessboard2[numRows][numCols+1]={ "0 0 0 0 0 0 0 0 ", " 0 0 0 0 0 0 0 0" }; int potentiometerValue; float voltage; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); String StringList[5] = {"Hello world! ","Hello Vlad! ","Hello Bogdan! ","Tere paevast! ","Tere! "}; byte pickedIndex; String text; void displayChessboard(const char board[numRows][numCols + 1]) { lcd.clear(); for (int row = 0; row < numRows; row++) { lcd.setCursor(0, row); for (int col = 0; col < numCols; col++) { if (board[row][col] == '0') { lcd.write(byte(0)); } else { lcd.print(board[row][col]); } } } } void lcdClear1() { if ((voltage >= 0) && (voltage < 3)) { lcd.clear(); } } void lcdClear2() { if ((voltage >= 3) && (voltage <= 5)) { lcd.clear(); } } void setup() { rtc.begin(); rtc.adjust(DateTime(__DATE__, __TIME__)); lcd.begin(numCols, numRows); lcd.createChar(0, customChar); pinMode(POTENTIOMETER_PIN,INPUT); } void loop() { pickedIndex = random(5); text=StringList[pickedIndex]; int len=text.length(); potentiometerValue=analogRead(POTENTIOMETER_PIN); voltage=potentiometerValue*(5.0/1023.0); if ((voltage<=5) && (voltage>=3)) { lcd.clear(); for (int i = 0; i < len; i++) { 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()); lcd.clear(); lcd.setCursor(0, 0); lcd.print(dt); lcd.print(" "); lcd.print(tm); lcd.setCursor(0, 1); lcd.print(text); delay(500); text = text.substring(1, len) + text.substring(0, 1); } } else if ((voltage<=3) && (voltage>=0)) { delay(1000); displayChessboard(chessboard1); lcdClear2(); delay(1000); displayChessboard(chessboard2); lcdClear2(); } }
Uued funktsioonid:
- LiquidCrystal lcd(rs, en, d4, d5, d6, d7): Initsialiseerib LCD ekraani.
- lcd.begin(numCols, numRows): Seab LCD ekraani veergude ja ridade arvu.
- lcd.createChar(0, customChar): Loob LCD ekraanil kuvatava uue kohandatud tähemärgi.
- lcd.clear(): Kustutab kogu teksti LCD ekraanilt, jättes ekraani tühjaks.
- lcd.setCursor(column, row): Määrab kursori asukoha ekraanil, et järgmine tekst või sümbol kuvataks just sellest asukohast alates.
- lcd.write(byte): Kuvab ekraanil teatud positsioonil LCD-le eelnevalt defineeritud kohandatud tähemärgi.
- lcd.print(data): Prindib LCD ekraanile etteantud andmed. Andmed võivad olla teksti või numbrilised väärtused.