/*
NALOGA 1)
Napiši program, ki bere niz znakov (3 znake) iz serijskega porta. Uporaba switch-case stavka prinese (1 toÄko).
- če je znakov več ali manj kot 3, naj se na serijskem portu izpiše: "Napaka, ponovni vnos." (1 toÄka)
- Ob prvem nizu znakov 111, se prižge LED3, ki je priključena na pin 3. (1 toÄka)
- Ob drugem nizu znakov 111, se ugasne LED3, ki je priključena na pin 3. (1 toÄka).
- če niz znakov ustreza številki 333, začne utripati LED4, ki je priključena na pin 5. (1 toÄka)
Za utripanje uporabi funkcijo millis().
- Ob drugem nizu znakov 333, ugasnemo LED4, ki je prikljuÄena na pin 5. (1 toÄka)
- Za utripanje LED uporabi funkcijo void npr. void utripanje, s funkcijo millis ... (1 toÄka)
- če niz znakov ustreza številki 444, LED4 dioda 10 x utripne, uporabi isto funkcijo void utripanje. (2 toÄki)
- Priključi LCD display I2C, ki izpisuje posamezna stanja: npr. LED3 vklop, LED3 izklop, LED4 utrip, LED4 izklop (1 toÄka)
- če je niz znakov aaa, se izpiše na displayu in na serijskem portu napis "konec" (1 toÄka)
*/
#define led_3_on 111
#define led_3 3
bool Led_3_State = false;
#define led_4_blink 333
#define led_4 5
bool Led_4_blink_State = false;
unsigned long trenutniCas;
int zakasnitev = 500;
unsigned long prejsnjiCas = 0;
int led_state = LOW;
void setup() {
Serial.begin(115200);
Serial.println("Vpisi niz stevil: ");
pinMode(led_3, OUTPUT);
pinMode(led_4, OUTPUT);
}
void loop() {
if (Serial.available()) {
char vpis[4];
int steviloZnakovVpisa = Serial.readBytes(vpis, 3);
if (steviloZnakovVpisa == 3) {
vpis[3] = '\0';
int stevilka = atoi(vpis);
switch(stevilka) {
case led_3_on:
if(Led_3_State == false){
Serial.println("sveti");
digitalWrite(led_3, HIGH);
Led_3_State = true;
} else{
Serial.println("ne sveti");
digitalWrite(led_3, LOW);
Led_3_State = false;
}
break;
case led_4_blink:
if (Led_4_blink_State == false) {
Led_4_blink_State = true;
} else {
Led_4_blink_State = false;
digitalWrite(led_4, LOW);
}
break;
default: /* ce je vec kot tri znaki*/
Serial.println("Napaka, ponovni vnos.");
while (Serial.available()) {
Serial.read();
}
break;
}
} else {
Serial.println("Napaka, ponovni vnos.");
while (Serial.available()) {
Serial.read();
}
}
}
if (Led_4_blink_State) {
unsigned long trenutniCas = millis();
if (trenutniCas - prejsnjiCas >= zakasnitev) {
prejsnjiCas = trenutniCas;
if (led_state == LOW) {
led_state = HIGH;
} else {
led_state = LOW;
}
digitalWrite(led_4, led_state);
}
}
}