Sensore PIR: primo progetto e test

Lunedì sono arrivati tanti nuovi sensori e schede da usare con Arduino, non ho resistito alla tentazione di sperimentare da subito uno di essi: il sensore PIR sensore pir Questo sensore, secondo le specifiche rilasciate dal produttore, è in grado di rilevare un oggetto in movimento in una stanza fino ad una distanza di 7 metri e con un angolo di incidenza di 110°. Per alimentarlo basta Arduino con i suoi 5v in quanto il suo assorbimento è di 50μA. Il sensore presenta una cupola in plastica, removibile, sfaccettata in modo da permettergli la copertura dei 110° indicati: sensore PIRtolta la cupola che fa da diffusore del raggio IR il sensore si presenta come nella figura a destra. Dal sensore fuoriescono 3 cavi di collegamento, da sinistra a destra:

  • nero: GND o massa ( polo negativo di alimentazione )
  • rosso: 5V ( polo positivo di alimentazione )
  • verde: segnale digitale

Il tipo di colegamento puoi vederlo meglio in figura: connessioni PIR il funzionamento è semplice: quando rileva un movimento l’uscita del segnale passa da LOW ad HIGH, secondo le specifiche del costruttore l’uscita passa da 0,4v a 4v, quindi da una soglia inferiore ai 2,5v ad una superiore. Il sensore presenta anche un potenziometro per regolare il tempo di eccitazione dopo aver rilevato il movimento, ossia il tempo in cui il pin del segnale digitale resta a HIGH prima che, in assenza di movimento, torni a LOW: delay time PIR ho eseguito qualche test ruotando al massimo grado in senso orario il potenziometro di delay rilevando con arduino un tempo di circa 19-20 sec prima che il sensore torni a LOW, in assenza di movimenti rilevati. Specifico in assenza di movimenti rilevati in quanto se nel suo raggio d’azione si ripresenta un oggetto in movimento il suo stato resta HIGH in quanto il contatore interno si resetta e comincia a contare 19-20sec da quel momento. Per realizzare il progetto che ti propongo ho posizionato il potenziometro come in figura, riducendo a minimo il tempo tra rilevazione dell’oggetto e passaggio a LOW.

Il progetto con il sensore PIR

per eseguire i test ti occorre:

  • n.1 arduino uno o equivalente ( duemilanove, mega, leonardo, mini, ecc… )
  • n.1 sensore PIR
  • n.1 breadboard
  • n.1 resistenza da 470Ω
  • n.1 led rosso
  • n.1 led verde
  • qualche cavo per breadboard

ora che hai tutto puoi collegarlo come in figura:

schema sensore PIR

Lo sketch

L’esempio ce puoi utilizzare per testare il sensore PIR con arduino è molto semplice, l’idea è che quando passi un oggetto in movimento passa davanti al sensore la luce verde si accende, ovviamente invertendo i pin a cui sono connessi i due led puoi ottenere il risultato inverso, ossia che il led verde resta sempre acceso ed il led rosso si accende quando il sensore PIR rileva il movimento di un oggetto.

int segnal   = 3;
int ledGreen = 4;
int ledRed   = 5;

void setup()
{
  pinMode( ledGreen, OUTPUT );
  pinMode( ledRed, OUTPUT );

  digitalWrite( ledGreen, LOW );
  digitalWrite( ledRed, LOW );
}

void loop()
{
  int pirSegnal = digitalRead( segnal );
  int pirSegnal2= (pirSegnal == HIGH)? LOW:HIGH;

  digitalWrite( ledGreen, pirSegnal );
  digitalWrite( ledRed, pirSegnal2 );

  delay(100);
}

Se leggi lo schema ti accorgerai che le prime linee determinano i pin a cui hai collegato i led ed il segnale digitale proveniente dal sensore pir.

Il passaggio di stato e quindi l’accensione del led verde nella condizione di allarme lo ottieni con l’operazione di if presente alla linea 17: in cui il valore digitale letto sul pin 3 ( pirSegnal ) viene invertito da HIGH a LOW e viceversa;

Gli altri comandi ti sono tutti oramai noti.

Il video

ed ecco un video demo in cui il led verde si accende ogni volta che la mano passa nell’area sensibile del sensore:

Buon divertimento !!!

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/sensore-pir-primo-progetto-e-test.html

95 commenti

Vai al modulo dei commenti

    • Roberto il 4 Ottobre 2012 alle 07:45
    • Rispondi

    Ciao Mauro,
    vorrei provare uno dei miei PIR usati per gli antifurti, purtroppo non sono uguali a quello che tu hai provato. I miei hanno un + e – per i 12V, poi ho 2 contatti (se non sbaglio sono normalmente aperti…)

    Posso usarlo? oppure devo necessariamente acquistare quello che hai provato tu?

    Grazie
    R

    1. Ciao Roberto,
      il divertimento con Arduino è proprio sperimentare con strumenti riciclati o che già possiedi.
      Se non avessi già un sensore PIR, come me, dovresti acquistarlo, siccome ne possiedi uno prova ad utilizzarlo.

      I contatti puoi verificarli con il tester se siano na o nc, magari sono uno ed uno, puoi trattarli come semplici pulsanti utilizzando una resistenza di pull-up o pull-down per rendere stabile l’uscita.

      Mauro

    • Roberto il 13 Ottobre 2012 alle 17:15
    • Rispondi

    Grazie Mauro!
    premetto che i miei pir sono a 12v, comunque ho fatto in questo modo:

    Ho alimentato il pir con i 5v di arduino, mentre il terzo filo di arduino, il pin 3, l’ ho collegato a uno dei 2 contatti “alarm” del pir, ma non funziona. Ho provato entrambi i contatti, niente..dove sbaglio? Lo schema è banale, forse il pir non è appropriato? Per sfruttare questo pir dovrei collegare 2 fili di arduino forse?

    1. Ciao Roberto,
      se i due sensori PIR in tuo possesso funzionano a 12v probabilmente a 5v non ricevono sufficiente alimentazione.
      Puoi procedere o costuendoti un circuito con un optoisolatore in cui il contatto del PIR accenda il led dell’opto isolatore mediante una resistenza appropriata e il fotoresistore lo alimenti a 5v oppure realizzando un partitore di resistenze in cui il contatto del PIR è connesso a monte di una resistenza da circa 1500 ohm, nell’altro capo della resistenza ci colleghi il pin di arduino e da questo metti una resistenza da 1000 ohm verso il negativo di Arduino ( GND ).
      Ricorda che tutti i pin negativi: PIR, optoisolatore, Arduino, ecc… devono essere connessi assieme.

      Io preferisco la prima strada e trovi un articolo sul blog, presto scriverò anche un articolo su come si realizza un partitore.

      Mauro

      • Alberto il 10 Giugno 2013 alle 14:53
      • Rispondi

      Una precisazione sui sensori PIR dei sistemi di allarme.

      I sensori infrarossi detti PIR hanno fondamentalmente tutti lo stesso tipo di connessione.
      Alimentazione 12Vdc ed uscita in contatto a relé NA e NC
      Per collegarlo ad Arduino basta fare come segue, invertendone la logica se necessario.

      Collegare una resistenza da circa 10KOhm tra +5Vdc di Arduino e un input digitale a scelta.
      in condizioni normali l’ingresso sará a 5Vdc ovvero allo stato logico HIGH
      Prendete ora i due contatti relé del sensore e collegatene uno alla Gnd di Arduino e l’altro allo stesso input digitale che avete scelto in precedenza.
      A questo punto avrete quanto segue:
      se avete utilizzato il contatto NA del PIR, lo stato dell’ingresso digitale sará normalmente HIGH che diventa LOW se il sensore rileva una presenza.
      se avete usato il contatto NC invece, lo stato dell’ingresso digitale sará normalmente LOW che diventa HIGH se il sensore rileva una presenza.

      Questa logica puó essere modificata da pull-up a pull-down senza problemi. L’importante e non lasciare l’input digitale flottante ovvero senza collegamento.

      Alberto

      1. Grazie Alberto,
        ottima precisazione come sempre.

        Mauro

    • Roberto il 16 Ottobre 2012 alle 07:52
    • Rispondi

    thanks Mauro, e se alimentassi separatamente il pir a 12v?

    • Roberto il 17 Ottobre 2012 alle 15:44
    • Rispondi

    Scusa Mauro,

    forse comprerò gli stessi PIR che utilizzzi tu! 2 domande:

    – se un soggetto si trova davanti al pir per 2-3 minuti, il led verde rimane acceso per la stessa durata della permanenza del soggetto?
    – dove posso comprare questi pir?

    R

    1. Ciao Roberto,
      io ho comprato questo sensore da robot-domestici.it, tuttavia mi piacerebbe far funzionare quelli che già hai e magari ne compri altri per ampliare il tuo progetto, che ne dici?

      Sulla permanenza non so dirti, dovrei fare qualche test.
      Spero presto di poter riprendere questo progetto e fare tutti i test che possono essere interessanti.

      Mauro

    • Gabriele il 26 Dicembre 2012 alle 18:40
    • Rispondi

    Ciao Mauro vorrei sapere, cosa hai collegato al sensore PIR?
    Dalla foto “connessioni dal sensore PIR” (la 3° foto a partire dall’alto) nell’articolo c’è collegato un modulo con scritto DFRobot, cosè? cosa serve? è necessario?
    Sto cercando in internet materiale per fare un piccolo sistema di sorveglianza in casa e volevo sapere se è necessario questo modulo per interfacciare il sensore con Arduino.

    Ti ringrazio e faccio i complimenti per l’articolo.

    1. Ciao Gabriele,
      la scheda che vedi nella 3° figura è il sensore pir girato, l’ho messa per indicare i collegamenti come sono eseguiti.
      Leggendo l’articolo scoprirai a cosa serve e come opera.

      Mauro

    • Andrea il 2 Gennaio 2013 alle 12:24
    • Rispondi

    Buondì 🙂 Complimenti per i tuoi articoli!
    Volevo chiederti, avresti il riferimento del sensore PIR utilizzato nella prova? 🙂
    Grazie!

    1. Ciao Andrea,
      io l’ho acquistato da robot-domestici.it, mi sembra ne abbiano solo un tipo con il cavetto.

      Mauro

    • Simone il 5 Febbraio 2013 alle 15:49
    • Rispondi

    Ciao Mauro,
    innanzitutto complimenti per il tuo sito, è veramente fantastico.
    Per caso mi sono trovato tra le mani dei sensori PIR murata e700 e vorrei riuscire ad utilizzarli in qualche modo. Ho provato a collegarlo ad arduino ma non da segni di vita. Guardando il tuo post inoltre ho visto che il tuo PIR è dotato di una scheda di interfaccia di cui il mio PIR non è dotato (in pratica ho trovato solo il componente discreto così com’è) e mi chiedevo se e in che modo posso utilizzarlo con arduino.
    Ti ringrazio in anticipo.
    Simone.

    1. Ciao Simone,
      grazie per i complimenti.
      Ho cercato in internet il tipo di sensore che hai ed ho trovato il datasheet sul sito della casa produttrice: http://www.murata.com
      Sul Datasheet c’è anche il circuito tipicamente utilizzato e consigliato per utilizzare questo sensore, puoi collegare ad arduino l’uscita del circuito consigliato dal produttore.

      Mauro

    • Marius il 16 Febbraio 2013 alle 19:09
    • Rispondi

    Ciao Mauro,
    nella mia ricerca su internet ho trovato il tuo sito ed il tutto mi è stato utile ma vorrei chiederti un piccolo aiuto. Sto cercando un sensore tipo PIR però con un campo di azione di massimo un metro con un angolo di 90° circa. Sai se esiste qualcosa di simile o dove posso cercare?
    Grazie

    1. Ciao Marius,
      penso tu possa cercare nel campo degli allarmi.

      Mauro

        • Marius il 19 Febbraio 2013 alle 08:32
        • Rispondi

        Ho cercato ma sono tutti con campo di azione dai 3/4 metri in su… non so più dove cercare. Comunque grazie.
        Se trovi qualcosa o se hai qualche soluzione alternativa ti chiederei cortesemente di farmelo sapere via e-mail. Grazie ancora

        1. Ciao Marius,
          nessuno di quelli che hai trovato è regolabile?
          Mi sembra che i modelli di sensore pir utilizzati negli impianti professionali possano regolare la sensibilità ed il raggio di azione.

          Mauro

            • Alberto il 10 Giugno 2013 alle 19:18

            Normalmente i sensori infrarossi o PIR non hanno la possibilitá di regolare la profonditá dell’azione perché la sensibilitá del sensore serve per discriminare le piccole differenze di temperatura che deve rilevare.
            Davanti al sensore c’é una lente che scompone l’ambiente in fasci in modo da creare le zone necessarie a percepire la differenza di temperatura generata da un corpo caldo che le attraversa.

            Per limitare il raggio di azione non si puó fare nulla ma si possono avere dei “raggi” diretti solo dove serve senza che altre aree ddel nostro ambiente vadano ad influenzare la captazione del PIR.

            Per distanze minori ai 8-10 metri é meglio utilizzare gli ultrasuoni o gli ottici oppure ancora le barriere ad infrarossi.

            Alberto

  1. Salve sono un novellino e sto progettando un semplice progetto scolastico, ho deciso di utilizzare e già acquistato la nuova Arduino Due da utilizzare poi con sensori PIR. Ho appena letto che la nuova scheda possiede il processore che lavora a 3,3V… La mia domanda è questa, la scheda arduino supporta, gestisce 4 sensori PIR che hanno bisogno di un alimentazione 3-5V e rilasciano un segnale digitale di 4V (HIGH) e 0,4V (LOW), senza bruciare il processore o danneggiare la scheda??
    Questo è il sensore: http://www.homotix.it/catalogo/infrarossi/digital-infrared-motion-sensor-s75
    Grazie per la disponibilità.
    Alessandro

    1. Ciao Alessandro,
      per un primo progetto con Arduino ti consiglio l’arduino Uno o Leonardo.
      Lavorano a 5v e trovi tutti i sensori che vuoi pir ed anche altri.
      I 3,3v di arduino due la rendono più adatta a chi ha un po’ di esperienza e conoscenza di elettronica.

      Io comunque risolvo con i partitori di tensione, sono composti da resistenze, facili da costruire e usare.

      Ho scritto un articolo che ti consiglio di leggere.

      Mauro

    • Giorgio Zogani il 3 Giugno 2013 alle 12:31
    • Rispondi

    Buon giorno

    Chiedo cortesemente una consulenza, devo alimentare n.15 led da 1,5 watt cad.uno (12volt)

    inseriti nella scala interna di casa, mi è possibile utilizzare questi sensori, uno in cima ed uno a monte, creando una deviata?

    grazie saluti

    1. Ciao Giorgio,
      il sensore pir si limita a dirti che ha rilevato il passaggio di un corpo nel suo raggio di azione ed a ritardare lo spegnimento.
      Se ci usi arduino, dei relay ed uno sketch scritto per gestire i sensori puoi sicuramente fare tutto quello che desideri.

      Mauro

    • loris il 16 Dicembre 2013 alle 17:33
    • Rispondi

    Ciao mauro ti volevo chiedere, se volessi aggiungere altri sensori pir nel mio progetto di maturita come potrei fare ?? e se c’e’ la possibilita di aggiungere un display lcd..grazie e buona giornata

    1. Ciao Loris,
      puoi farlo, così come hai aggiunto il primo aggiungi altri sensori.
      Anche il display LCD puoi aggiungerlo come descritto in uno dei miei articoli dedicati proprio ai display.

      Mauro

    • loris il 17 Dicembre 2013 alle 10:50
    • Rispondi

    ciao mauro
    innanzitutto ti ringrazio per la risposta …ma ti vokevo chiedere se con un solo arduino riesco a fare ls gestione di piu sensori ?? se si quanti??
    grazie e buona giornata

    1. Ciao Loris,
      dipende dal tipo di sensori che vuoi utilizzare.
      I sensori per arduino esistono di molteplici tipi: Analogoci, digitali, SPI, I2C

      Ognuno di quei sensori prevede la possibilità o meno di essere collegato con altri sensori simili o compatibili.

      Ti consiglio la lettura dei miei articoli del corso base per comprendere meglio come è fatto arduino e che tipo di segnali/sensori puoi collegare.

      Mauro

    • Loris il 20 Marzo 2014 alle 12:57
    • Rispondi

    Ciao Mauro,
    volevo chiederti il nome specifico di questo sensore pir che hai usato,e se lo sketch che hai illustrato prima e’ completo oppure no …:) grazie mille e buona giornata

    1. Ciao Loris,
      il sensore lo trovi sul sito robot-domestici.it non penso abbia un nome è tra i sensori di prossimità.
      Lo sketch fa esattamente quello che vedi e che trovi descritto nel testo.

    • francesco il 16 Giugno 2014 alle 14:01
    • Rispondi

    ciao mauro, attualmente svolgo un lavoro di tesi di laurea, per implementare un rover con un sensore pir. Avrei bisogno di alcune informazioni per capire come lavora tale sensore. In particolare vorrei capire cosa il sensore riceve in ingresso, n’onda elettromagnetica con dipendenza dalla temperatura? se è così, nella programmazione, il termine di comparazione per rilevare una sorgente di calore è la temperatura?grazie.francesco.

    1. Ciao Francesco,
      esistono diversi tipi di sensori PIR sul mercato.
      Se ricordo bene i sensori di tipo IR usano il principio di funzionamento da te descritto, tuttavia potrei sbagliarmi o il tuo sensore potrebbe avere caratteristiche differenti.
      Ti consiglio di far riferimento al datasheet del produttore eventualmente chiedendo al produttore stesso il principio di funzionamento.

      • francesco il 16 Giugno 2014 alle 19:30
      • Rispondi

      Ciao mauro, ti chiedo una cosa nel codice postato…quando si accende il sensore? quando trova un valore maggiore di 100? ma di cosa? grazie.saluti

      1. Ciao Francesco il valore é quello letto sul pin a cui è connesso il sensore.
        Se leggi tutta la mia descrizione ti sarà chiaro.
        Se vuoi conoscere come leggere valori dai pin ti consiglio il mio corso arduino online gratuito

    • francesco il 17 Giugno 2014 alle 10:24
    • Rispondi

    ok grazie mille

    • francesco il 3 Luglio 2014 alle 13:55
    • Rispondi

    ciao mauro, ti vorrei chiedere una mano nell’elaborazione dello sketch di tale sensore. Vorrei stampare a video il valore dei volts letti dal sensore in modo da poter capire se gli oggetti possono essere diversificati in relazione al valore dei volt. Ho visto un po in giro, ti posto il codice così mi puoi dire come può essere modificato per avere tale risultato.Grazie per la disponibilità.

    [ codice rimosso in automatico ]

    1. Ciao Francesco,
      purtroppo, come hai letto in fondo ad ogni articolo, non è possibile aggiungere codice nei commenti.
      Mi incuriosiva la possibilità di comprendere da questo tipo di sensore l’oggetto rilevata.
      Purtroppo i sensori pir come quello provato sono dotati di una elettronica che si occupa di trasferire solo il segnale on/off temporizzato.

      Probabilmente potresti provare con un sensore pir puro, senza elettronica.

    • francesco il 4 Luglio 2014 alle 10:21
    • Rispondi

    si l’applicazione presentata era interessante…maledetto sensore. Grazie ancora mauro.buon lavoro.

    • francesco il 4 Luglio 2014 alle 10:28
    • Rispondi

    mi puoi fare un esempio di sensori PIR puri? grazie mauro.

    1. Ciao Francesco,
      devi prendere la sola parte di rilevazione ( componente attivo ) e studiare il datasheet per costruirti un circuito di controllo in grado di restituirti i valori che ti interessano.
      Considera che non sarà mai una telecamera ad infrarossi e non vedrai mai le macchie di calore come nelle serie televisive.
      Forse possono fare cose simili i rilevatori a microonde ma costano decisamente di più e sono molto più complessi.

  2. Ciao Mauro,

    complimenti per questo tutorial.
    Ho messo il link a questo tutorial sul mio sito, sotto la voce
    Elettronica > Arduino > Projects, Sensors & Boards.> Sensors > PIR

    Se vuoi aggiungere altri tutorial provenienti dal tuo sito fammi sapere.

    Fabio

    1. Ciao Fabio, grazie per la citazione.
      Ho letto il progetto del tuo sito e mi sembra molto interessante. Se ti occorre alto materiale prendi pure dal blog.

    • Andrea il 1 Dicembre 2014 alle 16:16
    • Rispondi

    La sintassi

    (pirSegnal == HIGH)? LOW:HIGH;

    Non l’avevo mai vista!!!

      • Andrea il 1 Dicembre 2014 alle 16:22
      • Rispondi

      Ciao Mauro…

      Volevo sapere 2 cosine…

      1) è possibile inserire il led di rilevamento (con relativa resistenza da 220) tra il grd e il segnale del pir, risparmiando così dei preziosi pin di Arduino?

      2) quanto potrebbero essere lunghi i cavi di collegamento tra Arduino e il PIR? Magari si potrebbero usare 3 cavi di un cavo ethernet già passato in una canalina?

      Grazie!!!

      1. Ciao Andrea,
        i collegamenti mostrati sono solo un esempio, puoi cambiarli tutti se vuoi, il senso dell’esempio e controllare die led in funzione del segnale proveniente dal sensore pir.
        Più i cavi sono lunghi maggiore deve essere la sezione.

    1. Ciao Andrea,
      intendi su arduino o in generale nella programmazione?

        • Andrea il 2 Dicembre 2014 alle 23:21
        • Rispondi

        intendevo su Arduino… anche in vb c’è qualcosa di simile:

        iif(condizione, vero,falso)

        1. Ciao Andrea, non ho capito la domanda.

    • Enrico il 13 Gennaio 2015 alle 08:53
    • Rispondi

    Buongiorno Mauro,

    se volessi avere indicazione sulla data e ora del rilevamento quale è la funzione da usare nello sketch?

    Grazie

    1. Ciao Enrico,
      non ho capito la domanda.

    • giuliano il 16 Gennaio 2015 alle 17:09
    • Rispondi

    ciao mauro, ho visto ho visto che con arduino si fanno miracoli, io vorrei sapere, se possibile come accendere un led ad alta intensità con un modulo pir descritto qui, dato che ne ho quattro !!!!! ma senza arduino… ciao grazie

    1. Ciao Giuliano,
      non so se si possano fare miracoli con aduino, io non so farne 🙂
      Questo sensore pir restituisce un segnale HIGH quando scatta, hai provato a collegarci un relay che controlla il tuo led ad alta intensità?

        • giuliano il 19 Gennaio 2015 alle 20:15
        • Rispondi

        e ma.sull’ uscita ci sono 3 volt a vuoto troppo poco per pilotare un relè come faccio ad aumentare i volt in uscita?

        1. Ciao Giuliano,
          puoi mettere un circuito con transistor o con un optoisolatore, io preferisco il secondo metodo.

    • Ernesto il 19 Febbraio 2015 alle 20:52
    • Rispondi

    ciao Mauro,
    volevo sapere se questo bellissimo sensore è applicabile ad oggetti in movimento e non solo al movimento del calore umano, ad esempio se rileva lo spostamento di una macchinina tipo hot wheels.

    1. Ciao Ernesto,
      per quanto e so io no, è un sensore che lavora con le fonti termiche rilevabili da IR

    • Matteo il 24 Febbraio 2015 alle 22:11
    • Rispondi

    Ciao Mauro,
    ti volevo chiedere perchè non riesca a fare ciò che hai fatto tu nel tutorial, pur provandoci, e poi facendo copia e incolla dello sketch per vedere se avessi sbagliato qualcosa, i led non funzionano come nel video, m puoi aiutare? grazie

    1. Ciao Matteo,
      verifica che i collegamenti siano i medesimi e che il sensore si comporti allo stesso modo di quello usato da me, a volte basta che il sensore ti dia un valore differente e lo sketch va modificato.

  3. Secondo me nel setup manca questa istruzione:

    pinMode(segnal, INPUT);

    Cioè bisogna settare come input il segnale relativo al pir ( in modo da leggerlo correttamente da Arduino). Senza, infatti, non mi funzionava.

    Un saluto e grazie per l’articolo 😉

    1. Ciao Ren,
      grazie per il suggerimento.
      Il comando pinMode a volte può essere omesso, ma dipende anche dal tipo di componentistica che si utilizza e come colloquia con Arduino, nel mio caso non è stato necessario; nel tuo ed in quello di molti altri potrebbe essere la differenza tra un progetto funzionante ed uno non funzionante.

    • Agostino il 5 Giugno 2015 alle 20:51
    • Rispondi

    Ciao Mauro,
    ho provato il tuo programma, ma non so perché il sensorePir è sempre in stato alto, cioè vede sempre un movimento, quindi il led Verde è sempre acceso, sai quale potrebbe essere il problema? Grazie per una tua risposta.

    1. Ciao Agostino,
      il sensore pir è il medesimo che ho mostrato io acquistato da robotics-3d.com ? potrebbe trattarsi di modello differente che va tarato.

    • Luca il 10 Luglio 2015 alle 12:27
    • Rispondi

    Ciao Mauro, grazie per questo post! Sto cercando di realizzare un progetto con 2 sensori PIR. Il problema che ho è che, anche tarando al minimo il potenziometro, il valore del pin rimane HIGH per 1 o 2 secondi. Non c’è un modo per escludere il potenziometro o per avere il minor valore di tempo “HIGH” possibile?
    Grazie

    1. Ciao Luca,
      il modo migliore è usare un sensore PIR differente.

    • Jkwxp2004 il 30 Novembre 2015 alle 23:59
    • Rispondi

    Vorrei modificare questo progetto nel senso che al posto di accendere il led dovrebbe contare dei passaggi. Ad una certa ora dovrebbe spedire un messaggio ad un numero di cellulare con il numero dei passaggi registrati fino a quell’ora. Come dovrei muovermi? Mi puoi indirizzare in qualche modo? Grazie

    1. Ciao Jkwxp2004,
      ti consiglio di leggere e comprendere bene come funziona questo sketch e poi leggere altri articoli in merito a come creare un contatore con arduino, la memorizzazione dei dati e l’invio sms.

    • Gero il 24 Dicembre 2015 alle 16:52
    • Rispondi

    Salve ragazzi,qualcuno sa per cortesia come far lampeggiare il led che si accende quando il sensore Pir
    Rileva presenza.

    1. Ciao Gero,
      a quale led ti riferisci?

    • mauro il 8 Febbraio 2016 alle 01:44
    • Rispondi

    Salve, grazie per condividere i tuoi programmi.
    Vorrei usare il sensore di rilevamento di movimento non per far accendere un led ma per far partire un audio.
    Ho trovato il modo di far leggere un audio ad arduino, ma non ho idea di come metterli assieme.
    come potrei fare?
    grazie
    Mauro

    1. Ciao Mauro,
      ti consiglio di studiare le lezioni base del mio corso Arduino gratuito on-line, con un po di impegno vedrai che già dopo qualche lezione sarai in grado di controllare un segnale in input ed output.

    • Violinho il 2 Maggio 2016 alle 12:25
    • Rispondi

    come faccio a collegare piu sensori pir?

    1. Ciao Violinho,
      uno per pin.

    • mattia il 5 Agosto 2016 alle 18:25
    • Rispondi

    Ciao Mauro intanto grazie per i tutorial che fai che puntualmente mi danno una buona mano ma ora vorrei chiederti una cosa su questo sensore PIR.
    Sto cercando di fare un cronometro digitale per i miei allenamenti di corsa veloce in pista di atletica e volevo usare questo sensore per rilevare la presenza e quindi cronometrare!
    Secondo te è possibile?i miei dubbi a riguardo sono:
    – è possibile ridurre l’angolo di incidenza diciamo sui 10° in modo da rilevare solo il puntuale movimento?
    – questo sensore riesce a rilevare un movimento a circa 35km/h ?
    la mia idea sarebbe fare in modo che questo sensore sia alto per un tempo piu breve, e quindi piu preciso, possibile

    1. Ciao Mattia, in genere i sensori pir non sono adatti all’uso che desideri farne.
      Forse puoi ridurre l’angolo di incidenza con opportune lenti e diffusori calibrati, tuttavia sulla velocità di risposta tra oggetto, o persona, rilevati ed impulso penso tu possa far poco.
      Ti consiglio una barriera laser con trasmettitore e ricevitore già accordati, mi sembra di averne vista una in promozione sul sito robotics-3D.com, controlla tra i prodotti in promo o quelli in ultimo arrivo.

        • Mattia variola il 8 Agosto 2016 alle 12:55
        • Rispondi

        Ti riferisci a questo?
        http://www.robotics-3d.com/component/virtuemart/robotica-domotica/sensori/infrared-proximity-sensor-sharp-gp2y0a21yk
        Perché a quanto so è lento per l’uso che voglio farne?

    • Bogdan il 3 Dicembre 2016 alle 12:03
    • Rispondi

    Ciao Mauro, complimenti per ii suoi progetti, avrrei bisogno di un piccolo aiutino, sto lavorando a un sistema d’allarme progettato con arduino, tastierino, tft etc… e vorrei aggiungere un ritardo a un sensore(quello del ingresso) in modo da avere il tempo di introdurre il codice pero nello stesso tempo vorrei che quando il sensore mi rileva cambi la scritta sul tft ti mostro la parte dello sketch dove vorrei fare questa modifica grazie in anticipo

    [[ codice rimosso in automatico ]]

    1. Ciao Bogdan,
      ti invito al rispetto delle regole del blog che trovi in fondo ad ogni articolo.
      Per la tua richiesta puoi semplicemnete fare in modo che alla rilevazione della tua presenza da parte del sensore di ingresso:
      – cambi il testo sul display;
      – imposti il valore del time corrente con la funzione millis
      – inizi a verificare che il codice da tastiera sia inserito entro il passaggio del tempo rilevato dal millis()

      Puoi leggere come funziona il millis in alcuni miei articoli sul blog.

    • marco il 14 Dicembre 2016 alle 11:33
    • Rispondi

    Ciao Mauro, come devo programmare la scheda se al posto del led che si accende al passaggio volessi mettere un display che conteggi il numero dei passaggi?

    1. Ciao Marco,
      puoi leggere un articolo su come si collega e controlla un display LCD e implementare un semplice contatore.
      Sconsiglio di usare solo la memoria (SRAM) arduino perché si cancella ad ogni reset, volontario o involontario, e/o interruzione di alimentazione facendoti perdere il conteggio.

    • marco il 19 Dicembre 2016 alle 10:36
    • Rispondi

    grazie

    • Vittorio il 3 Novembre 2017 alle 02:34
    • Rispondi

    ciao Mauro, sono interessato anche io al far partire un video nel momento in cui qualcuno passa davanti al sensore, il video che duri fino alla fine … dopodiche si torna al primo frame e aspetta un altro movimento per riprodurre il video di nuovo, sto leggendo su come fare su processing e fino ad ora riesco a far funzionare singolarmente …. ovvero processing mi fa partire un video se premo run the sketch e riesco a leggere il sensore … ma non riesco a cpire come dire a processing che deve far partire il video a movimento rilevato

    1. Ciao Vittorio,
      lascio il tuo commento on-line perché qualcuno con più esperienza su Processing di me possa darti una dritta.

    • Carlo il 26 Gennaio 2018 alle 20:40
    • Rispondi

    Ciao Mauro , complimenti per il blog e per i tuoi progetti.
    Ho comprato un sensore PIR , precisamente un HC-SR501 , ma ho notato che oltre al fatto che il ritardo minimo non è 300 millisecondi come dichiarato , ma 2 secondi anche con il potenziometro del delay al minimo.
    La cosa strana è che dopo una rilevazione , il sensore, per alcuni secondi non risulta rispondere ad un’altro movimento , nel datasheet in questione vedo una voce “Block Time” , potrebbe essere questo paramentro il problema? E’ un paramentro non variabile? Anche nella tua esperieza hai avuto questo “problema”?
    Attendo una tua risposta 🙂

    1. Ciao Carlo,
      in merito al ritardo non rispondente alle specifiche dovresti chiedere al fornitore/produttore.
      Io non ho rilavato ritardi ulteriori oltre a quelli impostati.
      Considera che dopo una rilevazione parte il ritardo prima che il sensore sia in grado di eseguire una nuova rilevazione.

    • Giovanni Caruso il 4 Febbraio 2019 alle 10:58
    • Rispondi

    Ciao Mauro prima di tutto complimenti per la pagina.
    Volevo chiederti se mi potresti dare una mano con un mio progetto..ovvero…usare Arduino uno come centrale d’allarme con 4 sensori già già in mio possesso sono NC appena rilevano il movimento passano in NO. Rilevato il movimento mi si attiva un’uscita che poi andrò a collegare ad una sirena è ad un combinatore GSM..per attivare/disattivare l’allarme avevo pensato di usare un radio comando che mi andava ad alimentare/disalimentare tutto Arduino così da prolungare la vita della scheda pure..il problema che non saprei da dove partire già è un po che ci lavoro con scarsi risultati..grazie mille in anticipo

    1. Ciao Giovanni,
      esempi e progetti come quello che vuoi realizzare sono disponibili in rete e distribuiti gratuitamente.
      Ti consiglio di cercare qualcuno di essi, vicino alle tue esigenze, e di studiarlo per comprenderne le caratteristiche ed adattarlo alle tue esigenze.
      In alternativa puoi:

      1. leggere e studiare i miei corsi online gratuiti arduino
      2. commissionarmi il progetto, leggi nella sezione “collabora al blog” come fare.

    • claudio il 21 Giugno 2019 alle 13:56
    • Rispondi

    Buongiorno Mauro,
    sono nuovissimo di Arduino, e ti ringrazio in anticipo per la pazienza che avrai..
    ho acquistato nei mercati orientali diversi PIR, ed ho sperimentato diversi sketch fino a trovarne uno che riesce a tararlo e pilotarli perfettamente.. Mi si è presentata la curiosità/necessità di temporizzatore la sua accensione in determinate ore della giornata, ed ho analizzato altri sketch fino ad arrivare ad una commistione del 1°(quello funzionale) e del 2°(quello temporale).. potrei condividerlo sul blog se tu mi dessi l’OK sulla sua funzionalità.. il compilatore non mi dà errore, ma non sono sicuro di aver messo compilato la sintassi correttamente. Grazie, Claudio

    1. Ciao Claudio,
      non ho compreso la tua richiesta.
      Se hai un articolo/progetto che desideri condividere puoi seguire le istruzioni della pagina “collabora al blog”;
      se hai uno sketch che non funziona prova a comprendere bene cosa hai scritto e cosa avresti voluto eseguire.

      In ogni caso, nei commenti, non è possibile inserire commenti e se desideri commissionarmi un progetto puoi utilizzare le istruzioni presenti nella sezione “sostienimi”

    • Filippo il 3 Gennaio 2020 alle 10:37
    • Rispondi

    Ciao,
    prima di tutto ti faccio i miei complimenti per il sito. Sono alle prime armi con Arduino e, attraverso il tuo sito inizio a capirci qualche cosa (sempre poco),
    Volevo solo chiederti se è possibile, utilizzando un PIR, dopo aver rilevato un movimento comandare un servo con snodo nella direzione del movimento rilevato.
    Hai già fatto qualche cosa di simile.
    Se puoi fammi sapere, Grazie , f.

    1. Ciao Filippo,
      un sensore PIR usato in modo tradizionale, come in questo articolo, rileva solo se un oggetto ha interrotto il suo fascio IR ma non è in grado di dirti la direzione di spostamento.
      Un haking del sensore o un uso differente di un sensore IR potrebbe farlo ma credo abbia costi superiori.

      Puoi in alternativa usare più sensori per determinare la direzione di spostamento o il movimento di un oggetto difronte a tali sensori.

    • LUCA il 20 Febbraio 2023 alle 10:40
    • Rispondi

    CIAO MAURO VORREI CHIEDERTI UNA COSINA IO QUANDO FACCIO PASSARE LA MANO IL LED ROSSO SI ACCENDE MA DOPO NEANCHE UN SECONDO SI SPEGNE è POSSIBILE FARE IN MODO CHE IL LED RIMANA ACCESO QUANDO IL PI RILEVA UN MOVIMENTO SENZA SPEGNERSI . GRAZIE SE MI RISPONDI CIAO E BUONA CONTINUAZIONE

    1. Ciao Luca,
      si puoi definire un delay al momento della rilavazione in modo che il led resti acceso, ricorda che il comando delay() ferma completamente il programma fino alla sua conclusione.
      Trovi alcuni articoli dedicati al delay() ed al millis() su questo blog.

    • Egidio Rotta il 29 Settembre 2023 alle 23:42
    • Rispondi

    Ciao Mauro, non ho avuto problemi a modificare il programma come desideravo ma non riesco a capire cosa siano i parametri Target x, Target y, Target y. Ti ringrazio!

    1. Ciao Egidio,
      forse non è questo l’articolo a cui ti riferisci, non esistono quei parametri in questo articolo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.