/*
Naloge se toÄkujejo skladno s sklepom aktiva za raÄunaliÅ¡tvo.
50-60% = 2
64-76% = 3
77-89% = 4
90-100% = 5
NALOGA 1)
Napiši program, ki bere niz znakov (6 znakov) iz serijskega porta.
- ÄŒe je znakov veÄ ali manj kot 6, naj se na serijskem portu izpiÅ¡e: "Napaka, ponovni vnos." (1 toÄka)
- Ob prvem nizu znakov 777111, se prižge LED3, ki je prikljuÄena na pin 3. (1 toÄka)
- Ob drugem nizu znakov 777111, se ugasne LED3, ki je prikljuÄena na pin 3. (1 toÄka).
- ÄŒe niz znakov ustreza Å¡tevilki 777333, zaÄne utripati LED4, ki je prikljuÄena na pin 4. (1 toÄka)
Za utripanje uporabi funkcijo millis().
- ÄŒe niz znakov ustreza Å¡tevilki 777330, ugasnemo LED4, ki je prikljuÄena na pin 4. (1 toÄka)
- PrikljuÄi LCD display I2C, ki izpisuje posamezna stanja: npr. LED3 vklop, LED3 izklop, LED4 utrip, LED4 izklop (1 toÄka)
- Za utripanje LED uporabi funkcijo void npr. void utripanje ... (2 toÄki)
- ÄŒe niz znakov ustreza Å¡tevilki 777444, LED4 dioda 10 x utripne. (2 toÄki)
NALOGA 2)
- NapiÅ¡i program, ki Å¡teje Å¡tevilo pritiskov tipke, ki je prikljuÄena na pin 4. Rezultat naj se izpisuje na serijski port.
S tipko, ki je prikljuÄena na pin 5, ponastaviÅ¡ Å¡tevec pritiskov tipke na niÄ. (1 toÄka)
- Za odskakovanje kontaktov uporabi knjižnico bounce.h (1 toÄka)
- Za Å¡tetje pritiskov tipke kreiraj funkcijo void stetje.. (1 toÄka)
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
#define LED3 3
#define LED4 4
int stev = 0;
bool blinkLED4 = false;
unsigned long previousMillis = 0;
unsigned long interval = 1000;
void setup() {
lcd.begin(16, 2);
Serial.begin(115200);
Serial.println("Ziv");
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
}
void utripanje() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
digitalWrite(LED4, !digitalRead(LED4)); // Toggle LED4 state
previousMillis = currentMillis;
}
}
void loop() {
if (Serial.available() >= 6) {
String input = Serial.readStringUntil('\n'); // Read input string
Serial.println(input); // Print received string
// Check if the input string has exactly 6 characters
if (input.length() != 6) {
Serial.println("Napaka, ponovni vnos.");
} else {
if (input == "777111" && stev == 0) { // If input is "777111" and LED3 is off
digitalWrite(LED3, HIGH); // Turn on LED3
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LED3 vklop");
stev = 1;
} else if (input == "777111" && stev == 1) { // If input is "777111" and LED3 is on
digitalWrite(LED3, LOW); // Turn off LED3
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LED3 izklop");
stev = 0;
} else if (input == "777333") { // If input is "777333"
blinkLED4 = true; // Start blinking LED4
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("LED4 utrip");
} else if (input == "777330") { // If input is "777330"
blinkLED4 = false; // Stop blinking LED4
digitalWrite(LED4, LOW); // Turn off LED4
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("LED4 izklop");
} else if (input == "777444") { // If input is "777444"
// Blink LED4 10 times
for (int i = 0; i < 10; i++) {
digitalWrite(LED4, HIGH);
delay(500);
digitalWrite(LED4, LOW);
delay(500);
}
}
}
}
// Blink LED4 if blinkLED4 is true
if (blinkLED4) {
utripanje();
}
}