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
- HC-SR501 Modul senzor de mișcare PIR
- Arduino Board (de exemplu, Uno, Mega, Nano)
- Tablă de pâine și jumper
- 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
- Sensibilitate: Reglați intervalul de detecție (până la ~ 7 metri).
- 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
- Conectați Arduino la computer prin USB.
- Deschideți IDE Arduino și selectați corect Bord şi Port sub Instrumente meniu.
- Încărcați codul făcând clic pe Încărcați.
- Deschideți monitorul în serie (Instrumente > Monitor în serie) și setați rata de transfer la
9600
. - 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
- Iluminare activată în mișcare
- Alarme intrus
- Automatizare inteligentă pentru casă
- 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!