Практическая работа 5 LCD экран

LCD экран

LCD экран (жидкокристаллический дисплей) — это тип экранной технологии, использующей жидкости и кристаллы для отображения изображений и текста. LCD экраны легкие, тонкие и энергоэффективные, поэтому они широко используются в различных устройствах, таких как компьютеры, телевизоры, мобильные телефоны и другие электронные устройства.

Принцип работы LCD экрана основан на свойстве жидких кристаллов изменять свою прозрачность при воздействии электрического поля. Экран состоит из нескольких слоев, включая подсветку, поляризующие фильтры и жидкие кристаллы. Подсветка создает свет, который проходит через поляризующие фильтры и жидкие кристаллы, чтобы сформировать желаемое изображение.

LCD экраны известны своей четкостью изображения и низким потреблением энергии. У них также меньше подвижных частей, что делает их более долговечными и надежными по сравнению с более старыми технологиями, такими как ЭЛТ (катодные трубки). Качество LCD экранов и точность цветов также улучшились, что делает их популярным выбором для различных приложений.

Отображение текста на LCD экране / Подключение экрана и отображение текста на 1602 LCD экране

Компоненты:

1 x 1602 LCD экран
1 x потенциометр
16 x обычных одиночных проводов мужского типа
1 x 330 Ω резистор

Подключение:

Результатом будет движущаяся картинка, где мальчик и девочка обмениваются сердечками и смайликами.

Пример кода:

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

}

Установка и использование библиотеки RTClib.h

Используемые компоненты:

Arduino Uno

На изображении показано

Код:

#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);
}

Teeke installimine:

Ülesanne 5 Interaktiivne infoekraan «Ilmajaam»

Komponendid:

1 arduino plaat

17 juhet

2 takisti

1 lüliti

1 LCD ekraan

Kood:

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

Компоненты:

1 плата Arduino

17 проводов

2 резистора

1 переключатель

1 LCD экран

Код:

#include <LiquidCrystal.h>


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

char* myStrings[]={"Vaga kulm", "natuke kulm", "normaalne", "soe", "vaga soe"};

int sensorValue;

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

byte plus[8] = {
    0b00000,
    0b00000,
    0b00100,
    0b00100,
    0b11111,
    0b00100,
    0b00100,
    0b00000
};

byte odin[8] = {
    0b00000,
    0b00010,
    0b00110,
    0b01010,
    0b00010,
    0b00010,
    0b00010,
    0b00000
};

byte nol[8] = {
    0b00000,
    0b00000,
    0b00110,
    0b01001,
    0b01001,
    0b01001,
    0b00110,
    0b00000
};

byte pjat[8] = {
    0b00000,
    0b01110,
    0b01000,
    0b01110,
    0b00010,
    0b00010,
    0b01110,
    0b00000
};

byte c[8] = {
    0b00000,
    0b00110,
    0b01000,
    0b01000,
    0b01000,
    0b01000,
    0b00110,
    0b00000
};

byte a[8] = {
    0b11100,
    0b10100,
    0b11100,
    0b00000,
    0b00000,
    0b00000,
    0b00000,
    0b00000
};

void setup() {

lcd.begin(16, 2);

lcd.createChar(1, minus);

lcd.createChar(2, plus);

lcd.createChar(3, odin);

lcd.createChar(4, nol);

lcd.createChar(5, pjat);

lcd.createChar(6, c);

lcd.createChar(7, a);

}

void loop() {

sensorValue = analogRead(A5); // Считываем значение с аналогового пина A0

sensorValue = map(sensorValue, 0, 1023, 1, 7);

  if (sensorValue==1){
    lcd.clear();
    lcd.setCursor(2, 0);
    lcd.write(1);
    lcd.setCursor(3, 0);
    lcd.write(5);
    lcd.setCursor(4, 0);
    lcd.write(4);
    lcd.setCursor(5, 0);
    lcd.write(6);
    lcd.setCursor(6, 0);
    lcd.write(7);
    lcd.setCursor(7, 1);
    lcd.println(myStrings[0]);
    delay(500);
}
else if (sensorValue==2){

   lcd.clear();
    lcd.setCursor(2, 0);
    lcd.write(1);
    lcd.setCursor(3, 0);
    lcd.write(3);
    lcd.setCursor(4, 0);
    lcd.write(5);
    lcd.setCursor(5, 0);
    lcd.write(6);
    lcd.setCursor(6, 0);
    lcd.write(7);
    lcd.setCursor(5, 1);
    lcd.println(myStrings[1]);

    delay(500);

  }

  else if (sensorValue==3){

   lcd.clear();
    lcd.setCursor(2, 0);
    lcd.write(4);
    lcd.setCursor(3, 0);
    lcd.write(6);
    lcd.setCursor(4, 0);
    lcd.write(7);
    lcd.setCursor(7, 1);
    lcd.println(myStrings[2]);

    delay(500);

  }

  else if (sensorValue==4){

   lcd.clear();
    lcd.setCursor(2, 0);
    lcd.write(2);
    lcd.setCursor(3, 0);
    lcd.write(3);
    lcd.setCursor(4, 0);
    lcd.write(5);
    lcd.setCursor(5, 0);
    lcd.write(6);
    lcd.setCursor(6, 0);
    lcd.write(7);
    lcd.setCursor(13, 1);
    lcd.println(myStrings[3]);

    delay(500);

  }

  else if (sensorValue==5){

   lcd.clear();
    lcd.setCursor(2, 0);
    lcd.write(2);
    lcd.setCursor(3, 0);
    lcd.write(5);
    lcd.setCursor(4, 0);
    lcd.write(4);
    lcd.setCursor(5, 0);
    lcd.write(6);
    lcd.setCursor(6, 0);
    lcd.write(7);
    lcd.setCursor(8, 1);
    lcd.println(myStrings[4]);

    delay(500);

  }
}

Видео: