Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano

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

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano occorrente

  • Arduino Nano ATmega328P CH340G: lo abbiamo già utilizzato per altri progetti (acquistabile su AmazoneBay)
  • Sensore PIR HC SR505: per la rilevazione del movimento (acquistabile su AmazoneBay)
  • 1 LED: per segnalare la rilevazione di movimento da parte del sensore PIR (acquistabile su AmazoneBay)
  • 1 Resistenza 220 OHM: per stabilizzare la tensione sul led (acquistabile su AmazoneBay)
  • Breadboard: basetta forata sperimentale (acquistabile su AmazoneBay)
  • Jumper Wire: cavetti (acquistabili su AmazoneBay)
  • 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:

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano piedinatura

  • +: 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

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano circuito 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

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano selezione scheda

Ora selezioniamo il processore da Strumenti -> Processore -> ATmega328P

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano seleziona processore

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 selezione porta


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)

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano verifica codice

Se la verifica non ha segnalato errori possiamo caricare lo sketch su Arduino cliccando su Carica (pulsante contrassegnato da una freccia rivolta verso destra)

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano carica codice

Al termine della carica dello sketch nella board Arduino, avviamo il Monitor Seriale da Strumenti -> Monitor Seriale

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano avvio 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!!

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano risultati su monitor seriale

Ecco un’immagine del LED spento se non viene rilevato nessun movimento

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano led spento

e un’immagine del LED acceso nel caso il sensore rilevi del movimento

Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano led acceso

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 😉

5 commenti su “Gestire un sensore di movimento PIR HC-SR505 con Arduino Nano”

  1. se collego il sensore all’alimentazione 12 V cc, cosa succede al piedino OUT,posso controllarlo col tester?, vorrei fare eccitare un microrelè . grazie

    1. 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.

  2. 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

    1. 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)?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *