Codice Arduino e video per un modulo sensore di movimento HC-SR505 con relè
In questo tutorial realizzeremo un sistema di rilevamento del movimento utilizzando il sensore di movimento HC-SR505 e un modulo relè. Questa configurazione ti permetterà di accendere dispositivi come luci o buzzer quando viene rilevato movimento. Il relè funge da interruttore per controllare in sicurezza dispositivi ad alta tensione. Al termine di questa guida avrai una configurazione del sensore di movimento funzionante in grado di attivare vari dispositivi in base al rilevamento del movimento. Per una comprensione più chiara, assicurati di guardare il video associato (nel video a 0:00).

Hardware spiegato
I componenti principali di questo progetto includono il sensore di movimento HC-SR505, un modulo relè e una scheda Arduino. L'HC-SR505 è un sensore a infrarossi passivo (PIR) che rileva il movimento percependo variazioni nella radiazione infrarossa. Funziona misurando il calore emesso dagli oggetti nel suo campo visivo. Quando viene rilevato un oggetto in movimento, il sensore invia un segnale all'Arduino.
Il modulo relè viene utilizzato per controllare un dispositivo ad alta tensione, come una lampadina. Funziona come un interruttore azionato elettricamente, permettendo all'Arduino di accendere o spegnere il dispositivo in modo sicuro. Il relè ha due configurazioni principali: normalmente aperto (NO) e normalmente chiuso (NC), che determinano lo stato predefinito quando il relè non è attivato.
Dettagli della scheda tecnica
| Produttore | HC-SR505 |
|---|---|
| Numero di parte | HC-SR505 |
| Tensione logica/I/O | 3.3V - 20V |
| Tensione di alimentazione | 5V |
| Corrente di uscita (per canale) | 20 mA |
| Corrente di picco (per canale) | 100 mA |
| Guida alla frequenza PWM | Non applicabile |
| Soglie logiche di ingresso | 0.3V (basso) / 2.5V (alto) |
| Caduta di tensione / RDS(on)/ saturazione | 0.2V |
| Limiti termici | +70 °C |
| Pacchetto | Modulo |
| Note / varianti | Formato compatto; basso consumo energetico |
- Garantire un'adeguata dissipazione del calore per carichi ad alta corrente.
- Usare condensatori di disaccoppiamento per un'alimentazione stabile.
- Fai attenzione alle connessioni ad alta tensione; assicurati che la sicurezza sia garantita.
- Testa il sensore con uscite semplici prima di collegarlo ai relè.
- Verificare l'orientamento del sensore PIR per un rilevamento ottimale.
Istruzioni di cablaggio

Per collegare il sensore di movimento HC-SR505, innanzitutto collega il pin di alimentazione (contrassegnato con +) all'uscita 5V del tuo Arduino. Successivamente, collega il pin di massa (contrassegnato con -) a uno dei pin di massa dell'Arduino. Il pin del segnale (pin centrale) dovrebbe essere collegato al pin digitale 2 dell'Arduino.
Per il modulo relè, collega il pin VCC all'uscita 5V dell'Arduino e il pin di massa al GND dell'Arduino. Il pin di ingresso del relè dovrebbe essere collegato al pin digitale 9 dell'Arduino. Infine, collega il terminale positivo del buzzer al pin digitale 8 e il terminale negativo a massa. Assicurati di collegare correttamente i pin Common (COM) e Normally Open (NO) del relè per controllare il tuo dispositivo.
Esempi di codice e guida passo-passo
Il codice per questo progetto inizializza i pin per il sensore, il buzzer e il relè. Usa ildigitalRead()Funzione che controlla il movimento e risponde di conseguenza. Di seguito è riportato un estratto della funzione di setup:
void setup() {
Serial.begin(9600); // setup Serial Monitor
pinMode(PIR, INPUT_PULLUP); // define pin as Input for sensor
pinMode(BUZZER, OUTPUT); // define pin as OUTPUT for buzzer
pinMode(RELAY, OUTPUT); // define pin as OUTPUT for relay
}
In questo estratto, i pin sono impostati in modalità di ingresso o di uscita. IlSerial.begin(9600)inizializza la comunicazione seriale per il debug.
Il ciclo principale verifica la presenza di movimento e attiva il cicalino e il relè quando viene rilevato movimento. Ecco un estratto mirato della funzione loop:

void loop() {
int motion = digitalRead(PIR); // read the sensor
if(motion) {
Serial.println("Motion detected");
digitalWrite(BUZZER, HIGH); // turn the buzzer ON
digitalWrite(RELAY, LOW); // turn the relay ON
} else {
Serial.println("===nothing moves");
digitalWrite(BUZZER, LOW); // keep the buzzer OFF
digitalWrite(RELAY, HIGH); // turn the relay OFF
}
delay(500);
}
Questo frammento legge lo stato del sensore PIR e attiva o disattiva il buzzer e il relè in base al movimento rilevato. Il ritardo di 500 millisecondi garantisce che il ciclo verifichi il sensore a intervalli ragionevoli.
Dimostrazione / Cosa aspettarsi
Quando viene rilevato un movimento, la luce collegata al relè si accenderà e il cicalino suonerà. Se non viene rilevato movimento, il relè spegnerà la luce e il cicalino resterà silenzioso. Tieni presente che l'HC-SR505 ha un ritardo incorporato che mantiene l'uscita attiva per un breve periodo dopo il rilevamento del movimento (fino a 8 secondi), che non può essere regolato (nel video a 5:30).
Timestamp del video
- 00:00- Introduzione al progetto
- 01:30- Spiegazione dei componenti
- 03:15- Istruzioni di cablaggio
- 05:30- Revisione del codice
- 07:00- Dimostrazione della configurazione
Cose di cui potresti avere bisogno
-
Amazon
-
Amazon
-
AliExpressAcquista modulo relè a 1 2 4 6 8 canali 5v 12vs.click.aliexpress.com
Risorse e riferimenti
Nessuna risorsa ancora.
File📁
File Fritzing
-
Modulo di Sensore Corporeo HC-SR501
HC-SR501 Body Sensor Module.fzpz0.01 MB