Anton Buivol õpimapp / portfoolio

en_USru_RU

Katse 5

LCD ekraani kasutamine

// 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);

} 

Interaktiivne infoekraan

Töö kirjeldus:

Ekraan, millele kirjutab potentsiomeetri abil päev, öö. Kui ekraanil “Päev” on hele, pimedal ajal “Öö” ja siis tuleb sisse lülitada “Vaja on lampi keerata”.

Komponendid:

Arudino Uno
Takisti (2)(330 Om ja 10kOm)
Juhtmed (19)
Potentsiomeetr
Valgustakisti
LCD ekraan 16×2

https://www.tinkercad.com/things/6tc05W3103S?sharecode=id2_tXf6THvyBrdtrXpiKdCSGhDTjd3DlVxOq3X2VEE

Tööpõhimõte:

LCD-ekraan, millele ilmuvad pealdised päev, öö, peate lambi sisse lülitama. Need pealdised sõltuvad fototakistist, kui ekraanile on kirjutatud päev valgus “Päev” ja päike paistab alt, pimeduse korral kirjutatakse ekraanile öö ja alt ilmuvad kuud, pärast seda kirjutatakse ekraanile. ekraan lambi sisselülitamiseks “Need turn lamp” (sõna Vaja on väga nõrgalt näha) ja alt ilmuvad lambid.

Kuidas seda kasutada saab?

Seda saab kasutada valgussensorina, mis näitab, kui ruum on liiga hämar ja tuleb valgus sisse lülitada.

Programm:

 #include <LiquidCrystal.h>


int sensorPin = 0;
int lightLevel, high = 0, low = 1023;


// initialize the library
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte night[8] = {0b00000,0b00111,0b01100,0b11000,0b11000,0b01100,0b00111,0b00000};


byte lamp[8] ={0b01110,0b00100,0b11111,0b11111,0b10001,0b10101,0b11111,0b11111};

byte sun[8] = {0b00000,0b01110,0b11111,0b11111,0b11111,0b01110,0b00000,0b00000};

const char* myStrings[]={"Night       ", "Day        ","Need turn lamp "};

void setup() 
{
  lcd.begin(16, 2);
  lcd.createChar(1, night);
  lcd.createChar(2, lamp);
  lcd.createChar(3, sun);
  Serial.begin(9600);
}

void loop()
{
  lightLevel = analogRead(sensorPin);
  lightLevel = map(lightLevel, 300, 800, 0, 255);
  lightLevel = constrain(lightLevel, 0, 255);
  Serial.print(lightLevel);
  Serial.println("");

  if(lightLevel>=10)
  {
    lcd.setCursor(5, 0);
    lcd.println(myStrings[1]);
    for (int i = 3; i <= 10; i++)
    {
      lcd.setCursor(i, 1);
      lcd.write(3);
      delay(300);
    }
    lcd.clear();
  }
  else if(lightLevel<10)
  {
    lcd.setCursor(5, 0);
    lcd.println(myStrings[0]);
    for (int i = 3; i <= 10; i++)
    {
      lcd.setCursor(i, 1);
      lcd.write(1);
      delay(300);
    }
    lcd.clear();


    lcd.setCursor(1, 0);
    lcd.println(myStrings[2]);
    for (int i = 3; i <= 10; i++)
    {
      lcd.setCursor(i, 1);
      lcd.write(2);
      delay(300);
    }
    lcd.clear();
  }
}