KATSE 5
Projekti koostamiseks läheb vaja:
1 x 1602 LCD ekraan
1 x potentsiomeeter
16 x tavalised üksikud isane-isane juhtmed
1 x 330 Ω takisti
Ühendamine:
Tulemuseks on liikuv pilt, kus poiss ja tüdruk üksteiseke südameid ja naerunägusid saadavad.

// 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
Kasutuskomponeendid:
Arduino Uno
Pildil on

// 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); }
ULESANNE 5
Ilmajaam
Mõelge välja oma jaama nimetus ja kuvage ekraanil jaama töö käitumises.
Mõelge välja töö protsess ja mis andurei kasutatakse.
Näiteks olenevalt temperatuurist kuvatakse hetke temperatuur ja sobiv pilt. (Kasutage vähemalt 5 lauset ja 5 pilti)
Laused ja pildid vahetatakse ajaliselt või anduritelt saadud infost sõltuvalt.
Piltide loomiseks on abiks näiteks selline lehekülg: https://omerk.github.io/lcdchargen/.
Lisage jaamasse kell.
Saab ka lisada mingi reklaam
KOMPONENDID:
27 juhet,
1 potentsiomeeter,
1 temperatuuriandur,
1 takisti 220 oomi,
1 lcd ekraan

See näitab ruumi temperatuuri ja kuvab selle ekraanil!
#include <LiquidCrystal.h> int sensorPin = 0; int sensorValue = 0; int Value_new; int pot = A0; int poten = A1; float result = 0.0; LiquidCrystal lcd(12, 11, 5, 4, 3, 2); float temp; String name = "Tere!"; byte v2ikesyda[8] ={0b00000,0b00000,0b00000,0b11011,0b11111,0b11111,0b01110,0b00100}; void setup() { Serial.begin(9600); pinMode(pot, INPUT); lcd.begin(16, 2); lcd.print("Hello! Great day"); lcd.createChar(0, v2ikesyda); } void tere() { lcd.setCursor(0,0); lcd.clear(); lcd.print(name); for(int i =0; i<16-name.length(); i++) { lcd.scrollDisplayRight(); delay(200); } lcd.clear(); lcd.setCursor(15-name.length(),1); lcd.print(name); for(int j =1; j<16-name.length(); j++) { lcd.scrollDisplayLeft(); delay(200); } lcd.clear(); } void temper(){ lcd.setCursor(15,1); lcd.write(8); temp=-40 + 0.488155 * (analogRead(pot) - 20); lcd.setCursor(0, 1); lcd.print("temp="); lcd.print(temp); } void loop() { Value_new = analogRead(sensorPin); Serial.print(Value_new); Value_new = map(Value_new, 0, 1023, 1, 2); if (Value_new == 1) { temper(); Serial.println("Calling temper()"); } else if (Value_new == 2) { Serial.println("Calling tere()"); tere(); } }
Koodi kirjutamisel tekkis paar probleemi, näiteks: režiimi muutmine potentsiomeetri abil
\
ka link meie tegemistele
#include <LiquidCrystal.h> — Эта библиотека предоставляет функции и методы для работы с ЖК-дисплеями (LCD)
lcd.print — используется для отображения текста или чисел на ЖК-дисплее (LCD)
lcd.write(); — используется для вывода байтов на ЖК-дисплей (LCD)
lcd.setCursor(koht, 0); — устанавливает курсор в конкретное место на ЖК-дисплее (LCD)
lcd.scrollDisplayLeft() — используется для прокрутки содержимого ЖК-дисплея (LCD) влево
lcd.scrollDisplayRight(); — используется для прокрутки содержимого ЖК-дисплея (LCD) вправо
#include <Wire.h> — Библиотека Wire обеспечивает поддержку интерфейса I2C (Inter-Integrated Circuit), который является широко используемым протоколом связи в электронике. I2C позволяет передавать данные между различными устройствами по двум проводам: SDA (Data) и SCL (Clock)
#include <RTClib.h> — подключает библиотеку RTClib к вашему скетчу. RTClib предоставляет функциональность для работы с реальными часами