Codice Arduino e video per il sensore di movimento HC-SR501
In questo tutorial esploreremo il sensore di movimento HC-SR501, progettato per rilevare il movimento tramite tecnologia a infrarossi. Il sensore può attivare un'uscita, permettendoti di controllare dispositivi come LED o allarmi in base al rilevamento del movimento. Al termine di questo tutorial, avrai una chiara comprensione di come collegare il sensore e implementare il codice Arduino per farlo funzionare efficacemente. (nel video a 00:45)

Hardware spiegato
Il sensore di movimento HC-SR501 è un modulo compatto che misura 32 per 24 millimetri, in grado di funzionare con una tensione compresa tra 5 e 20 volt. Al suo interno si trova il sensore a infrarossi LHI 778, che individua il movimento rilevando variazioni nella radiazione infrarossa. Ciò lo rende adatto a diverse applicazioni, tra cui sistemi di sicurezza e progetti robotici.
Questo modulo presenta tre pin principali:VCCper potenza,GNDper il terreno, eOUTper il segnale di uscita. Quando viene rilevato movimento, ilOUTIl pin invia un segnale alto (3,3 V TTL), che può essere utilizzato per attivare allarmi o altri dispositivi. Il sensore include anche impostazioni di sensibilità e ritardo temporale regolabili, permettendoti di personalizzarne il funzionamento in base alle tue esigenze specifiche.
Dettagli della scheda tecnica
| Produttore | HC-SR501 |
|---|---|
| Numero di parte | HC-SR501 |
| Tensione logica/IO | 3.3 V |
| Tensione di alimentazione | 5-20 V |
| Corrente di uscita (per canale) | ≤ 20 mA |
| Corrente di picco (per canale) | ≤ 50 mA |
| Linee guida sulla frequenza PWM | Non applicabile |
| Soglie logiche di ingresso | 0.8 V (BASSO), 2.0 V (ALTO) |
| Caduta di tensione / RDS(on) / saturazione | 0.1 V |
| Limiti termici | da 0 °C a 70 °C |
| Pacchetto | Modulo |
| Note / varianti | Sensibilità e ritardo temporale regolabili |
- Assicurarsi che la tensione di alimentazione sia corretta (5-20 V).
- Usa una resistenza in serie con i LED per limitare la corrente.
- Regolare il potenziometro di sensibilità per il campo di rilevamento.
- Imposta il ritardo temporale per controllare per quanto tempo l'uscita resta alta.
- Fai attenzione agli ingressi flottanti; usa resistenze di pull-up o pull-down quando necessario.
Istruzioni di cablaggio

Per cablare il sensore di movimento HC-SR501, inizia collegando ilVCCCollega il pin all'uscita 5V dell'Arduino. Successivamente, collega ilGNDCollegare il pin alla massa (GND) sull'Arduino. IlOUTIl pin dovrebbe essere collegato al pin digitale 2 dell'Arduino, che leggerà il segnale di rilevamento del movimento.
Se stai usando un LED per feedback visivo, collega l'anodo (piedino lungo) del LED al pin digitale 8 sull'Arduino. Il catodo (piedino corto) dovrebbe essere collegato a un terminale di un resistore da 680 ohm, con l'altro terminale del resistore collegato alla massa. Questa configurazione consente all'Arduino di controllare il LED in base alla rilevazione di movimento.
Esempi di codice e guida passo-passo
Il codice Arduino per questa configurazione inizializza il monitor seriale e configura i pin di input e output. Gli identificatori chiave nel codice includonomotion, che memorizza lo stato del sensore di movimento, e i pin digitali usati per leggere l'input e controllare il LED.
void setup() {
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(2, INPUT);// Input from sensor
pinMode(8, OUTPUT);// OUTPUT to alarm or LED
}In questo estratto, ilsetup()La funzione inizializza la comunicazione seriale e imposta le modalità dei pin per il sensore e il LED. Il pin 2 è impostato come ingresso per leggere l'uscita del sensore di movimento, mentre il pin 8 è impostato come uscita per controllare il LED.
void loop() {
int motion = digitalRead(2);
if(motion){
Serial.println("Motion detected");
digitalWrite(8, HIGH);
}else{
Serial.println("===nothing moves");
digitalWrite(8, LOW);
}
delay(500);
}Questo frammento di codice rappresenta il ciclo principale in cui il programma controlla continuamente lo stato del sensore di movimento. Se viene rilevato movimento, stampa "Movimento rilevato" sul monitor seriale e accende il LED. Se non viene rilevato alcun movimento, stampa "===nulla si muove" e spegne il LED.
Dimostrazione / Cosa aspettarsi
Quando la configurazione è completa e il codice è stato caricato sull'Arduino, dovresti aspettarti che il LED si accenda quando il sensore HC-SR501 rileva movimento. Inoltre, il monitor seriale visualizzerà messaggi che indicano se viene rilevato movimento o meno. Se regoli le impostazioni di sensibilità e del ritardo sul sensore, potresti notare cambiamenti nella rapidità con cui il sensore risponde al movimento (nel video alle 05:30).
Tra gli errori più comuni ci sono cablaggi scorretti, come l'inversione dei collegamenti perVCCeGND, il che potrebbe danneggiare il sensore. Assicurati che il pin di uscita del sensore sia correttamente collegato al pin di ingresso designato sull'Arduino per evitare ingressi flottanti.
Marcatori temporali del video
- 00:00Introduzione
- 00:45Panoramica dell'hardware
- 02:30Istruzioni di cablaggio
- 04:00Spiegazione del codice
- 05:30Dimostrazione
Risorse e riferimenti
Nessuna risorsa ancora.
File📁
Nessun file disponibile.