De HC-SR501 is een populaire passieve infrarood (PIR) bewegingssensormodule die beweging detecteert door infraroodstralingsveranderingen in zijn omgeving te meten. Het wordt vaak gebruikt in bewegingsgeactiveerde verlichting, beveiligingssystemen en IoT-projecten. Deze zelfstudie zal u begeleiden door het instellen en gebruiken van de HC-SR501 met Arduino.
Wat u nodig hebt
- HC-SR501 PIR-bewegingssensormodule
- Arduino Board (bijv. UNO, Mega, Nano)
- Breadboard en jumper draden
- Een computer met de Arduino Ide geïnstalleerd
Stap 1: Inzicht in de HC-SR501-sensor
De HC-SR501-module heeft een verstelbare gevoeligheid en vertragingstijdinstellingen, waardoor deze veelzijdig is voor verschillende bewegingsdetectietoepassingen. Het werkt op 5V -vermogen en voert een hoog signaal uit wanneer beweging wordt gedetecteerd.
HC-SR501 pinout
Pin | Functie |
---|---|
VCC | Voeding (5V) |
UIT | Digitaal uitgangssignaal |
GND | Grond |
Verstelbare instellingen
- Gevoeligheid: Pas het detectiebereik aan (tot ~ 7 meter) aan.
- Vertragingstijd: Pas de duur van het hoge signaal na beweging aan gedetecteerd (ongeveer 5 seconden tot 5 minuten).
Stap 2: De HC-SR501 bedraden tot Arduino
Hier leest u hoe u de HC-SR501 verbindt met een Arduino UNO:
HC-SR501-pin | Arduino Pin |
---|---|
VCC | 5V |
UIT | Pin 2 |
GND | GND |
Stap 3: Upload de code
Hier is een voorbeeldschets om bewegingsdetectie te controleren en de status op de seriële monitor weer te geven:
const int pirPin = 2; // Connect HC-SR501 OUT to pin 2
void setup() {
pinMode(pirPin, INPUT);
Serial.begin(9600);
Serial.println("HC-SR501 PIR Motion Sensor Test");
}
void loop() {
int motionStatus = digitalRead(pirPin); // Read the sensor output
if (motionStatus == HIGH) {
Serial.println("Motion detected!");
} else {
Serial.println("No motion detected.");
}
delay(500); // Update every 500ms
}
Stap 4: Test de instelling
- Sluit de Arduino via USB aan op uw computer.
- Open de Arduino IDE en selecteer de juiste Bord En Haven onder de Hulpmiddelen menu.
- Upload de code door te klikken Uploaden.
- Open de seriële monitor (Hulpmiddelen > Serie -monitor) en stel het baudrates in op
9600
. - Verplaats binnen het bereik van de sensor en observeer de bewegingsstatus die op de seriële monitor wordt afgedrukt.
Optioneel: een LED controleren met beweging
U kunt de code wijzigen om een LED in te schakelen wanneer de beweging wordt gedetecteerd:
De LED bedraden
LED -pin | Arduino Pin |
---|---|
Anode (+) | Pin 13 |
Kathode (-) | GND |
Gewijzigde code
const int pirPin = 2; // Connect HC-SR501 OUT to pin 2
const int ledPin = 13; // Connect LED to pin 13
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("HC-SR501 PIR Motion Sensor Test");
}
void loop() {
int motionStatus = digitalRead(pirPin); // Read the sensor output
if (motionStatus == HIGH) {
digitalWrite(ledPin, HIGH); // Turn on LED
Serial.println("Motion detected!");
} else {
digitalWrite(ledPin, LOW); // Turn off LED
Serial.println("No motion detected.");
}
delay(500); // Update every 500ms
}
Toepassingen van de HC-SR501
- Motion-geactiveerde verlichting
- Indringeralarmen
- Smart Home Automation
- Proximity-getriggerde IoT-apparaten
Problemen oplossen
- Geen beweging gedetecteerd: Zorg ervoor dat de sensor correct wordt aangedreven en de gevoeligheid op de juiste manier wordt aangepast.
- Valse triggers: Verminder omgevingsgeluid (bijvoorbeeld warmtebronnen) en vermijd directe blootstelling aan zonlicht.
- Onstabiele lezingen: Controleer op de juiste aarding en stabiele voeding.
Conclusie
Je hebt met succes de HC-SR501 PIR-bewegingssensor met Arduino gekoppeld. Deze veelzijdige sensor is perfect voor bewegingsdetectie in verschillende projecten. Experimenteer met extra functies, zoals het aanpassen van gevoeligheid of het integreren met andere componenten, om geavanceerde bewegingssystemen te creëren!