/*Napiši program, ki prebere niz znakov iz serijskega porta(4 števila).
č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[5];
int steviloZnakovVpis=Serial.readBytes(vpis,4);// vpiše prve 4 znake v opis steviloZV šteje koliko znakov je vpisanih
if (steviloZnakovVpis==4){
vpis[4]= '\0'; // terminator seznama vpis(uporabljamo za zaključevanje seznama)
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(); //preberemo če je v seral kakšen znak, nato z read izpraznimo
}
}
}
}*/
/*Napiši program, ki prebere niz znakov iz serijskega porta(4 števila).
če niz znakov ustreza številki
-5461 se iziše (vklop LED1),
-5460 se iziše (izklop LED1),
-1234 se iziše (vklop LED2),
-1230 se iziše (izklop LED3),
-4545 se izpiše (utripanje LED3),
-4540 se izpiše (izklop LED3)
*/
#include <LiquidCrystal_I2C.h>
#define LED1 8
#define LED2 7
#define LED3 6
#define L1on 5461
#define L1off 5460
#define L2on 1234
#define L2off 1230
#define L3on 4545
#define L3off 4540
static bool i = false;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
Serial.println("Vpiši kodo");
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
lcd.init(); // Inicializacija LCD-ja
lcd.backlight(); // Vklop osvetlitve
lcd.setCursor(0, 0); // Nastavitev položaja kazalca
lcd.print("Vpisi kodo");
}
void loop() {
if (Serial.available()){
char vpis[5];
int steviloZnakovVpis=Serial.readBytes(vpis,4);// vpiše prve 4 znake v opis steviloZV šteje koliko znakov je vpisanih
if (steviloZnakovVpis==4){
vpis[4]= '\0'; // terminator seznama vpis(uporabljamo za zaključevanje seznama)
int stevilka=atoi(vpis);
switch(stevilka){
case L1on:
Serial.println("LED1 vklop");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LED1 vklop");
digitalWrite(LED1, HIGH);
break;
case L1off:
Serial.println("LED1 izklop");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LED1 izklop");
digitalWrite(LED1, LOW);
break;
case L2on:
Serial.println("LED2 vklop");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LED2 vklop");
digitalWrite(LED2, HIGH);
break;
case L2off:
Serial.println("LED2 izklop");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LED2 izklop");
digitalWrite(LED2, LOW);
break;
case L3on:
Serial.println("LED3 utripanje");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LED3 utripanje");
i=true;
break;
case L3off:
Serial.println("LED3 izklop");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LED3 izklop");
digitalWrite(LED3,LOW);
i=false;
break;
default:
Serial.println("Poskusi ponovno");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Poskusite");
lcd.setCursor(0,1);
lcd.print("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);
}
}