Управувајте AC сијалица со ракоплескање, глас или звук
Во ова упатство, ќе научите како да контролирате AC сијалица користејќи звучен модул кој детектира ракоплескање или гласовни команди. Со користење на оваа поставка, лесно можете да ја вклучите или исклучите светлината врз основа на звучен влез. Овој проект користи реле за префрлување на напојувањето на AC сијалицата, овозможувајќи безбедна контрола на уреди со висок напон со едноставни звучни команди. Резултатот е функционална светлина која реагира на вашиот глас или ракоплескање, што го прави забавен и практичен проект. Модулот исто така се нарекува KY-037 модул за гласовна детекција или детекција на звук.

Пред да навлеземе во спецификите, важно е да ги разбереме компонентите вклучени во овој проект. Звучниот модул детектира аудио сигнали и испраќа соодветен сигнал до Arduino. Arduino го обработува овој сигнал и контролира реле, кое пак ја напојува AC сијалицата. Овој систем може да реагира на различни нивоа на звук, овозможувајќи флексибилност во тоа како ќе одберете да ја активирате светлината (во видео на 00:30).
Објаснување на хардверот
За оваа изработка, ќе ви бидат потребни следниве компоненти:
- Arduino плоча: Делува како централен контролер кој го обработува влезот од звучниот модул и го контролира релето.
- Звучен модул: Овој модул детектира звучни влезови (како ракоплескање или гласовни команди) и испраќа сигнал до Arduino. Обично вклучува микрофон и оп-засилувач за засилување на звукот.
- Реле модул: Релето ви овозможува да контролирате уреди со повисок напон како AC сијалица. Делува како прекинувач кој може да се вклучи или исклучи од Arduino.
- AC сијалица: Изворот на светлина што ќе го контролирате. Осигурете се дека е безбедно поврзана преку релето.
Звучниот модул работи така што ги претвора звучните бранови во електрични сигнали кои Arduino може да ги чита. Реле модулот користи низок напонски влез од Arduino за да го префрли високонапонскиот AC струја вклучен или исклучен, што го прави критична компонента за безбедна работа.
Детали од техничката спецификација
| Производител | Генерички |
|---|---|
| Број на дел | Модул за детекција на звук |
| Логички/IO напон | 5 V |
| Напон на напојување | 5 V |
| Излезна струја (по канал) | 20 mA |
| Врвна струја (по канал) | 50 mA |
| Насоки за PWM фреквенција | Н/П |
| Прагови на влезна логика | Компатибилен со TTL |
| Пад на напон / RDS(on) / заситување | 0.1 V макс. |
| Термички граници | 85 °C |
| Пакет | Модул |
| Белешки / варијанти | Често користен во разни DIY проекти |
- Осигурете соодветно одведување на топлина за реле модулот.
- Користете раздвојни кондензатори во близина на напојувањето за стабилизирање на напонот.
- Чувајте го жичањето организирано за да спречите случајни кратки споеви.
- Бидете внимателни со AC напонот; осигурете се дека сите врски се безбедни.
- Прилагодете ја чувствителноста на звучниот модул на вашата околина.
Инструкции за жичање

Започнете со поврзување на звучниот модул со Arduino. Поврзете го DO (излез на податоци) пинот на звучниот модул со пин 2 на Arduino. VCC пинот треба да се поврзе со 5V излезот на Arduino, а GND пинот треба да се поврзе со еден од земјените пинови на Arduino.
Следно, поврзете го реле модулот. Поврзете го VCC пинот на релето со 5V пинот на Arduino и GND пинот со земја. Влезниот пин на релето треба да се поврзе со пин 10 на Arduino. Конечно, поврзете ја AC сијалицата со заедничкиот и нормално отворениот терминал на релето, осигурувајќи се дека колото е правилно изолирано од било кои изложени контакти.
Примери на код и објаснување
Следниот извадок од код покажува како да ги поставите пиновите и да го читате звучниот влез:
int SOUND = 2; // поврзете го излезот со DO на звучниот модул
int relayPin = 10; // Поврзан со релето (LED)
void setup() {
Serial.begin(9600);
pinMode(SOUND, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
}
Во оваа поставка, излезот на звучниот модул е поврзан со пин 2, кој е конфигуриран како влез со отпорник за повлекување нагоре. Пинот на релето е поставен како излез за контрола на релето.

Следно, главната јамка проверува за звучен влез и го контролира релето врз основа на детектираниот звук:
void loop() {
val = digitalRead(SOUND);
if(val == HIGH && lightON == LOW){
heard = 1 - heard;
delay(100);
}
lightON = val;
if(heard == HIGH){
Serial.println("Светлината е ВКЛУЧЕНА");
digitalWrite(relayPin, LOW);
}else{
Serial.println("Светлината е ИСКЛУЧЕНА");
digitalWrite(relayPin, HIGH);
}
delay(100);
}
Оваа јамка континуирано го чита звучниот влез. Ако се детектира звук (кога val е HIGH), ја префрла состојбата на светлината. Променливата heard следи дали е детектиран звук, и релето се активира соодветно.
Демонстрација / Што да очекувате
Откако сè е поврзано и кодот е поставен, можете да ја тестирате функционалноста со ракоплескање или зборување во близина на звучниот модул. Светлината треба да се вклучи со првото ракоплескање или звук и да се исклучи со следното. Бидете внимателни на растојанието и јачината на вашиот глас, бидејќи тие можат да влијаат на детекцијата (во видео на 05:00).
Вообичаени грешки вклучуваат неправилно жичање, особено со релето, што може да доведе до небезбедни услови. Осигурете се дека релето е правилно поврзано и дека AC сијалицата е правилно жичана за да избегнете било какви електрични опасности.
Временски ознаки на видеото
- 00:00 - Вовед во проектот
- 01:00 - Преглед на користените компоненти
- 02:30 - Инструкции за поврзување
- 04:15 - Објаснување на кодот
- 05:00 - Демонстрација на функционалноста
Images
/*
* 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);
}
Things you might need
-
Amazon
-
eBayISD1820 Voice Recorder from eBayebay.us
-
AliExpressPurchase this item from AliExpresss.click.aliexpress.com
Resources & references
No resources yet.
Files📁
Fritzing File
-
Sound Detection Module Module (KY-037)
Sound Detection Module.fzpz0.03 MB