5.1 Katse LCD ekraani kasutamine
LCD ekraan on valge LED-taustavalgustusega tumesinine ekraan, mis koosneb kahest 16 tähemärgiga reast, kokku 32 tähemärki. Kõigi märkide eraldusvõime on 8 x 5 punkti.

Ülesanne 5 Interaktiivne infoekraan «Ilmajaam»
В жизни подобный экран можно встретить много где, например на микроволновке, стиральной машине и на других устройствах в которых выводится небольшое количества текста для удобства использования прибора
С помощью функции byte arrow[8] можно рисовать пиксели на клетке LCD экрана и использовать уже внутри кода для оформления
приписка lcd. выводит на экран заданную функцию
в моей работе используется 23 провода, 2 резистора 220 и один 10к, потенциометр, датчик температуры и фоторезистор

видео: https://drive.google.com/file/d/1XGTEg-pZeErIbP7pG8qcOlkwrr_9bSup/view?usp=sharing
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
char* myStrings[] = {"Bye user", "Hello user!!", "Day", "Night"};
byte arrow[8] ={0b11000,0b01100,0b00110,0b00011,0b00011,0b00110,0b01100,0b11000};
byte cross[8] = {0b10001,0b01010,0b01010,0b00100,0b00100,0b01010,0b01010,0b10001};
byte sad[8] = {0b00000,0b11011,0b11011,0b00000,0b00000,0b01110,0b10001,0b10001};
byte good[8] = {0b00000,0b11011,0b11011,0b00000,0b00000,0b10001,0b10001,0b01110};
const int Potepin = A5;
const int tempSensorPin = A0;
const int LightSensorPin = A1;
int Value;
int i=1;
void setup(){
lcd.begin(16, 2);
lcd.createChar(1, arrow);
lcd.createChar(2, cross);
lcd.createChar(3, sad);
lcd.createChar(4, good);
}
void loop(){
float temperatureC = readTemperature(tempSensorPin);
int lightLevel = analogRead(LightSensorPin);
Value=analogRead(Potepin);
Value=map(Value,0,1023,1,6);
Value=constrain(Value,1,6);
if (Value==1) {
for(int j=0;j<2;j++){
for(int i=0;i<16;i++) {
lcd.setCursor(i,0);
lcd.write(2);
delay(100);
}
lcd.clear();
delay(500);
}
}
else if (Value==2) {
lcd.setCursor(0, 0);
lcd.println(myStrings[0]);
lcd.write(3);
delay(500);
lcd.clear();
}
else if (Value==3) {
lcd.setCursor(0, 0);
if (lightLevel < 500)
{
lcd.println(myStrings[2]);
}
else
{
lcd.println(myStrings[3]);
}
delay(500);
lcd.clear();
}
else if (Value==4) {
lcd.setCursor(0, 0);
lcd.print("Temperature: ");
lcd.print(temperatureC);
lcd.print(" C");
delay(500);
lcd.clear();
}
else if (Value==5) {
for(int i=0;i<16;i++) {
lcd.setCursor(i,0);
lcd.write(1);
delay(100);
lcd.clear();
}
}
else if (Value==6) {
lcd.setCursor(0, 0);
lcd.println(myStrings[1]);
lcd.write(4);
delay(500);
lcd.clear();
}
}
float readTemperature(int pin) {
int sensorValue = analogRead(pin);
float voltage = sensorValue * (1.7 / 1023.0);
float temperatureC = voltage * 100.0;
return temperatureC;
}