19. Regulácia jasu LED podľa intenzity svetla (Arduino + LDR)

19. Regulácia jasu LED podľa intenzity svetla (Arduino + LDR)

Cieľom cvičenia je zostrojiť a naprogramovať svetelný regulátor, pri ktorom sa jas LED plynulo mení podľa intenzity dopadajúceho svetla.

Žiak sa naučí:

  • pracovať s analógovým senzorom (fotorezistor – LDR),
  • používať PWM výstup Arduina,
  • prevádzať hodnoty zo senzora na riadiaci signál,
  • pochopiť princíp analóg → digitál → analóg.

🧠 Princíp činnosti

Fotorezistor (LDR) mení svoju hodnotu v závislosti od intenzity svetla:

  • viac svetla → vyššia hodnota z analógového vstupu,
  • menej svetla → nižšia hodnota.

Arduino túto hodnotu:

  1. načíta zo vstupu A0,
  2. prepočíta na rozsah 0–255,
  3. použije ju na riadenie jasu LED pomocou PWM signálu.

➡️ Zakrytím senzora LED stmavne.
➡️ Odkrytím senzora LED zosilnie.


🧰 Použité súčiastky

  • Arduino UNO
  • Modul fotorezistora (LDR – Photoresistor sensor) zo sady Keyestudio KS0068
  • LED dióda
  • Rezistor 220–330 Ω
  • Breadboard
  • Prepojovacie vodiče

🔌 Zapojenie obvodu

Zapojenie LDR modulu

LDR modulArduino UNO
VCC5V
GNDGND
AOA0

Zapojenie LED

LEDArduino UNO
Anóda (dlhá noha)D9 (PWM) cez rezistor 220–330 Ω
Katóda (krátka noha)GND

👉 Používame pin D9, pretože podporuje PWM.


🧩 Schéma zapojenia (textová)

Arduino UNO        Breadboard
-----------        -----------
5V  ------------> + lišta
GND ------------> - lišta

LDR modul:
VCC ------------> + lišta
GND ------------> - lišta
AO  ------------> A0

LED:
D9  --> [220Ω] --> |>| --> GND

💻 Program – regulácia jasu LED

const int LDR = A0;
const int LED = 9;   // PWM pin

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int lightValue = analogRead(LDR);      // 0–1023
  int brightness = map(lightValue, 0, 1023, 0, 255);

  analogWrite(LED, brightness);

  Serial.print("Svetlo: ");
  Serial.print(lightValue);
  Serial.print(" | Jas LED: ");
  Serial.println(brightness);

  delay(100);
}

🔎 Overenie funkcie

  1. Nahraj program do Arduino.
  2. Zakry senzor rukou → LED stmavne alebo zhasne.
  3. Odkry senzor alebo nasvieť mobilom → LED sa rozjasní.
  4. Sleduj hodnoty v Serial Monitore.

🧠 Dôležitá myšlienka

Arduino nevidí svetlo – vidí čísla, ktoré dokáže premeniť na riadenie.


⭐ Rozšírenie (pre rýchlejších žiakov)

  • Otočte mapovanie (tmavšie = jasnejšia LED).
  • Nastavte minimálny a maximálny jas.
  • Zobrazte priebeh v Serial Plotteri.
  • Porovnajte plynulú reguláciu s prahovým zapínaním LED.

❓ Kontrolné otázky

  1. Prečo musíme použiť PWM pin?
  2. Aký je rozdiel medzi digitalWrite() a analogWrite()?
  3. Prečo mapujeme rozsah 0–1023 na 0–255?

🔗 Prepojenie na prax

Podobný princíp sa používa:

  • pri automatickej regulácii osvetlenia,
  • v smart budovách,
  • v senzorických systémoch, kde hodnota senzora nevyvoláva alarm, ale riadi proces.

Pridaj komentár