L'HC-SR501 è un popolare modulo del sensore di movimento a infrarossi passivi (PIR) che rileva il movimento misurando i cambiamenti di radiazione a infrarossi nei suoi dintorni. È comunemente usato nell'illuminazione attivata dal movimento, nei sistemi di sicurezza e nei progetti IoT. Questo tutorial ti guiderà attraverso l'impostazione e l'utilizzo di HC-SR501 con Arduino.
Cosa avrai bisogno
- Modulo sensore di movimento PIR HC-SR501
- Arduino Board (ad es. Uno, Mega, Nano)
- Breadboard e fili jumper
- Un computer con l'IDE Arduino installato
Passaggio 1: Comprensione del sensore HC-SR501
Il modulo HC-SR501 ha impostazioni di sensibilità e tempo di ritardo regolabili, rendendolo versatile per varie applicazioni di rilevamento del movimento. Funziona su potenza 5 V e subita un segnale elevato quando viene rilevato il movimento.
Pinout HC-SR501
Spillo | Funzione |
---|---|
VCC | Alimentazione (5V) |
FUORI | Segnale di uscita digitale |
GND | Terra |
Impostazioni regolabili
- Sensibilità: Regolare l'intervallo di rilevamento (fino a ~ 7 metri).
- Tempo di ritardo: Regolare la durata del segnale alto dopo il rilevamento del movimento (circa 5 secondi a 5 minuti).
Passaggio 2: cablaggio da HC-SR501 ad Arduino
Ecco come collegare HC-SR501 a un Arduino Uno:
Pin HC-SR501 | Arduino Pin |
---|---|
VCC | 5v |
FUORI | Pin 2 |
GND | GND |
Passaggio 3: caricare il codice
Ecco uno schizzo di esempio per monitorare il rilevamento del movimento e visualizzare lo stato sul monitor seriale:
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
}
Passaggio 4: testare l'installazione
- Collega l'Arduino al tuo computer tramite USB.
- Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
- Carica il codice facendo clic Caricamento.
- Apri il monitor seriale (Utensili > Monitor seriale) e impostare il tasso di baud su
9600
. - Spostati all'interno della gamma del sensore e osservare lo stato di movimento stampato sul monitor seriale.
Opzionale: controllo di un LED con movimento
È possibile modificare il codice per attivare un LED quando viene rilevato il movimento:
Cablaggio del LED
Pin a LED | Arduino Pin |
---|---|
Anodo (+) | Pin 13 |
Catodo (-) | GND |
Codice modificato
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
}
Applicazioni dell'HC-SR501
- Illuminazione attivata dal movimento
- Allarmi intrusi
- Automazione della casa intelligente
- Dispositivi IoT attivati dalla prossimità
Risoluzione dei problemi
- Nessun movimento rilevato: Assicurarsi che il sensore sia alimentato correttamente e che la sensibilità sia regolata in modo appropriato.
- False trigger: Ridurre il rumore ambientale (ad es. Fonti di calore) ed evitare l'esposizione diretta alla luce solare.
- Letture instabili: Verificare la messa a terra adeguata e l'alimentazione stabile.
Conclusione
Hai interfacciato con successo il sensore di movimento PIR HC-SR501 con Arduino. Questo sensore versatile è perfetto per il rilevamento del movimento in vari progetti. Sperimenta caratteristiche aggiuntive, come la regolazione della sensibilità o l'integrazione con altri componenti, per creare sistemi basati sul movimento avanzati!