Интерактивный информационный экран «Метеостанция»



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 предоставляет функциональность для работы с реальными часами