
Nem minden piezo hangszóró viselkedik egyformán – különösen, ha egy kezdőknek szánt 37 az 1-ben készlettel próbálkozol. A KY-006 passzív buzzer és a KY-012 aktív buzzer modul első ránézésre szinte egyformák, de vezérlésük és működésük teljesen eltérő. Ha rosszul kötöd be, vagy nem megfelelő módon vezérled, előfordulhat, hogy meg sem szólal – vagy épp folyamatosan sípol. Ebben a cikkben megmutatom, hogyan különböztesd meg őket, mire figyelj a bekötésnél, és megmutatom, hogyan szólaltasd meg őket egyszerű Arduino-kóddal.
Buzzer alkalmazási körülményei
A legtöbb kezdő készlet – például a 37 az 1-ben vagy a 45 az 1-ben Arduino szett – tartalmaz legalább egy aktív és egy passzív buzzer modult. Ezek KY-012 (aktív) és KY-006 (passzív) néven szerepelnek. A két modul hasonló tokozású, háromlábú eszköz, amelyen megtalálható a jelbemenet (S), a tápfeszültség (VCC) és a föld (GND). Fontos tisztázni: A KY-006 és KY-012 buzzer modulok nem tartalmaznak külön erősítő áramkört vagy kapcsolótranzisztort. A buzzer alkatrész közvetlenül a GND és az S (jel) lábra van kötve, VCC láb sok esetben nincs is bekötve. Ez azt jelenti, hogy a meghajtást az Arduino digitális kimenete végzi – emiatt különösen lényeges a kimenet áramterhelhetőségének figyelembevétele. Külön tranzisztoros meghajtás csak nagyobb teljesítmény vagy hosszabb működés esetén lehet indokolt. Ilyen célra például az YL-44 típusú, aktív meghajtású passzív buzzer modul alkalmazható, amely már tartalmaz beépített kapcsolótranzisztort. A KY-006 és KY-012 modulok ezzel szemben nem rendelkeznek belső erősítő áramkörrel, így közvetlenül az Arduino digitális kimenetére kötve működtethetők – természetesen az áramterhelhetőségi korlátok figyelembevételével. A KY-012 aktív buzzer már tartalmaz egy belső oszcillátort: ha feszültséget kap, állandó frekvenciájú sípoló hangot ad. Viszont nem tudod változtatni a hangmagasságát. A KY-006 passzív buzzer viszont csak akkor szólal meg, ha egy mikrokontroller PWM vagy tone() függvénnyel vezérelt négyszögjelet ad a jelbemenetre – így szabályozható a hangmagasság is.

Hogyan különböztethető meg az aktív és a passzív buzzer? Ránézésre alig – a tokozás szinte azonos, a NYÁK szitázása is minimális. Előfordul, hogy a felirat (pl. KY-012 vagy KY-006) lekopott vagy hiányzik. A legbiztosabb módszer: csatlakoztasd a modult az Arduino D13-as digitális lábára, amelyet a bootloader (önprogramozásért felelős programrész) futtatása során a beépített LED villogtat. Ha a buzzer sípol, aktív buzzer-rel van dolgod (KY-012). Ha csak halk, pattogó hangot ad, az egy passzív buzzer (KY-006), mivel nem tartalmaz saját oszcillátort.
Gyakorlati tipp: nem kell saját kódot írni! Használd ki, hogy az Arduino bekapcsoláskor vagy újraprogramozáskor rövid ideig villogtatja a D13-as lábat. Ha a KY-006 vagy KY-012 buzzer modult ide kötöd (jelbemenet – D13, GND – GND, VCC – 5V), akkor egyszerűen, bármilyen program nélkül hallás alapján eldöntheted, melyik típusú buzzer van a kezedben.
Fontos: a KY-006 és KY-012 buzzer modulok elektronikusan felcserélhetők – vagyis nem fogsz kárt okozni, ha „rossz helyre” kötöd őket. Legfeljebb a hang nem nem úgy működik, ahogy számítanál rá: például ha a
digitalWrite()parancsot használod egy passzív buzzerrel, nem fog megszólal – míg az aktív akkor is sípol, ha csak egytone()jelet kap. Ezért fontos tudni, melyik típus van éppen a kezedben – a D13-as teszt erre ideális.

Egy kiegészítő vizuális támpont, amely különösen bontatlan vagy új készletek esetén lehet hasznos: az aktív buzzer gyakran tartalmaz egy gyárilag ráragasztott védőmatricát a hangnyílás fölött. Ezt a matricát a gyártási folyamat során alkalmazzák, hogy a hangkeltő elem ne sérüljön meg a forrasztás közben keletkező szennyeződések vagy gőzök miatt. A matricán általában a „Remove after washing” (Távolítsd el forrasztás után) felirat szerepel. Ez a védőelem jellemzően hiányzik a passzív buzzer esetében. Ha tehát egy azonosítatlan buzzerrel találkozol, a jelenléte vagy hiánya alapján jó eséllyel következtethetsz annak típusára. Fontos azonban megjegyezni, hogy ez nem egy univerzális szabály, hanem egy segédeszköz, amely más vizsgálati módszerekkel együtt lehet különösen hasznos a modulok gyors beazonosításához.
A buzzer programkódok
A két buzzer modul más-más módon működik, ezért külön-külön kóddal kell megszólaltatni őket. Az aktív buzzer KY-012 saját hanggenerátorral rendelkezik, így elegendő a kimenetre feszültséget adni. A passzív buzzer KY-006 viszont a mikrovezérlő által generált hangjelet követi – ehhez a tone() függvényt használjuk. Mindkét példában a D8-as digitális lábra kötjük a jelbemenetet.
Aktív buzzer (KY-012) – egyszerű sípolás
Elsőként nézzük meg, hogyan működik egy egyszerű, időzített sípoltatás aktív buzzerrel – ez egy kiváló alap a legtöbb figyelmeztető hangjelzéshez.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | /* Program neve: Aktív buzzer sípoltatás tesztprogram Verzió: 1.0 Dátum: 2025. július 28. Szerző: Cseh Róbert E-mail: avr@tavir.hu Web: https://www.tavir.hu Leírás: Ez a program egy KY-012 típusú aktív buzzer modul 500 ms-os sípoltatását végzi. A buzzer a digitális 8-as lábra van kötve, és HIGH/LOW jellel vezérelhető. Hardverkövetelmények: - Arduino UNO - KY-012 aktív buzzer → Arduino D8 (jelbemenet) - GND → buzzer negatív láb Könyvtárak: Nem igényel külön könyvtárakat. Telepítés: Másold be a kódot az Arduino IDE-be és töltsd fel a lapkára. Felhasználási feltételek: Szabadon felhasználható oktatási célokra, a szerző nevének megőrzésével. */ int buzzerPin = 8; // A buzzer bemeneti lába a D8-as digitális pinre csatlakozik void setup() { pinMode(buzzerPin, OUTPUT); // Beállítjuk a buzzer lábat kimeneti módba } void loop() { digitalWrite(buzzerPin, HIGH); // Sípolás elindítása - logikai magas szintet adunk ki delay(500); // Fél másodpercig sípol digitalWrite(buzzerPin, LOW); // Sípolás leállítása - logikai alacsony szintre vált delay(500); // Fél másodperc szünet } |
Passzív buzzer (KY-006) – hangmagasság vezérléssel
Ebben a példában egy passzív buzzer segítségével generálunk hangot, ahol szabadon állítható a hangmagasság – például menühangokhoz vagy játékzenékhez ideális megoldás.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | /* Program neve: Passzív buzzer hanggenerálás tesztprogram Verzió: 1.0 Dátum: 2025. július 28. Szerző: Cseh Róbert E-mail: avr@tavir.hu Web: https://www.tavir.hu Leírás: Ez a program egy KY-006 típusú passzív buzzer modult vezérel, 1000 Hz-es hang kibocsátásával, 500 ms-os periódusidővel. A modul a D8-as digitális lábra van kötve, és a hanggenerálás a tone() és noTone() függvényekkel történik. Hardverkövetelmények: - Arduino UNO - KY-006 passzív buzzer → Arduino D8 (jelbemenet) - GND → buzzer negatív láb Könyvtárak: Nem igényel külön könyvtárakat. Telepítés: Másold be a kódot az Arduino IDE-be és töltsd fel a lapkára. Felhasználási feltételek: Szabadon felhasználható oktatási célokra, a szerző nevének megőrzésével. */ int buzzerPin = 8; // A buzzer bemeneti lába a D8-as digitális pinre csatlakozik void setup() { // Nincs szükség külön konfigurációra, a tone() automatikusan beállítja a lábat } void loop() { tone(buzzerPin, 1000); // 1000 Hz-es hang indítása a buzzer-en delay(500); // Fél másodpercig szól a hang noTone(buzzerPin); // Hang leállítása delay(500); // Fél másodperc szünet } |
A két programkódrészlet eltérő logikával vezérli a hozzájuk tartozó buzzer modulokat, mivel az eszközök működési elve különbözik. Az aktív buzzer (KY-012 típus) belső oszcillátort tartalmaz, így elegendő, ha egy logikai magas szintet (HIGH) adunk a bemenetére – ekkor fix frekvenciájú hangot ad ki. Ezzel szemben a passzív buzzer (KY-006 típus) nem képes önálló hangkibocsátásra, csak akkor szólal meg, ha a vezérlő mikrovezérlő négyszögjelet generál a kimenetén, például a tone() függvénnyel. Ez lehetővé teszi a frekvencia – azaz a hangmagasság – változtatását, így alkalmasabb például dallamok vagy állapotjelzések kódolására. A kimeneti jelet mindkét esetben a D8-as digitális lábra kötött buzzer modul érzékeli, és az eredmény hallás vagy oszcilloszkópos mérés útján ellenőrizhető.
Tippek
Ha a buzzer nem szólal meg, ellenőrizd, hogy a típusának megfelelő vezérlést alkalmazod. A passzív buzzer (KY-006) csak a tone() parancsra reagál, míg az aktív buzzer (KY-012) elegendő, ha egyszerűen feszültséget kap, például a digitalWrite() parancs hatására. A legegyszerűbb gyakorlati ellenőrzés, ha a D13-as lábra kötöd a modult – a bootloader indulásakor fellépő impulzus alapján már eldönthető, milyen típusú buzzer van a kezedben.
Ez a megoldás nem igényel külön programozást, mégis azonnali visszajelzést ad. Érdemes azt is tudni, hogy ha a két típust felcseréled – vagyis a tone() parancsot az aktív buzzerhez, a ki/bekapcsolást pedig a passzívhoz alkalmazod -, akkor sem történik károsodás, de a működése nem lesz megfelelő. Ilyenkor az aktív buzzer csak időnként sípol, vagy furcsán viselkedik, míg a passzív buzzer egyáltalán nem ad ki hangot. Ez megnehezíti a hibakeresést, hiszen úgy tűnhet, hogy a program a hibás, miközben csak a vezérlési mód nem stimmel. Ezért különösen fontos, hogy már a tesztelés elején meggyőződj róla, melyik típusú modul van a kezedben.
És nálad volt már ilyen?
Te milyen visszajelzésre használnád a buzzer modult? Egyszerű figyelmeztetésre, játékhangra vagy talán menüléptetéshez? Írd meg, hogy szerinted az aktív vagy a passzív verzió hasznosabb a saját Arduino projektjeidben – főleg, ha te is a 37 az 1-ben vagy a 45 az 1-ben készletből dolgozol. Elsőre apró különbségnek tűnik – de a hang, amit kiadnak, a teljes projekt hangulatát is meghatározhatja!
Gyakran ismételt kérdések
Kérdés: Mi a különbség a KY‑006 passzív és a KY‑012 aktív buzzer között?
Válasz: A KY‑012 aktív buzzer belső oszcillátort tartalmaz, így ha jel (HIGH) érkezik, fix frekvencián sípol. Ezzel szemben a KY‑006 passzív buzzer nem önállóan működik: PWM vagy tone() jelet igényel a hangmagasság szabályozásához.
Kérdés: Hogyan lehet egyszerűen felismerni, hogy melyik típust használom?
Válasz: Csatlakoztasd a buzzer modult az Arduino D13‑as lábjára. Ha a bootloader indításkor sípol (a LED villog), akkor valószínűleg aktív buzzer‑rel dolgozol (KY‑012). Halk pattogó hang esetén passzív buzzer‑ről van szó (KY‑006), mivel nem tartalmaz oszcillátort.
Kérdés: Milyen Arduino kód szükséges a két típus működtetéséhez?
Válasz:
– KY‑012 aktív buzzer: elegendő egy digitalWrite(buzzerPin, HIGH/LOW) vezérlés a D8 lábon.
– KY‑006 passzív buzzer: a tone(pin, frekvencia) és noTone(pin) függvényekkel vezérelhető a hangmagasság, például 1000 Hz-es hang fél másodpercig.
Kérdés: Kár keletkezhet, ha felcserélem a két buzzer vezérlési módját?
Válasz: Nem, elektronikailag nem károsítható a modul – viszont nem fog megfelelni a hang (pl. passzív buzzerrel alkalmazott digitalWrite() nem fog hallható hangot eredményezni, míg az aktív búgónál a tone() nem vált frekvenciát).
Források
– Arduino, mint programozó és a bootloader (ArduinoISP) [TavIR]
– KY‑012 használata Arduino-n, kódpéldával [projecthub.arduino.cc]
– Aktív és passzív buzzer Arduino interfész [microcontrollerslab.com]






