Ovládajte AC žiarovku tlieskaním, hlasom alebo zvukom
V tomto návode sa naučíte, ako ovládať žiarovku na striedavý prúd pomocou zvukového modulu, ktorý deteguje tlieskanie alebo hlasové príkazy. Použitím tohto zapojenia môžete jednoducho zapnúť alebo vypnúť svetlo na základe zvukového vstupu. Tento projekt využíva relé na prepínanie napájania žiarovky na striedavý prúd, čo umožňuje bezpečné ovládanie zariadení s vysokým napätím pomocou jednoduchých zvukových príkazov. Výsledkom je funkčné svetlo, ktoré reaguje na váš hlas alebo tlieskanie, čo z neho robí zábavný a praktický projekt. Modul sa tiež nazýva KY-037 modul na detekciu hlasu alebo zvuku.

Predtým, než sa ponoríme do detailov, je dôležité pochopiť komponenty zapojené v tomto projekte. Zvukový modul deteguje zvukové signály a posiela zodpovedajúci signál do Arduina. Arduino spracováva tento signál a ovláda relé, ktoré následne napája žiarovku na striedavý prúd. Tento systém môže reagovať na rôzne úrovne zvuku, čo umožňuje flexibilitu v tom, ako sa rozhodnete aktivovať svetlo (vo videu o 00:30).
Vysvetlenie hardvéru
Pre túto konštrukciu budete potrebovať nasledujúce komponenty:
- Doska Arduino: Funguje ako centrálny ovládač, ktorý spracováva vstup zo zvukového modulu a ovláda relé.
- Zvukový modul: Tento modul deteguje zvukové vstupy (ako tlieskanie alebo hlasové príkazy) a vysiela signál do Arduina. Zvyčajne obsahuje mikrofón a operačný zosilňovač na zosilnenie zvuku.
- Relé modul: Relé vám umožňuje ovládať zariadenia s vyšším napätím, ako je žiarovka na striedavý prúd. Funguje ako spínač, ktorý môže byť zapnutý alebo vypnutý Arduinom.
- Žiarovka na striedavý prúd: Svetelný zdroj, ktorý budete ovládať. Uistite sa, že je bezpečne pripojená cez relé.
Zvukový modul funguje tak, že prevádza zvukové vlny na elektrické signály, ktoré môže Arduino čítať. Relé modul používa nízkonapäťový vstup z Arduina na prepínanie vysokonapäťového striedavého prúdu zapnutého alebo vypnutého, čo je kritický komponent pre bezpečnú prevádzku.
Detaily z datasheetu
| Výrobca | Generický |
|---|---|
| Číslo dielu | Modul na detekciu zvuku |
| Logické/IO napätie | 5 V |
| Napájacie napätie | 5 V |
| Výstupný prúd (na kanál) | 20 mA |
| Špičkový prúd (na kanál) | 50 mA |
| Odporúčanie pre PWM frekvenciu | N/A |
| Logické prahové hodnoty vstupu | Kompatibilné s TTL |
| Pokles napätia / RDS(on) / saturácia | 0,1 V max |
| Tepelné limity | 85 °C |
| Puzdro | Modul |
| Poznámky / varianty | Bežne používané v rôznych DIY projektoch |
- Zabezpečte správny odvod tepla pre relé modul.
- Použite oddeľovacie kondenzátory v blízkosti napájacieho zdroja na stabilizáciu napätia.
- Udržujte zapojenie organizované, aby ste predišli náhodným skratom.
- Buďte opatrní so striedavým napätím; uistite sa, že všetky spojenia sú bezpečné.
- Nastavte citlivosť zvukového modulu podľa vášho prostredia.
Pokyny na zapojenie

Začnite pripojením zvukového modulu k Arduinu. Pripojte pin DO (výstup dát) zvukového modulu na pin 2 na Arduine. Pin VCC by mal byť pripojený na 5V výstup na Arduine a pin GND by mal byť pripojený na jeden z uzemňovacích pinov Arduina.
Ďalej zapojte relé modul. Pripojte pin VCC relé na 5V pin na Arduine a pin GND na uzemnenie. Vstupný pin relé by mal byť pripojený na pin 10 na Arduine. Nakoniec pripojte žiarovku na striedavý prúd na spoločný a normálne otvorený terminál relé, pričom sa uistite, že obvod je správne izolovaný od akýchkoľvek odkrytých kontaktov.
Príklady kódu a vysvetlenie
Nasledujúci výňatok kódu ukazuje, ako nastaviť piny a čítať zvukový vstup:
int SOUND = 2; // pripojte výstup na DO zvukového modulu
int relayPin = 10; // pripojené k relé (LED)
void setup() {
Serial.begin(9600);
pinMode(SOUND, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
}
V tomto nastavení je výstup zvukového modulu pripojený na pin 2, ktorý je nakonfigurovaný ako vstup s pull-up rezistorom. Pin relé je nastavený ako výstup na ovládanie relé.

Ďalej hlavná slučka kontroluje zvukový vstup a ovláda relé na základe detegovaného zvuku:
void loop() {
val = digitalRead(SOUND);
if(val == HIGH && lightON == LOW){
heard = 1 - heard;
delay(100);
}
lightON = val;
if(heard == HIGH){
Serial.println("Svetlo ZAPNUTÉ");
digitalWrite(relayPin, LOW);
}else{
Serial.println("Svetlo VYPNUTÉ");
digitalWrite(relayPin, HIGH);
}
delay(100);
}
Táto slučka nepretržite číta zvukový vstup. Ak je detegovaný zvuk (keď je val HIGH), prepína stav svetla. Premenná heard sleduje, či bol zvuk detegovaný, a relé sa aktivuje podľa toho.
Demonštrácia / Čo očakávať
Keď je všetko zapojené a kód je nahraný, môžete otestovať funkčnosť tlieskaním alebo hovorením v blízkosti zvukového modulu. Svetlo by sa malo zapnúť pri prvom tliesknutí alebo zvuku a vypnúť pri ďalšom. Dávajte pozor na vzdialenosť a hlasitosť vášho hlasu, pretože tieto môžu ovplyvniť detekciu (vo videu o 05:00).
Bežné nástrahy zahŕňajú nesprávne zapojenie, najmä s relé, čo môže viesť k nebezpečným podmienkam. Uistite sa, že relé je správne pripojené a že žiarovka na striedavý prúd je správne zapojená, aby ste predišli akýmkoľvek elektrickým rizikám.
Časové pečiatky videa
- 00:00 - Úvod do projektu
- 01:00 - Prehľad použitých komponentov
- 02:30 - Pokyny na zapojenie
- 04:15 - Prehľad kódu
- 05:00 - Ukážka funkčnosti
Obrázky
/*
* This is the Arduino code for a sound module for Arduino (basic).
This video shows you how to turn an AC light on
with a clap or your voice and turn it off with another clap
or shout. This code is a basic version where
the digital output of the module is used.
Please see the other version where actual analog sound values are
used to control the light.
*
// written by Ahmad Shamshiri for Robojax.com on
February 17, 2018 at 13:28 in Ajax, Ontario, Canada
* Watch the video for details: https://youtu.be/1szA8CKWuZY
* Code is available at: http://robojax.com/learn/arduino
*/
int SOUND = 2;// connect output to Sound module DO
int relayPin = 10;// Connected to relay (LED)
// do not change values below
int val = 0; // light value from pin 2
int lightON = 0;//light status
int heard = 0;//sound heard status
void setup() {
// SOUND Sensor Code by Robojax.com 20180217
Serial.begin(9600);
pinMode(SOUND, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
}
void loop() {
// SOUND Sensor Code by Robojax.com 20180217
val = digitalRead(SOUND);
if(val == HIGH && lightON == LOW){
heard = 1-heard;
delay(100);
}
// SOUND Sensor Code by Robojax.com 20180217
lightON = val;
if(heard == HIGH){
Serial.println("Light ON");
digitalWrite(relayPin, LOW);
}else{
Serial.println("Light OFF");
digitalWrite(relayPin, HIGH);
}
// SOUND Sensor Code by Robojax.com 20180217
delay(100);
}
Veci, ktoré by ste mohli potrebovať
-
Amazon
-
eBayISD1820 voice recorder from eBayebay.us
-
AliExpressPurchase this item from AliExpresss.click.aliexpress.com
Zdroje a referencie
Zatiaľ žiadne zdroje.
Súbory📁
Súbor Fritzing
-
Sound Detection Module Module (KY-037)
Sound Detection Module.fzpz0.03 MB