// PROGRAM ZA SUŠILEC PERILA
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#define BTN_MAX 5
#define BTN_MED 6
#define BTN_MIN 7
#define BTN_AUTO 10
#define ENC_BTN 11
#define ENC_CLK 2
#define ENC_DT 3
void setup() {
// put your setup code here, to run once:
//Štart LCD
lcd.init();
lcd.backlight();
//nastavitev inputov in outputov
pinMode(BTN_MAX, INPUT_PULLUP); //Gumb za nastavitev moči na MAX
pinMode(BTN_MED, INPUT_PULLUP); //Gumb za nastavitev moči na MED
pinMode(BTN_MIN, INPUT_PULLUP); //Gumb za nastavitev moči na MIN
pinMode(BTN_AUTO, INPUT_PULLUP); //Gumb za preklop med AUTO/MAN
pinMode(ENC_BTN, INPUT_PULLUP); //Gumb rotacijskega enkoderja
pinMode(ENC_CLK, INPUT); //CLK gumb enkoderja
pinMode(ENC_DT, INPUT); //DT gumb enkoderja
attachInterrupt(digitalPinToInterrupt(ENC_CLK), readEncoder, FALLING);
}
int BTN_ENTER = 0;
int BTN_ENTER_old = 0;
int index_meni = 0;
int index = 0;
String tekst_meni[2]{"Glavni Meni","Nastavitve "};
void readEncoder() {
int dtValue = digitalRead(ENC_DT);
if (dtValue == HIGH) {
index ++;
if (index >1){
index = 0;
}
}
if (dtValue == LOW) {
index --;
if (index < 0){
index = 1;
}
}
}
void loop() {
// put your main code here, to run repeatedly:
BTN_ENTER = digitalRead(ENC_BTN);
if (BTN_ENTER == LOW && BTN_ENTER != BTN_ENTER_old){
lcd.setCursor(0,1);
lcd.print("BTN LOW");
}
else{
lcd.setCursor(0,1);
lcd.print("BTN HIGH");
}
//PROGRAM ZA IZBIRA MENIJA
switch (index_meni){
case 0:
Glavni_Meni();
break;
case 1:
Nastavitve();
break;
}
lcd.setCursor(0,2);
lcd.print(BTN_ENTER);
lcd.setCursor(0,3);
lcd.print("Index: ");
lcd.print(index);
BTN_ENTER_old = BTN_ENTER;
}
void Glavni_Meni(){
index_meni = index;
lcd.setCursor(0,0);
lcd.print(tekst_meni[index_meni]);
}
void Nastavitve(){
index_meni = index;
lcd.setCursor(0,0);
lcd.print(tekst_meni[index_meni]);
}