Kodi ya Arduino na video ya moduli ya kihisi cha mwendo HC-SR505 na relay
Katika mafunzo haya, tutaunda mfumo wa kutambua mwendo kwa kutumia sensor ya mwendo ya HC-SR505 na moduli ya relay. Mpangilio huu utakuruhusu kuwasha vifaa kama taa au buzzer wakati mwendo unapogunduliwa. Relay hufanya kama swichi ya kudhibiti vifaa vya voltage ya juu kwa usalama. Kufikia mwisho wa mwongozo huu, utakuwa na mpangilio wa sensor ya mwendo unaofanya kazi ambao unaweza kuamsha vifaa mbalimbali kulingana na ugunduzi wa mwendo. Kwa ufahamu wazi zaidi, hakikisha umeangalia video inayohusiana (katika video saa 0:00).

Vifaa Vimeelezwa
Vipengele vikuu vya mradi huu vinajumuisha sensor ya mwendo ya HC-SR505, moduli ya relay, na bodi ya Arduino. HC-SR505 ni sensor ya infrared passiv (PIR) ambayo hugundua mwendo kwa kuhisi mabadiliko katika mionzi ya infrared. Inafanya kazi kwa kupima joto linalotolewa na vitu katika uwanja wake wa maono. Wakati kitu kinachosonga kinapogunduliwa, sensor hutuma ishara kwa Arduino.
Moduli ya relay hutumiwa kudhibiti kifaa cha voltage ya juu, kama vile balbu ya taa. Inafanya kazi kama swichi inayoendeshwa kwa umeme, ikiruhusu Arduino kuwasha au kuzima kifaa kwa usalama. Relay ina mipangilio miwili mikuu: kawaida wazi (NO) na kawaida imefungwa (NC), ambayo huamua hali ya default wakati relay haijawashwa.
Maelezo ya Datasheet
| Mtengenezaji | HC-SR505 |
|---|---|
| Nambari ya sehemu | HC-SR505 |
| Voltage ya Logic/IO | 3.3V - 20V |
| Voltage ya usambazaji | 5V |
| Pato la sasa (kwa kila channel) | 20 mA |
| Kilele cha sasa (kwa kila channel) | 100 mA |
| Mwongozo wa frequency ya PWM | N/A |
| Viwango vya mantiki ya kuingiza | 0.3V (chini) / 2.5V (juu) |
| Kushuka kwa voltage / RDS(on) / kueneza | 0.2V |
| Mipaka ya joto | +70 °C |
| Kifurushi | Moduli |
| Vidokezo / lahaja | Ukubwa mdogo; matumizi ya chini ya nishati |
- Hakikisha uondoaji wa joto sahihi kwa mizigo ya sasa ya juu.
- Tumia capacitors za decoupling kwa usambazaji wa nishati thabiti.
- Kuwa makini na viunganisho vya voltage ya juu; hakikisha usalama.
- Jaribu sensor na matokeo rahisi kabla ya kuunganisha kwenye relays.
- Angalia mwelekeo wa sensor ya PIR kwa ugunduzi bora.
Maagizo ya Wiring

Ili kuunganisha sensor ya mwendo ya HC-SR505, kwanza unganisha pini ya nguvu (iliyoandikwa +) kwenye pato la 5V kwenye Arduino yako. Kisha, unganisha pini ya ardhi (iliyoandikwa -) kwenye moja ya pini za ardhi za Arduino. Pini ya ishara (pini ya katikati) inapaswa kuunganishwa kwenye pini ya digital 2 kwenye Arduino.
Kwa moduli ya relay, unganisha pini ya VCC kwenye pato la 5V kwenye Arduino na pini ya ardhi kwenye ardhi ya Arduino. Pini ya kuingiza ya relay inapaswa kuunganishwa kwenye pini ya digital 9 kwenye Arduino. Hatimaye, unganisha terminal chanya ya buzzer kwenye pini ya digital 8 na terminal yake hasi kwenye ardhi. Hakikisha umeunganisha pini za kawaida na kawaida wazi za relay ipasavyo ili kudhibiti kifaa chako.
Mifano ya Code na Maelezo
Code ya mradi huu huanzisha pini za sensor, buzzer, na relay. Inatumia kazi ya digitalRead() kuangalia mwendo na kujibu ipasavyo. Hapa chini ni sehemu kutoka kwenye kazi ya setup:
void setup() {
Serial.begin(9600); // anzisha Serial Monitor
pinMode(PIR, INPUT_PULLUP); // fafanua pini kama Input kwa sensor
pinMode(BUZZER, OUTPUT); // fafanua pini kama OUTPUT kwa buzzer
pinMode(RELAY, OUTPUT); // fafanua pini kama OUTPUT kwa relay
}
Katika sehemu hii, pini zimewekwa katika hali ya input au output. Serial.begin(9600) huanzisha mawasiliano ya serial kwa ajili ya debugging.
Loop kuu huangalia mwendo na kuwasha buzzer na relay wakati mwendo unapogunduliwa. Hapa kuna sehemu iliyolenga kutoka kwenye kazi ya loop:

void loop() {
int motion = digitalRead(PIR); // soma sensor
if(motion) {
Serial.println("Mwendo umegunduliwa");
digitalWrite(BUZZER, HIGH); // washa buzzer
digitalWrite(RELAY, LOW); // washa relay
} else {
Serial.println("===hakuna kinachosonga");
digitalWrite(BUZZER, LOW); // weka buzzer imezimwa
digitalWrite(RELAY, HIGH); // zima relay
}
delay(500);
}
Sehemu hii inasoma hali ya sensor ya PIR na kuwasha au kuzima buzzer na relay kulingana na mwendo uliogunduliwa. Kuchelewa kwa milliseconds 500 kunahakikisha loop inaangalia sensor kwa muda mwafaka.
Maonyesho / Nini cha Kutarajia
Wakati mwendo unapogunduliwa, taa iliyounganishwa kwenye relay itawashwa, na buzzer itasikika. Ikiwa hakuna mwendo unaogunduliwa, relay itazima taa, na buzzer itakuwa kimya. Fahamu kwamba HC-SR505 ina kuchelewa kwa ndani ambayo huweka pato likiwa amilifu kwa muda mfupi baada ya mwendo kugunduliwa (hadi sekunde 8), ambayo haiwezi kubadilishwa (katika video saa 5:30).
Vidokezo vya Muda wa Video
- 00:00 – Utangulizi wa mradi
- 01:30 – Maelezo ya vipengele
- 03:15 – Maagizo ya wiring
- 05:30 – Maelezo ya code
- 07:00 – Maonyesho ya mpangilio
/*
* This is the Arduino code for HC-SR501 Motion Sensor
* to detect motion of human or objects using Arduino for robotic car and other applications
* Watch HC-SR505 video https://youtu.be/qhThpxiXubI
*
// Written by Ahmad S. for Robojax.com on
// February 10, 2018 at 11:41 in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
#define PIR 2 // define pin 2 for sensor
#define BUZZER 8 // define pin 8 as for buzzer
#define RELAY 9 // define pin 9 as for relay
void setup() {
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(PIR, INPUT_PULLUP);// define pin as Input sensor
pinMode(BUZZER, OUTPUT);// define pin as OUTPUT for buzzer or LED
pinMode(RELAY, OUTPUT);// define pin as OUTPUT for relay
}
void loop() {
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
int motion =digitalRead(PIR);// read the sensor
if(motion){
Serial.println("Motion detected");
digitalWrite(BUZZER,HIGH);// turn the buzzer ON
digitalWrite(RELAY,LOW);// turn the relay ON
}else{
Serial.println("===nothing moves");
digitalWrite(BUZZER,LOW);// keep the buzzer OFF
digitalWrite(RELAY,HIGH);// turn the relay OFF
}
delay(500);
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
}
Tänker att du kanske behöver
-
AmazonBuy relay shield from Amazonamzn.to
-
Amazon
-
AliExpressBuy 5V/12V 1, 2, 4, 6, or 8-channel relay modules.click.aliexpress.com
Resurser och referenser
Inga resurser än.
Filer📁
Datablad (pdf)
-
robojax-HC-SR505-manual.pdf
robojax-HC-SR505-manual.pdf0.09 MB
Fritzing-fil
-
HC-SR501 Body Sensor Module
HC-SR501 Body Sensor Module.fzpz0.01 MB