Cum se folosește senzorul de mișcare PIR HC-SR501 cu Arduino

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

HC-SR501 este un modul popular de senzor de mișcare cu infraroșu pasiv (PIR) care detectează mișcarea prin măsurarea modificărilor de radiații infraroșii în împrejurimile sale. Este utilizat în mod obișnuit în iluminat activat în mișcare, sisteme de securitate și proiecte IoT. Acest tutorial vă va ghida prin configurarea și utilizarea HC-SR501 cu Arduino.


Ce vei avea nevoie

  1. HC-SR501 Modul senzor de mișcare PIR
  2. Arduino Board (de exemplu, Uno, Mega, Nano)
  3. Tablă de pâine și jumper
  4. Un computer cu IDE Arduino instalat

Pasul 1: Înțelegerea senzorului HC-SR501

Modulul HC-SR501 are sensibilitate reglabilă și setări de timp de întârziere, ceea ce îl face versatil pentru diverse aplicații de detectare a mișcărilor. Funcționează pe puterea de 5V și iese un semnal ridicat atunci când este detectată mișcarea.

HC-SR501 PINOUT

Ac Funcţie
VCC Sursă de alimentare (5V)
Afară Semnal de ieșire digitală
GND Sol

Setări reglabile

  1. Sensibilitate: Reglați intervalul de detecție (până la ~ 7 metri).
  2. Timp de întârziere: Reglați durata semnalului ridicat după detectarea mișcării (aproximativ 5 secunde până la 5 minute).

Pasul 2: Cablarea HC-SR501 către Arduino

Iată cum să conectați HC-SR501 la un Arduino UNO:

Pin HC-SR501 Pinul Arduino
VCC 5V
Afară Pin 2
GND GND

Pasul 3: Încărcați codul

Iată un exemplu de schiță pentru a monitoriza detectarea mișcării și afișarea stării pe monitorul serial:

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
}

Pasul 4: Testați configurarea

  1. Conectați Arduino la computer prin USB.
  2. Deschideți IDE Arduino și selectați corect Bord şi Port sub Instrumente meniu.
  3. Încărcați codul făcând clic pe Încărcați.
  4. Deschideți monitorul în serie (Instrumente > Monitor în serie) și setați rata de transfer la 9600.
  5. Deplasați -vă în intervalul senzorului și observați starea mișcării tipărită pe monitorul în serie.

Opțional: controlul unui LED cu mișcare

Puteți modifica codul pentru a porni un LED la detectarea mișcării:

Cablarea LED -ului

Pinul LED Pinul Arduino
Anod (+) Pinul 13
Catod (-) GND

Cod modificat

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
}

Aplicațiile HC-SR501

  1. Iluminare activată în mișcare
  2. Alarme intrus
  3. Automatizare inteligentă pentru casă
  4. Dispozitive IoT declanșate de proximitate

Depanare

  • Nu a fost detectată nicio mișcare: Asigurați -vă că senzorul este alimentat corect și sensibilitatea este ajustată corespunzător.
  • Declanșatori falși: Reduceți zgomotul de mediu (de exemplu, surse de căldură) și evitați expunerea directă a soarelui.
  • Citiri instabile: Verificați dacă există împământare corespunzătoare și sursă de alimentare stabilă.

Concluzie

Ați interfațat cu succes senzorul de mișcare PIR HC-SR501 cu Arduino. Acest senzor versatil este perfect pentru detectarea mișcării în diferite proiecte. Experimentați cu caracteristici suplimentare, cum ar fi reglarea sensibilității sau integrarea acesteia cu alte componente, pentru a crea sisteme avansate bazate pe mișcare!

Lasă un comentariu

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.