Controlează un bec de curent alternativ cu o bătaie din palme, voce sau sunet
În acest tutorial, vei învăța cum să controlezi un bec de curent alternativ folosind un modul de sunet care detectează bătăi din palme sau comenzi vocale. Folosind această configurație, poți aprinde sau stinge cu ușurință lumina pe baza intrării sonore. Acest proiect utilizează un releu pentru a comuta alimentarea becului de curent alternativ, permițând controlul sigur al dispozitivelor de înaltă tensiune cu comenzi sonore simple. Rezultatul este o lumină funcțională care răspunde la vocea ta sau la bătăile din palme, făcându-l un proiect distractiv și practic. Modulul este numit și modul de detectare a vocii sau a sunetului KY-037.

Înainte de a intra în detalii, este esențial să înțelegi componentele implicate în acest proiect. Modulul de sunet detectează semnalele audio și trimite un semnal corespunzător către Arduino. Arduino procesează acest semnal și controlează un releu, care la rândul său alimentează becul de curent alternativ. Acest sistem poate răspunde la diferite niveluri de sunet, permițând flexibilitate în modul în care alegi să activezi lumina (în videoclip la 00:30).
Hardware Explicat
Pentru această construcție, vei avea nevoie de următoarele componente:
- Placă Arduino: Acționează ca controler central care procesează intrarea de la modulul de sunet și controlează releul.
- Modul de sunet: Acest modul detectează intrările sonore (cum ar fi bătăi din palme sau comenzi vocale) și trimite un semnal către Arduino. Include de obicei un microfon și un amplificator operațional pentru a amplifica sunetul.
- Modul releu: Un releu îți permite să controlezi dispozitive de tensiune mai mare, cum ar fi un bec de curent alternativ. Acționează ca un întrerupător care poate fi pornit sau oprit de Arduino.
- Bec de curent alternativ: Sursa de lumină pe care o vei controla. Asigură-te că este conectat în siguranță prin releu.
Modulul de sunet funcționează prin conversia undelor sonore în semnale electrice pe care Arduino le poate citi. Modulul releu folosește o intrare de joasă tensiune de la Arduino pentru a comuta curentul alternativ de înaltă tensiune pornit sau oprit, fiind o componentă critică pentru operarea în siguranță.
Detalii din Fișa Tehnică
| Producător | Generic |
|---|---|
| Număr de piesă | Modul de detectare a sunetului |
| Tensiune logică/IO | 5 V |
| Tensiune de alimentare | 5 V |
| Curent de ieșire (pe canal) | 20 mA |
| Curent de vârf (pe canal) | 50 mA |
| Ghid frecvență PWM | N/A |
| Praguri logice de intrare | Compatibil TTL |
| Cădere de tensiune / RDS(on) / saturație | 0,1 V max |
| Limite termice | 85 °C |
| Pachet | Modul |
| Note / variante | Folosit frecvent în diverse proiecte DIY |
- Asigură o disipare adecvată a căldurii pentru modulul releu.
- Folosește condensatoare de decuplare lângă sursa de alimentare pentru a stabiliza tensiunea.
- Menține cablajul organizat pentru a preveni scurtcircuitele accidentale.
- Fii precaut cu tensiunea de curent alternativ; asigură-te că toate conexiunile sunt sigure.
- Reglează sensibilitatea modulului de sunet în funcție de mediul tău.
Instrucțiuni de Cablare

Începe prin conectarea modulului de sunet la Arduino. Conectează pinul DO (ieșire de date) al modulului de sunet la pinul 2 de pe Arduino. Pinul VCC ar trebui conectat la ieșirea de 5V de pe Arduino, iar pinul GND ar trebui conectat la unul dintre pinii de masă ai Arduino.
Apoi, conectează modulul releu. Conectează pinul VCC al releului la pinul de 5V de pe Arduino și pinul GND la masă. Pinul de intrare al releului ar trebui conectat la pinul 10 de pe Arduino. În final, conectează becul de curent alternativ la bornele comune și normal deschise ale releului, asigurându-te că circuitul este izolat corespunzător de orice contacte expuse.
Exemple de Cod și Explicații
Fragmentul de cod următor arată cum să configurezi pinii și să citești intrarea sonoră:
int SOUND = 2; // conectează ieșirea la DO al modulului de sunet
int relayPin = 10; // conectat la releu (LED)
void setup() {
Serial.begin(9600);
pinMode(SOUND, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
}
În această configurație, ieșirea modulului de sunet este conectată la pinul 2, care este configurat ca intrare cu rezistor de pull-up. Pinul releului este setat ca ieșire pentru a controla releul.

Apoi, bucla principală verifică intrarea sonoră și controlează releul pe baza sunetului detectat:
void loop() {
val = digitalRead(SOUND);
if(val == HIGH && lightON == LOW){
heard = 1 - heard;
delay(100);
}
lightON = val;
if(heard == HIGH){
Serial.println("Lumină PORNITĂ");
digitalWrite(relayPin, LOW);
}else{
Serial.println("Lumină OPRITĂ");
digitalWrite(relayPin, HIGH);
}
delay(100);
}
Această buclă citește continuu intrarea sonoră. Dacă este detectat un sunet (când val este HIGH), comută starea luminii. Variabila heard urmărește dacă a fost detectat un sunet, iar releul este activat în consecință.
Demonstrație / Ce să Te Aștepți
Odată ce totul este cablat și codul este încărcat, poți testa funcționalitatea bătând din palme sau vorbind lângă modulul de sunet. Lumina ar trebui să se aprindă la prima bătaie din palme sau sunet și să se stingă la următoarea. Fii atent la distanță și la volumul vocii tale, deoarece acestea pot afecta detectarea (în videoclip la 05:00).
Capcanele frecvente includ cablarea incorectă, în special cu releul, care poate duce la condiții nesigure. Asigură-te că releul este conectat corect și că becul de curent alternativ este cablat corespunzător pentru a evita orice pericole electrice.
Marcaje Temporale din Videoclip
- 00:00 - Introducere în proiect
- 01:00 - Prezentare generală a componentelor utilizate
- 02:30 - Instrucțiuni de cablare
- 04:15 - Parcurgerea codului
- 05:00 - Demonstrarea funcționalității
Imagini
/*
* 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);
}
Lucruri de care ai putea avea nevoie
-
Amazon
-
eBayISD1820 Voice Recorder from eBayebay.us
-
AliExpressPurchase this item from AliExpresss.click.aliexpress.com
Resurse și referințe
Încă nu sunt resurse.
Fișiere📁
Fișier Fritzing
-
Sound Detection Module Module (KY-037)
Sound Detection Module.fzpz0.03 MB