Hoe de HC-SR501 PIR-bewegingssensor te gebruiken met Arduino

How to Use the HC-SR501 PIR Motion Sensor with Arduino

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

  1. HC-SR501 PIR-bewegingssensormodule
  2. Arduino Board (bijv. UNO, Mega, Nano)
  3. Breadboard en jumper draden
  4. 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

  1. Gevoeligheid: Pas het detectiebereik aan (tot ~ 7 meter) aan.
  2. 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

  1. Sluit de Arduino via USB aan op uw computer.
  2. Open de Arduino IDE en selecteer de juiste Bord En Haven onder de Hulpmiddelen menu.
  3. Upload de code door te klikken Uploaden.
  4. Open de seriële monitor (Hulpmiddelen > Serie -monitor) en stel het baudrates in op 9600.
  5. 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

  1. Motion-geactiveerde verlichting
  2. Indringeralarmen
  3. Smart Home Automation
  4. 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!

Laat een reactie achter

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.