Arduino-code en video voor de HC-SR501 bewegingssensor
In deze tutorial verkennen we de HC-SR501 bewegingssensor, die is ontworpen om beweging te detecteren via infraroodtechnologie. De sensor kan een uitgang activeren, waardoor je apparaten zoals LED's of alarmen kunt aansturen op basis van bewegingsdetectie. Aan het einde van deze tutorial heb je een duidelijk begrip van hoe je de sensor moet bedraden en de Arduino-code implementeert om deze effectief te laten functioneren. (in video op 00:45)

Hardware uitgelegd
De HC-SR501 bewegingssensor is een compacte module van 32 bij 24 millimeter, die kan werken binnen een spanningsbereik van 5 tot 20 volt. De kern is de LHI 778 infraroodsensor, die beweging detecteert door veranderingen in infraroodstraling waar te nemen. Dit maakt de sensor geschikt voor verschillende toepassingen, waaronder beveiligingssystemen en robotprojecten.
Deze module heeft drie hoofd pinnen: VCC voor voeding, GND voor aarde en OUT voor het uitgangssignaal. Wanneer beweging wordt gedetecteerd, stuurt de OUT-pin een hoog signaal (3,3 volt TTL), dat kan worden gebruikt om alarmen of andere apparaten te activeren. De sensor heeft ook instelbare gevoeligheids- en tijdvertragingsinstellingen, zodat je de werking kunt aanpassen aan je specifieke behoeften.
Datasheet-details
| Fabrikant | HC-SR501 |
|---|---|
| Onderdeelnummer | HC-SR501 |
| Logica/IO-spanning | 3,3 V |
| Voedingsspanning | 5–20 V |
| Uitgangsstroom (per kanaal) | ≤ 20 mA |
| Piekstroom (per kanaal) | ≤ 50 mA |
| PWM-frequentierichtlijn | Niet van toepassing |
| Ingangslogische drempels | 0,8 V (LAAG), 2,0 V (HOOG) |
| Spanningsval / RDS(on) / verzadiging | 0,1 V |
| Thermische limieten | 0°C tot 70°C |
| Behuizing | Module |
| Opmerkingen / varianten | Instelbare gevoeligheid en tijdvertraging |
- Zorg voor de juiste voedingsspanning (5-20 V).
- Gebruik een weerstand in serie met LED's om de stroom te beperken.
- Pas de gevoeligheidspotentiometer aan voor het detectiebereik.
- Stel de tijdvertraging in om te bepalen hoe lang de uitgang hoog blijft.
- Wees voorzichtig met zwevende ingangen; gebruik pull-up- of pull-down-weerstanden indien nodig.
Bedradingsinstructies

Om de HC-SR501 bewegingssensor te bedraden, begin je met het verbinden van de VCC-pin met de 5V-uitgang op de Arduino. Verbind vervolgens de GND-pin met de aarde (GND) op de Arduino. De OUT-pin moet worden verbonden met digitale pin 2 op de Arduino, die het bewegingsdetectiesignaal zal lezen.
Als je een LED gebruikt voor visuele feedback, verbind dan de anode (lange pin) van de LED met digitale pin 8 op de Arduino. De kathode (korte pin) moet worden verbonden met een aansluiting van een 680-ohm weerstand, waarbij de andere aansluiting van de weerstand naar aarde gaat. Deze opstelling stelt de Arduino in staat om de LED aan te sturen op basis van bewegingsdetectie.
Codevoorbeelden en uitleg
De Arduino-code voor deze opstelling initialiseert de seriële monitor en configureert de invoer- en uitvoerpinnen. De belangrijkste identificatoren in de code zijn motion, die de status van de bewegingssensor opslaat, en de digitale pinnen die worden gebruikt voor het lezen van invoer en het aansturen van de LED.
void setup() {
Serial.begin(9600);// setup Serial Monitor om informatie weer te geven
pinMode(2, INPUT);// Invoer van sensor
pinMode(8, OUTPUT);// UITVOER naar alarm of LED
}
In dit fragment initialiseert de setup()-functie de seriële communicatie en stelt de pinmodi in voor de sensor en LED. Pin 2 is ingesteld als invoer om de uitgang van de bewegingssensor te lezen, terwijl pin 8 is ingesteld als uitvoer om de LED aan te sturen.
void loop() {
int motion = digitalRead(2);
if(motion){
Serial.println("Beweging gedetecteerd");
digitalWrite(8, HIGH);
}else{
Serial.println("===niets beweegt");
digitalWrite(8, LOW);
}
delay(500);
}
Dit codefragment vertegenwoordigt de hoofdloop waarin het programma continu de status van de bewegingssensor controleert. Als beweging wordt gedetecteerd, print het "Beweging gedetecteerd" naar de seriële monitor en schakelt het de LED in. Als er geen beweging wordt gedetecteerd, print het "===niets beweegt" en schakelt het de LED uit.
Demonstratie / Wat te verwachten
Wanneer de opstelling compleet is en de code naar de Arduino is geüpload, moet je verwachten dat de LED oplicht wanneer beweging wordt gedetecteerd door de HC-SR501-sensor. Daarnaast zal de seriële monitor berichten weergeven die aangeven of er beweging wordt gedetecteerd of niet. Als je de gevoeligheids- en tijdvertragingsinstellingen op de sensor aanpast, merk je mogelijk veranderingen in hoe snel de sensor reageert op beweging (in video op 05:30).
Veelvoorkomende valkuilen zijn onder meer onjuiste bedrading, zoals het omwisselen van de aansluitingen voor VCC en GND, wat de sensor kan beschadigen. Zorg ervoor dat de uitgangspin van de sensor correct is verbonden met de aangewezen invoerpin op de Arduino om zwevende ingangen te voorkomen.
Videotijdstempels
- 00:00 Introductie
- 00:45 Hardware-overzicht
- 02:30 Bedradingsinstructies
- 04:00 Code-uitleg
- 05:30 Demonstratie
/*
* 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);
}
Hulpmiddelen en referenties
Nog geen middelen.
Bestanden📁
Andere bestanden
-
HC-SR501 bewegingssensor LHI778 handleiding
robojax-HC-SR501-motion-LHI778-manual.pdf0.20 MB