#include <LiquidCrystal.h>
#define led 6
#define ON 777111
#define OFF 777222
#define UTRIP 777333
#define UTRIP10 777444
LiquidCrystal lcd(12,11,10,9,8,7);

unsigned long trenutniCas;
int zakasnitev = 500;

unsigned long prejsnjiCas = 0;  
bool blinkState = false;        

void setup() {
  Serial.begin(115200);
  lcd.begin(16,2);
  Serial.println("Vpisi kodo: ");
  pinMode(led, OUTPUT);
}

void loop() {
  static bool blink = false;
  if (Serial.available()) {
    char vpis[7];
    int steviloZnakovVpisa = Serial.readBytes(vpis, 6);
    if (steviloZnakovVpisa == 6) {
      vpis[6] = '\0';
      int stevilka = atoi(vpis);
      switch (stevilka) {
        case ON:
          Serial.println("ON");
          digitalWrite(led, HIGH);
          lcd.print("LED ON");
          lcd.setCursor(0,0);
          blink = false;
          break;
        case OFF:
          Serial.println("OFF");
          lcd.print("LED OFF");
          lcd.setCursor(0,0);
          digitalWrite(led, LOW);  
          blink = false;
          break;
        case UTRIP:
          Serial.println("UTRIP");
          lcd.print("LED UTRIP");
          lcd.setCursor(0,0);
          blink = true;
          break;

        case UTRIP10:
          Serial.println("UTRIP 10x");
          lcd.print("LED UTRIP 10x");
          lcd.setCursor(0,0);
          utripanje();
          break;
        default:
          Serial.println("Poskusi ponovno: ");
          while (Serial.available()) {
            Serial.read();
          }
          break; 
      }
    }
  }


  if (blink) {
    unsigned long trenutniCas = millis();
    if (trenutniCas - prejsnjiCas >= zakasnitev) {
      prejsnjiCas = trenutniCas;
      blinkState = !blinkState;
      digitalWrite(led, blinkState ? HIGH : LOW);
    }
  }


}
void utripanje(){
  for (int i = 0; i<10; i++){
    digitalWrite(led, HIGH);
    delay(300);
    digitalWrite(led, LOW);
    delay(300);
  }
}


/*
#define btn1 4
#define btn2 5

void setup() {
  Serial.begin(115200);
  pinMode(btn1, INPUT_PULLUP);
  pinMode(btn2, INPUT_PULLUP);
}

void loop() {
  static int stevec = 0;
  if(!digitalRead(btn1)){
    stevec++;
    Serial.println(stevec);
    delay(300);
  }
  if(!digitalRead(btn2)){
    stevec = 0;
    Serial.println(stevec);
    delay(300);
  }

}

*/