09.F Náhodné blikanie LED (Random + Serial Monitor)

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() a RandomSeed()
  • 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ž 254
  • random(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

  1. LED anóda (+) → rezistor → Pin ~9
  2. 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–255
  • random(50, 500) = náhodný čas 50–499 ms
  • analogWrite() = stmievanie ako v predchádzajúcej lekcii
  • Serial.print() / println() = posielanie dát do PC

Žiak tak vidí efekt aj číselné hodnoty v Serial Monitore.


Úlohy pre žiakov

  1. Zmeň rozsah jasu
  • napr. random(100, 255) → LED nikdy nezhasne úplne
  1. Zmeň rozsah pauzy
  • napr. random(20, 2000) → krátke + veľmi dlhé pauzy
  1. Pridaj tlačidlo, ktoré random ON/OFF aktivuje
  2. Deterministický mód
  • použiť digitalWrite() namiesto analogWrite()
  1. 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

Pridaj komentár