I sensori ad infrarossi passivi, conosciuti con l’acronimo PIR (Passive InfraRed), sono in grado di captare le radiazioni luminose che emanano tutti gli oggetti con una temperatura superiore allo zero assoluto. Vengono utilizzati principalmente come rilevatori di movimento e in questa guida vedremo come Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano
Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano
Materiale utilizzato in questa guida
- Arduino Nano ATmega328P CH340G: lo abbiamo già utilizzato per altri progetti (acquistabile su Amazon – eBay)
- Sensore PIR HC SR505: per la rilevazione del movimento (acquistabile su Amazon – eBay)
- 1 LED: per segnalare la rilevazione di movimento da parte del sensore PIR (acquistabile su Amazon – eBay)
- 1 Resistenza 220 OHM: per stabilizzare la tensione sul led (acquistabile su Amazon – eBay)
- Breadboard: basetta forata sperimentale (acquistabile su Amazon – eBay)
- Jumper Wire: cavetti (acquistabili su Amazon – eBay)
- Arduino IDE: ambiente di sviluppo per programmare il micro controllore Arduino (per l’installazione e la configurazione vi rimando a questi post)
Dettagli sensore HC SR505
Esistono diversi tipi di sensori PIR, quello che andremo ad utilizzare in questa guida è un mini PIR dalle dimensioni ridotte ed è identificato con il codice HC-SR505.
Come possiamo vedere nell’immagine seguente, il sensore presenta una capsula (il sensore vero e proprio) formata da materiali piroelettrici (materiali che generano energia se vengono esposti a fonti di calore), una basetta con circuito e 3 piedini. Sul sensore a destra dell’immagine è possibile vedere le sigle dei piedini:
- +: per l’alimentazione positiva (da collegare al pin 5V di Arduino)
- OUT: segnale di uscita che permette di stabilire se è stato rilevato un movimento (piedino centrale, da collegare ad uno dei piedini di I/O di Arduino)
- –: per la massa (da collegare al piedino GND di Arduino)
Queste le caratteristiche principali
- Tensione di alimentazione: DC 4.5-20V
- Corrente assorbita: <60uA
- Segnale di uscita: HIGH 3.3V / Low 0V
- Distanza coperta: 3 metri
- Temperatura di lavoro: da -20° a +80*
- Dimensione del sensore piroelettrico: diametro 10mm
Maggiori informazioni sul sensore PIR HC-SR50 potete trovarle a questo link.
Montaggio e configurazione
Effettuiamo i collegamenti del sensore HC SR505 come segue
Piedino – del sensore al pin GND di Arduino
L’OUT (piedino centrale) del sensore al pin D2 di Arduino
Piedino + del sensore al pin 5V di Arduino
Polo negativo del LED al pin GND di Arduino
Polo positivo del LED ad uno dei capi della resistenza da 220 ohm
Capo della resistenza rimasto libero al pin D3 di Arduino
Qui un esempio di collegamento, tra Arduino Nano ATmega328P e il sensore HC-SR505, realizzato con Fritzing
Una volta terminati i collegamenti avviamo Arduino IDE per configurare la board.
Con l’IDE aperto selezioniamo la scheda da Strumenti -> Scheda -> Arduino Nano
Ora selezioniamo il processore da Strumenti -> Processore -> ATmega328P
Infine selezioniamo la porta usb su cui è collegato Arduino da Strumenti -> Porta -> COM04 (N.B.: il nome della porta può essere differente)
Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano
Scketch e test su Arduino
Carichiamo lo sketch seguente nell’IDE
Analizziamo in breve il codice:
definiamo i PIN su cui colleghiamo il led e l’OUT del sensore PIR
inizializziamo i piedini (OUTPUT per il led, INPUT per il sensore HC-SR505)
nella funzione loop, se è stato rilevato un movimento, accendiamo il led
Ora non ci resta che verificare se la compilazione va a buon fine cliccando sul pulsante Verifica (contrassegnato da una V)
Se la verifica non ha segnalato errori possiamo caricare lo sketch su Arduino cliccando su Carica (pulsante contrassegnato da una freccia rivolta verso destra)
Al termine della carica dello sketch nella board Arduino, avviamo il Monitor Seriale da Strumenti -> Monitor Seriale
Se proviamo a passare davanti al sensore vedremo accendersi il led che abbiamo collegato e. sul monitor seriale, vedremo comparire il messaggio Movimento Rilevato!!
Ecco un’immagine del LED spento se non viene rilevato nessun movimento
e un’immagine del LED acceso nel caso il sensore rilevi del movimento
Bene, abbiamo visto come Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano. Se avete dubbi, domande o correzioni da fare, non esitate a commentare il post.
A presto 😉
se collego il sensore all’alimentazione 12 V cc, cosa succede al piedino OUT,posso controllarlo col tester?, vorrei fare eccitare un microrelè . grazie
Ciao Vito,
dal datasheet del sensore HC-SR505 risulta che può essere alimentato fino a 20 volt (non l’ho testato) e che sul piedino OUT, quando viene rilevato un movimento, ci sono 3.3 volt.
Per poter pilotare un relè direttamente dal sensore dovresti utilizzare un circuito di pilotaggio.
Se mi giri le caratteristiche del relè (tensione di alimentazione e corrente assorbita) provo a mettere giù lo schema con i componenti necessari per realizzarlo.
Vorrei anche io pilotare un microRelé, quelli da 5v. Hai più messo giù uno schema?
Ciao e complimenti per il tutorial molto ben spiegato.
Perchè quando avvio il Monitor Seriale mi inizia a dare una sfilza di “Movimento Rilevato!” all’infinito?
Se passo la mano sul sensore non cambia niente, continua a scrivere sempre movimento rilevato.
Dove potrebbe essere il problema?
Grazie
Ciao Luca,
hai provato ad effettuare nuovamente i collegamenti per vedere se il problema si risolve?
Il sensore è libero come mostrato nel mio circuito o ha degli ostacoli che lo fanno attivare (es. una parete o un oggetto vicino)?