/* Napiši program, ki prebere niz znakov iz serijskega porta (4 števke)
Če niz znakov ustreza številki:
5461 - ipis vklp LED 1 in prižge LED1
5460 - ipis izklop LED 1 in izklopi LED1
1234 - izpis vklop LED 2 in prižge LED2
1230 - ipis izklop LED 2 in izklopi LED2
4545 - izpis utripanje LED 3 in utripa LED3
4540 - ipis izklop LED 3 in ugasne LED3
uporabi switch case stavek
Za utripanje uporabi funkcijo millis()*/
#include <LiquidCrystal_I2C.h>
#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
int del = 500;
int currTime = 0;
bool m = false;
bool ledica3 = false;
//LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
Serial.println("Vpiši kodo: ");
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Vpisi kodo: ");
}
void loop() {
if (Serial.available()) {
char vpis[5];
int stevZnakovVpis = Serial.readBytes(vpis, 4);
if (stevZnakovVpis == 4) {
vpis[4] = '\0';
int stevilka = atoi(vpis);
switch (stevilka) {
case koda1_on:
lcd.setCursor(0, 1);
lcd.print("LED 1: vklop ");
Serial.println("LED 1: vklop");
digitalWrite(LED1, HIGH);
break;
case koda1_off:
lcd.setCursor(0, 1);
lcd.print("LED 1: izklop ");
Serial.println("LED 1: izklop");
digitalWrite(LED1, LOW);
break;
case koda2_on:
lcd.setCursor(0, 1);
lcd.print("LED 2: vklop ");
Serial.println("LED 2: vklop");
digitalWrite(LED2, HIGH);
break;
case koda2_off:
lcd.setCursor(0, 1);
lcd.print("LED 2: izklop ");
Serial.println("LED 2: izklop");
digitalWrite(LED2, LOW);
break;
case koda3_on:
lcd.setCursor(0, 1);
lcd.print("LED 3: vklop ");
ledica3 = true;
break;
case koda3_off:
lcd.setCursor(0, 1);
lcd.print("LED 3: izklop ");
ledica3 = false;
digitalWrite(LED3, LOW);
break;
default:
lcd.setCursor(0, 1);
lcd.print("Poskusi ponovno ");
Serial.println("Poskusi ponovno");
while (Serial.available()) {
Serial.read();
}
}
}
}
if ((millis() - currTime > del) && ledica3) {
currTime = millis();
m = !m;
digitalWrite(LED3, m);
}
}
/* 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(115200);
Serial.println("Vpiši kodo: ");
pinMode(LED, OUTPUT);
}
void loop() {
if (Serial.available()) {
char vpis[5];
int stevZnakovVpis = Serial.readBytes(vpis, 4);// seznam imena vpis, 4 velik
//Bere iz serijskega prepomnilnika v seznam tipa char
if (stevZnakovVpis == 4) {
vpis[4] = '\0'; // terminator seznama vpis (seznam mora biti zaključen z nulltim terminatorjem)
int stevilka = atoi(vpis);
if (stevilka == koda) {
Serial.println("Dostop je.");
digitalWrite(LED, HIGH);
}
else {
Serial.println("Poskusi ponovno.");
while (Serial.available()) {
Serial.read();
}
digitalWrite(LED, LOW);
}
}
}
}
*/