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 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:
tolta 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: 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:
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:
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 !!!
Prima di inserire un commento, per favore, leggi il regolamento
91 pings
Skip to comment form