09.F Náhodné blikanie LED (Random + Serial Monitor)
Ciele lekcie
- porozumieť generátoru náhodných čísel v Arduine
- naučiť sa používať funkcie
random()aRandomSeed() - ovládať PWM aj digitálny výstup v náhodnom režime
- vyskúšať debugovanie cez Serial Monitor
- urobiť efektný „LED Random efekt“
Potrebný materiál
Pre Arduino Uno:
- Arduino Uno
- LED (ľubovoľná farba)
- Rezistor 220–330 Ω
- Prepojky
- PC + USB
Pre Arduino Mega:
- rovnaké zapojenie
Princíp pre študentov (stručný výklad)
Arduino dokáže generovať pseudo-náhodné čísla, napr. od 0 do 255, alebo od 10 do 500.
Syntax:
random(min, max)
napr.:
random(0, 255)→ čísla 0 až 254random(100, 500)→ čísla 100 až 499
Prečo je to zaujímavé pre LED?
- môžeme náhodne meniť jas
- môžeme náhodne meniť dĺžku blikania
- môžeme náhodne pauzovať
To vytvorí efekt ako „signalizačný blikač“, „alarm“ alebo „dýchací efekt chaosu“.
Zapojenie
- LED anóda (+) → rezistor → Pin ~9
- LED katóda (–) → GND
Takto máme PWM pin 9, ktorý poznajú zo stmievania.
Program – Náhodná intenzita + náhodná pauza
int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600); // otvorí sériový monitor
}
void loop() {
int jas = random(0, 256); // náhodný jas 0–255
int pauza = random(50, 500); // náhodná pauza 50–499 ms
analogWrite(ledPin, jas); // nastavíme jas LED
Serial.print("Jas: "); // pošleme do PC
Serial.print(jas);
Serial.print(" Pauza: ");
Serial.println(pauza);
delay(pauza);
}
Vysvetlenie kódu
random(0, 256)= náhodné číslo 0–255random(50, 500)= náhodný čas 50–499 msanalogWrite()= stmievanie ako v predchádzajúcej lekciiSerial.print() / println()= posielanie dát do PC
Žiak tak vidí efekt aj číselné hodnoty v Serial Monitore.
Úlohy pre žiakov
- Zmeň rozsah jasu
- napr.
random(100, 255)→ LED nikdy nezhasne úplne
- Zmeň rozsah pauzy
- napr.
random(20, 2000)→ krátke + veľmi dlhé pauzy
- Pridaj tlačidlo, ktoré random ON/OFF aktivuje
- Deterministický mód
- použiť
digitalWrite()namiestoanalogWrite()
- RGB rozšírenie (ak máš RGB LED)
- náhodné farby → efektný výsledok
Rozšírenie pre pokročilých
a) Seedovanie náhody
Bez „seed-u“ Arduino generuje stále rovnakú sekvenciu.
Keď však odoberieme náhodný šum z analógového vstupu:
randomSeed(analogRead(A0));
Stačí vo setup() a máme lepší chaos.
b) Náhodný mód alarmu
- slabé blikanie
- silné blikanie
- pauza
c) Random v hrách
Žiakom vysvetlíš:
- NPC správanie
- RPG loot
- generovanie krajiny
- simulácie (teplota, led displej)
Poznámky pre výučbu
- študenti radi experimentujú s rozsahmi
- Serial monitor pridáva „wow efekt“ a zároveň učí debugovať
- nadväzuje to pekne na PWM + Tlačidlo + Serial


