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