Arduino-kode en video vir die HC-SR501-bewegingsensor
In hierdie tutoriaal gaan ons die HC-SR501-bewegingsensor verken, wat ontwerp is om beweging deur infrarooi-tegnologie op te spoor. Die sensor kan 'n uitset aktiveer, wat jou in staat stel om toestelle soos LED's of alarms te beheer op grond van bewegingopsporing. Teen die einde van hierdie tutoriaal sal jy 'n duidelike begrip hê van hoe om die sensor te bedraad en die Arduino-kode te implementeer om dit effektief te laat funksioneer. (in video by 00:45)

Hardeware Verduidelik
Die HC-SR501-bewegingsensor is 'n kompakte module wat 32 by 24 millimeter meet, en in staat is om binne 'n spanningsreeks van 5 tot 20 volt te werk. In sy kern is die LHI 778-infrarooisensor, wat beweging opspoor deur veranderinge in infrarooi-straling waar te neem. Dit maak dit geskik vir verskeie toepassings, insluitend sekuriteitstelsels en robotprojekte.
Hierdie module het drie hoofpenne: VCC vir krag, GND vir grond, en OUT vir die uitsetsein. Wanneer beweging opgespoor word, stuur die OUT-pen 'n hoë sein (3.3 volt TTL), wat gebruik kan word om alarms of ander toestelle te aktiveer. Die sensor sluit ook verstelbare sensitiwiteit- en tydvertraginginstellings in, wat jou in staat stel om sy werking aan te pas volgens jou spesifieke behoeftes.
Datablad Besonderhede
| Vervaardiger | HC-SR501 |
|---|---|
| Deelnommer | HC-SR501 |
| Logika/IO-spanning | 3.3 V |
| Toevoerspanning | 5–20 V |
| Uitsetstroom (per kanaal) | ≤ 20 mA |
| Piekstroom (per kanaal) | ≤ 50 mA |
| PWM-frekwensieriglyne | Nie van toepassing nie |
| Insetlogikadrumpels | 0.8 V (LAAG), 2.0 V (HOOG) |
| Spanningsval / RDS(on) / versadiging | 0.1 V |
| Termiese limiete | 0°C tot 70°C |
| Verpakking | Module |
| Notas / variante | Verstelbare sensitiwiteit en tydvertraging |
- Verseker korrekte kragtoevoerspanning (5-20 V).
- Gebruik 'n resistor in serie met LED's om stroom te beperk.
- Pas die sensitiwiteit-potensiometer aan vir opsporingsreeks.
- Stel die tydvertraging om te beheer hoe lank die uitset hoog bly.
- Wees versigtig met drywende insette; gebruik optrek- of af trek-resistors soos nodig.
Bedradingsinstruksies

Om die HC-SR501-bewegingsensor te bedraad, begin deur die VCC-pen aan die 5V-uitset op die Arduino te koppel. Koppel dan die GND-pen aan die grond (GND) op die Arduino. Die OUT-pen moet aan digitale pen 2 op die Arduino gekoppel word, wat die bewegingopsporingssein sal lees.
As jy 'n LED vir visuele terugvoer gebruik, koppel die anode (lang pen) van die LED aan digitale pen 8 op die Arduino. Die katode (kort pen) moet aan een terminaal van 'n 680-ohm-resistor gekoppel word, met die ander terminaal van die resistor na grond. Hierdie opstelling stel die Arduino in staat om die LED te beheer op grond van bewegingopsporing.
Kode Voorbeelde & Deurloop
Die Arduino-kode vir hierdie opstelling initialiseer die serie-monitor en konfigureer die inset- en uitsetpenne. Die sleutelidentifiseerders in die kode sluit motion in, wat die toestand van die bewegingsensor stoor, en die digitale penne wat gebruik word om inset te lees en die LED te beheer.
void setup() {
Serial.begin(9600);// stel Serie Monitor op om inligting te vertoon
pinMode(2, INPUT);// Inset van sensor
pinMode(8, OUTPUT);// UITSET na alarm of LED
}
In hierdie uittreksel initialiseer die setup()-funksie die serie-kommunikasie en stel die penmodusse vir die sensor en LED. Pen 2 word as 'n inset gestel om die bewegingsensor se uitset te lees, terwyl pen 8 as 'n uitset gestel word om die LED te beheer.
void loop() {
int motion = digitalRead(2);
if(motion){
Serial.println("Beweging opgespoor");
digitalWrite(8, HIGH);
}else{
Serial.println("===niks beweeg nie");
digitalWrite(8, LOW);
}
delay(500);
}
Hierdie kodestuk verteenwoordig die hoof lus waar die program voortdurend die toestand van die bewegingsensor nagaan. As beweging opgespoor word, druk dit "Beweging opgespoor" na die serie-monitor en skakel die LED aan. As geen beweging opgespoor word nie, druk dit "===niks beweeg nie" en skakel die LED af.
Demonstrasie / Wat om te Verwacht
Wanneer die opstelling voltooi is en die kode na die Arduino opgelaai is, moet jy verwag dat die LED sal aangaan wanneer beweging deur die HC-SR501-sensor opgespoor word. Daarbenewens sal die serie-monitor boodskappe vertoon wat aandui of beweging opgespoor word of nie. As jy die sensitiwiteit- en tydvertraginginstellings op die sensor aanpas, mag jy veranderinge opmerk in hoe vinnig die sensor op beweging reageer (in video by 05:30).
Algemene slaggate sluit verkeerde bedrading in, soos die omruil van die verbindings vir VCC en GND, wat die sensor kan beskadig. Verseker dat die sensor se uitsetpen korrek aan die aangewese insetpen op die Arduino gekoppel is om drywende insette te vermy.
Video Tydstempels
- 00:00 Inleiding
- 00:45 Hardeware Oorsig
- 02:30 Bedradingsinstruksies
- 04:00 Kode Verduideliking
- 05:30 Demonstrasie
/*
* This is the Arduino code for HC-SR501 Motion Sensor
* to detect motion of humans or objects using Arduino for robotic car and other applications
* Watch the video https://youtu.be/mZCJNOf69JI
*
* Written by Ahmad Shamshiri for Robojax Video
* Date: Dec 27, 2017, 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.
*
*/
void setup() {
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(2, INPUT);// Input from sensor
pinMode(8, OUTPUT);// OUTPUT to alarm or LED
}
void loop() {
int motion =digitalRead(2);
if(motion){
Serial.println("Motion detected");
digitalWrite(8,HIGH);
}else{
Serial.println("===nothing moves");
digitalWrite(8,LOW);
}
delay(500);
}
Hulpbronne en verwysings
Geen hulpbronne nog.
Lêers📁
Ander lêers
-
HC-SR501 motion sensor LHI778 manual
robojax-HC-SR501-motion-LHI778-manual.pdf0.20 MB