/*
Napiši program, ki prebere niz znakov iz serijskega porta(n števke).
Če niz znakov ustreza kombinaciji:
- 5461 se izpiše (vklop LED1) in prižge LED1
- 5460 se izpiše (izklop LED1) in ugasne LED1
- 1234 se izpiše (vklop LED2) in prižge LED2
- 5461 se izpiše (izklop LED2) in ugasne LED2
Uporabi switch case stavek
Za funkcijo LED3 uporabi funkcijo millis()
*/
#define LED1 8
#define LED2 9
#define LED3 10
#define KODA1_on 5461
#define KODA1_off 5460
#define KODA2_on 1234
#define KODA2_off 1230
#define KODA3_on 4545
#define KODA3_off 4540
void setup() {
Serial.begin(9600);
Serial.println("Vpiši kodo:");
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
}
void loop() {
static bool i = false;
if(Serial.available()){
char vpis[5];
int steviloZnakovVpis = Serial.readBytes(vpis, 4);
if(steviloZnakovVpis == 4){
vpis[4] = '\0'; // terminator seznama vpis
int stevilka = atoi(vpis);
switch(stevilka) {
case KODA1_on:
Serial.println("LED1 vklop");
digitalWrite(LED1, HIGH);
break;
case KODA1_off:
Serial.println("LED1 izklop");
digitalWrite(LED1, LOW);
break;
case KODA2_on:
Serial.println("LED2 vklop");
digitalWrite(LED2,HIGH);
break;
case KODA2_off:
Serial.println("LED2 izklop");
digitalWrite(LED2, LOW);
break;
case KODA3_on:
Serial.println("LED3 utripanje");
i = true;
digitalWrite(LED3,HIGH);
break;
case KODA3_off:
Serial.println("LED3 izklop");
i = false;
digitalWrite(LED3, LOW);
break;
default:
Serial.println("poskusi ponovno");
while(Serial.available()) Serial.read();
break;
}
}
}
static unsigned long trenutniCas;
int zakasnitev = 200;
static bool m = false;
if(((millis() - trenutniCas) > zakasnitev) && i){
trenutniCas = millis();
m = !m;
digitalWrite(LED3, m);
}
}