16. Arduino + osciloskop + bzučiak (active vs passive)

16. Arduino + osciloskop + bzučiak (active vs passive)

Cieľ cvičenia

Žiak sa naučí:

  • generovať jednoduchý signál pomocou Arduino Uno,
  • zobraziť signál na osciloskope (amplitúda, perióda, frekvencia),
  • pochopiť rozdiel medzi active a passive bzučiakom,
  • prepojiť elektrický signál so svetlom (LED) a zvukom (tón).

Pomôcky (na 1 pracovisko)

  • Arduino Uno (žiaci)
  • PC s Arduino IDE
  • breadboard, vodiče
  • LED dióda + rezistor 220–330 Ω
  • Keyestudio Active Buzzer Module
  • Keyestudio Passive Buzzer Module
  • osciloskop + sonda (1× alebo 10×)

Bezpečnosť a pravidlá merania

  • Zem osciloskopu (krokosvorka na sonde) pripájaj iba na GND Arduino.
  • Neprepájaj žiadny výstup Arduino priamo na „veľký“ pasívny reproduktor. (Tu používame iba moduly z kitu.)
  • Ak bzučiak nehrá: skontroluj VCC, GND, signálový pin a správny pin v programe.

Zapojenie (spoločné pre obe časti)

Použijeme výstupný pin D8.

LED

  • D8 → rezistor → anóda LED
  • katóda LED → GND

Osciloskop

  • hrot sondy → D8
  • krokosvorka (GND) → GND Arduino

Bzučiak modul (podľa typu)

Moduly zvyčajne majú piny: S / SIG, VCC, GND

  • S (SIG) → D8
  • VCC → 5V
  • GND → GND

Pozn.: Niektoré moduly majú označenie I/O namiesto S. Zapojenie je rovnaké.


ČASŤ A: Active buzzer module (zapnúť/vypnúť pípnutie)

Čo je active buzzer?

Active buzzer má v sebe oscilátor. Arduino len prepína napájanie/signál:

  • HIGH = pípaj
  • LOW = ticho
    Tón sa nemení (alebo len minimálne).

Program A – pípnutie 1× za sekundu

const int OUT = 8;

void setup() {
  pinMode(OUT, OUTPUT);
}

void loop() {
  digitalWrite(OUT, HIGH);
  delay(500);
  digitalWrite(OUT, LOW);
  delay(500);
}

Čo pozorujeme?

  • LED: bliká 1 Hz
  • osciloskop: „obdĺžnik“ s periódou ~1 s
  • active buzzer: pravidelné pípnutie (tón je stále rovnaký)

Úloha A1

Zmeň delay(500) na delay(100) a delay(50).
Otázky:

  • Ako sa zmení blikanie LED?
  • Ako sa zmení rytmus pípania?
  • Akú periódu zmeriaš na osciloskope?

ČASŤ B: Passive buzzer module (Arduino generuje frekvenciu – tón sa mení)

Čo je passive buzzer?

Passive buzzer je „malý reproduktor“ – potrebuje signál s frekvenciou.
Tu je ideálne použiť funkciu tone().

Program B – zmena tónu (250 Hz → 500 Hz → 1000 Hz)

const int OUT = 8;

void setup() {
  // nič netreba
}

void loop() {
  tone(OUT, 250);   // nízky tón
  delay(1000);

  tone(OUT, 500);   // stredný tón
  delay(1000);

  tone(OUT, 1000);  // vysoký tón
  delay(1000);

  noTone(OUT);
  delay(500);
}

Čo pozorujeme?

  • LED: pri tone() môže pôsobiť ako „stále svieti“ (bliká príliš rýchlo pre oko)
  • osciloskop: rýchly obdĺžnikový signál
  • passive buzzer: jasne počuteľná zmena výšky tónu

Úloha B1 – meranie frekvencie

Zmeraj na osciloskope frekvenciu pre:

  • 250 Hz
  • 500 Hz
  • 1000 Hz

Zapíš:

  • zobrazenú frekvenciu (Hz)
  • periódu (ms)
  • vzťah: f = 1 / T

Úloha B2 – „siréna“

Uprav program tak, aby tón plynule „stúpal a klesal“:

const int OUT = 8;

void setup() {}

void loop() {
  for (int f = 200; f <= 1200; f += 20) {
    tone(OUT, f);
    delay(20);
  }
  for (int f = 1200; f >= 200; f -= 20) {
    tone(OUT, f);
    delay(20);
  }
}

Otázky:

  • Kde na osciloskope vidíš, že frekvencia rastie?
  • Prečo LED vyzerá takmer stále rozsvietená?

Porovnanie (záver)

ModulČo robí ArduinoČo počujemČo vidím na osciloskope
Active buzzeriba HIGH/LOW (zapnúť/vypnúť)pípnutie s pevným tónompomalé prepínanie úrovní
Passive buzzergeneruje frekvenciu (tone)rôzne tónyrýchly obdĺžnik s merateľnou frekvenciou

Kontrolné otázky

  1. Čo je perióda a ako súvisí s frekvenciou?
  2. Prečo pri 1000 Hz LED neviditeľne bliká, ale osciloskop to ukáže?
  3. Prečo active buzzer nepotrebuje tone()?

Bonus (pre rýchle skupiny)

  • Nastav tone(OUT, 440) – to je približne tón A4 (Komorné A).
  • Skús spraviť 3-tónový „alarm“ (napr. 440 Hz, 660 Hz, 880 Hz).

Pridaj komentár