#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define I2C_COLUMNS 16
#define I2C_ROWS 2
#define koda1 777111
#define koda2 777333
#define koda3 777330
#define koda4 777444
int LED3 = 3;
int LED4 = 4;
int blinkTime = 300;
bool led3_on = LOW;
bool led4_on = LOW;
bool blinking4 = false;
unsigned long changeTime;
LiquidCrystal_I2C lcd(I2C_ADDR, I2C_COLUMNS, I2C_ROWS);
void setup() {
Serial.begin(9600);
Serial.println("Vpisi kodo:");
lcd.init();
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
}
void loop() {
if(Serial.available()){
char vpis[6];
int stevilo_znakov = Serial.readBytes(vpis, 6);
if(stevilo_znakov == 6){
vpis[6] = '\0';
int stevilka = atol(vpis);
lcd.clear();
lcd.setCursor(0,0);
switch(stevilka){
case koda1:
led3_on = !led3_on;
if(led3_on == HIGH){
lcd.print("LED3 vklop");
}
else{
lcd.print("LED3 izklop");
}
digitalWrite(LED3, led3_on);
break;
case koda2:
blinking4 = true;
lcd.print("LED4 utripa");
break;
case koda3:
blinking4 = false;
led4_on = LOW;
digitalWrite(LED4, LOW);
lcd.print("LED4 izklop");
break;
case koda4:
lcd.print("LED4 utripa 10x");
for(int i = 0; i < 20; i++){
utripanje();
delay(blinkTime + 5);
}
led4_on = LOW;
digitalWrite(LED4, LOW);
break;
default:
Serial.println("Napaka, ponovni vnos.");
break;
}
}
}
if(blinking4){
utripanje();
}
}
void utripanje(){
if((millis() - changeTime) > blinkTime){
led4_on = !led4_on;
changeTime = millis();
digitalWrite(LED4, led4_on);
}
}