#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C adresa a rozmery LCD (16 stĺpcov, 2 riadky)
int potenciometerPin = A0; // Pin pre pripojenie potenciometra
float napatie =0;
float lastNapatie=0;
byte arrowL[] = {
B01000,
B00100,
B00010,
B11111,
B11111,
B00010,
B00100,
B01000
};
byte arrowP[] = {
B00010,
B00100,
B01000,
B11111,
B11111,
B01000,
B00100,
B00010
};
byte nothing[] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000
};
void setup() {
lcd.init(); // Inicializácia LCD
lcd.backlight(); // Zapnutie podsvietenia
lcd.createChar(0, arrowL);
lcd.createChar(1, arrowP);
lcd.createChar(2, nothing);
lcd.setCursor(0, 0); // Nastavenie pozície kurzoru na prvý riadok
lcd.print("Napatie: ");
}
void loop() {
int hodnotaSenzoru = analogRead(potenciometerPin); // Čítanie hodnoty na pine A0
napatie = (float)hodnotaSenzoru * (5.0 / 1023.0); // Prevod analogovej hodnoty na napätie (0-5V)
lcd.setCursor(9, 0); // Nastavenie pozície kurzoru na prvý riadok
lcd.print(napatie, 2); // Zobrazenie napätia s 2 desatinnými miestami
lcd.setCursor(14, 0); // Nastavenie pozície kurzoru na druhý riadok
lcd.print("V");
if (napatie > lastNapatie) {
int i= 0;
while(i < 16) { //cyklus vykresluje sipky zlava doprava
lcd.setCursor(i, 1); //kurzor i-stlpec, 1 riadok
lcd.write(0);
//vykreslenie sipky
delay(200); // cas zobrazenia sipky
lcd.setCursor(i, 1); //kurzor i-stlpec, 1 riadok
lcd.write(2);
i++ ;
//vykreslenie prazneho znaku
}
}
lastNapatie=napatie; //ulozenie aktualneho napatia
delay(1000); // Oneskorzenie medzi aktualizáciami
}