#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int ledPin = 3;
const int ledUtripPin = 4;
unsigned long zadnjeStanjeLED = 0;
bool utripanje = false;
bool ledStanje = false;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(ledUtripPin, OUTPUT);
Serial.begin(9600);
Serial.println("Vnesi kodo: ");
lcd.init();
lcd.backlight();
}
void loop() {
if (Serial.available()) {
String vnos = Serial.readStringUntil('\n');
if (vnos.length() != 6) {
Serial.println("Napaka, ponovni vnos");
lcd.clear();
lcd.print("Napaka vnosa");
}
else {
vnasanje(vnos);
}
}
if (utripanje) {
utripnila();
}
}
void vnasanje(String vnos) {
if (vnos == "777111") {
if (!ledStanje) {
digitalWrite(ledPin, HIGH);
lcd.clear();
lcd.print("LED vklop");
utripanje = false;
ledStanje = true;
} else {
digitalWrite(ledPin, LOW);
lcd.clear();
lcd.print("LED izklop");
utripanje = false;
ledStanje = false;
}
} else if (vnos == "777333") {
utripanje = true;
lcd.clear();
lcd.print("LED utrip");
digitalWrite(ledUtripPin, LOW);
} else if (vnos == "777330") {
utripanje = false;
digitalWrite(ledUtripPin, LOW);
lcd.clear();
lcd.print("LED izklop utripanja");
} else if (vnos == "777444") {
utripanje = false;
for (int i = 0; i < 10; i++) {
digitalWrite(ledUtripPin, HIGH);
delay(300);
digitalWrite(ledUtripPin, LOW);
delay(300);
}
lcd.clear();
lcd.print("LED utrip 10x");
}
}
void utripnila() {
unsigned long trenutneMillis = millis();
if (trenutneMillis - zadnjeStanjeLED >= 500) {
zadnjeStanjeLED = trenutneMillis;
ledStanje = !ledStanje;
digitalWrite(ledUtripPin, ledStanje);
}
}