// Napiši program, ki prebere niz znakov iz serijskega porta (4 števke).
// Če niz znakov ustreza številki 5461, se izpiše na serijskem portu izklop in prižge LED dioda.
/*
#define LED 8
#define KODA 5461
void setup() {
Serial.begin(9600);
Serial.println("Vpiši kodo: ");
pinMode(LED, OUTPUT);
}
void loop() {
if(Serial.available()){
char vpis[4];
int steviloZnakovVpis = Serial.readBytes(vpis, 4);
if(steviloZnakovVpis == 4){
vpis[4] = '\0'; //terminator seznama vpis
int stevilka = atoi(vpis);
if(stevilka == KODA){
Serial.println("dostop je");
digitalWrite(LED, HIGH);
}
else {
Serial.println("poskusi ponovno");
digitalWrite(LED, LOW);
while(Serial.available()) Serial.read();
}
}
}
}
*/
// Napiši program, ki prebere niz znakov iz serijskega porta (4 števke).
//če niz znakov ustreza kombinaciji
//5461 se izpiše (vklop led1)
//5460 se izpiše (izklop led1)
//1234 se izpiše (vklop led2)
//1230 se izpiše (izklop led2)
//4545 se izpiše (utripanje led3)
//4540 se izpiše (izklop led3)
//uporabi switch case stavek
// za utripanje led3 uporabi funkicijo 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
#define LCD_LINES 2
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LED_COLUMNS 20
void setup() {
lcd.init();
lcd.setCursor(0,0);
Serial.begin(9600);
Serial.println("Vpiši kodo: ");
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, 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);
lcd.setCursor(0,1);
lcd.print("LED1 vklop");
break;
case KODA1_off:
Serial.println("LED1 izklop");
digitalWrite(LED1, LOW);
ldc.setCursor(0,1);
lcd.print("LED1 izklop");
break;
case KODA2_on:
Serial.println("LED2 vklop");
digitalWrite(LED2, HIGH);
ldc.setCursor(0,1);
lcd.print("LED2 vklop");
break;
case KODA2_off:
Serial.println("LED2 izklop");
digitalWrite(LED2, LOW);
ldc.setCursor(0,1);
lcd.print("LED2 izklop");
break;
case KODA3_on:
Serial.println("LED3 utripanje");
ldc.setCursor(0,1);
lcd.print("LED3 utripanje");
i = true;
break;
case KODA3_off:
Serial.println("LED3 izklop");
ldc.setCursor(0,1);
lcd.print("LED3 izklop");
i = false;
digitalWrite(LED3, LOW);
break;
default:
Serial.println("poskusi ponovno");
while(Serial.available()) Serial.read();
ldc.setCursor(0,1);
lcd.print("Poskusi ponovno");
break;
}
}
}
static unsigned long trenutniCas;
static bool m = false;
int zakasnitev = 200;
if (((millis() - trenutniCas) > zakasnitev) && i){
trenutniCas = millis();
m = !m;
digitalWrite(LED3, m);
}
}