/* MENO A PRIEZVISKO: Zemko Richard
DATUM: 2.10.2024
PREDMET: Prax
LINK NA WOKWI : https://wokwi.com/projects/410636498391292929
PLATFORMA: ARDUINO – simulator Wokwi, Policajna sirena s L2C displejom
NAZOV DOMACEJ ULOHY: DU CW39-1: Pulzujuca LED-ka v prostredi WOKWIs vypisom premennych na seriovu linku
POPIS ZADANIA: postupne zvysovanie a znizovanie intenzity svietenia LED diody
VYSLEDOK TESTOV: Simulacia programu funguje ocakavane
HISTORIA :
v1: bez funkcie PrintLedStatus();
v2: skratenie programu pomocou funkcie PrintLedStatus();
*/
#define LED_PIN 9 //Definicia pinu, na ktorom je napojena LED dioda
int brightness = 0; //intenzita jasu, zaciatocna hodnota je 0
int increment = 5; //Inkrementacia jasu, kazdym opakovanim sa jas zvysi o tuto hodnotu
int direction = 1; //Smer jasu, 1 = zvysovanie, 0 = znizovanie
void setup() {
Serial.begin(115200); //Zahajenie seriovej linky s rychlostou prenosu dat na 115200
pinMode(LED_PIN, OUTPUT); //Nastavenie LED_PIN pinu ako vystup
}
void loop() {
if(brightness == 0) { //Ak je jas 0, zacni zvysovat jas
direction = 1; //Zmen hodnotu smer na 1
for (size_t i = 0; i < (255 / increment); i++) { //Opakuj prikazy, opakuj to (255/increment) krat
brightness += increment; //pripocitaj inkrement k jasu
if (brightness > 255) brightness = 255; //ak jas presiahne 255, nastav ho na 255.
analogWrite(LED_PIN, brightness); //Zapis novy jas
PrintLedStatus(direction, brightness); //Invokacia funkcie, dva parametre: smer, jas
}
}
if(brightness == 255) { //Ak je jas 255, zacni znizovat jas
direction = 0; //Zmen smer na 0
for (size_t i = (255 / increment); i > 0; i--) { //Opakuj prikazy, opakuj to (255/increment) krat, dokial i = 0
brightness -= increment; //zniz jas o inkrement
if (brightness < 0) brightness = 0; //ak jas padne pod 0, jas = 0
analogWrite(LED_PIN, brightness); //zapis novy jas
PrintLedStatus(direction, brightness); //Invokacia funkcie, dva parametre: smer, jas
}
}
}
//Funkcia na print
void PrintLedStatus(int dir, int bright) {
Serial.print("Smer: "); //Vypis "Smer: "
Serial.println(dir); //Vypis hodnotu 'direction', na konci riadku "\n"
Serial.print("Jas: "); //Vypis "Jas: "
Serial.println(bright); //Vypis hodnotu 'brightness', na konci riadku "\n"
delay(200); //pockaj 200ms
}