Si vuol creare un circuito che, con l’aiuto di un sensore di rilevamento di movimento a raggi infrarossi (PIR acronimo di Passive InfraRed) provochi l’azione da noi desiderata, come l’accensione di un led, l’attivazione di un allarme sonoro...
Sensore passivo a infrarossi Tutti gli oggetti emettono radiazioni; il più delle volte la frequenza di queste radiazioni sono al di sotto dello spettro visibile e perciò non percepibili dall'occhio umano, ma possono essere rilevate da specifici dispositivi elettronici come appunto i PIR. Il termine passivo trova giustificazione nel fatto che i PIR non emettono energia, ma lavorano rilevando l'energia emessa da persone, animali ed oggetti. Il modulo HC-SR501 rappresentato in figura è quello che utilizzeremo; esso è costituito da un sensore in grado di rilevare le radiazioni infrarosse e da un circuito che memorizza l’intensità della radiazione rilevata e quando riscontra una variazione nell’intensità della radiazione attuale emette un segnale elettrico interpretabile da Arduino. Segnalare una presenza mediante i LED Costruiamo un progetto che accenda un LED rosso se viene rilevato un movimento, uno verde in caso contrario. PIR Arduino Vcc 5 V OUT D3 GND GND
Il codice: Sensore passivo a infrarossi
I PIR, avendo una rilevazione ad infrarossi, si attivano nel momento in cui si verifica un cambio di temperatura all'interno dell'ambiente monitorato, come ad esempio l’ingresso di una persona; ecco perché possono trovare applicazione nei sistemi di antifurto ed antintruzione
Va segnalato però che questi tipi di sensori possono provocare false attivazioni.
Nel modulo notiamo in basso due resistenze variabili (trimmer): quella posta a sinistra consente di regolare il tempo di azione (3-200 s), l’altro la dimensione del raggio di azione (sensibilità, 3-7 m); la rotazione in senso orario ne aumenta i rispettivi valori.Il Progetto
Componenti
Collegamenti
Assemblaggio
Il codice
int durataCalibrazione = 30; /*tempo di calibrazione 10-60 secondi come indicato nella scheda tecnica */
int PIR = 3;
int ledVerde = 5;
int ledRosso = 6;
void setup(){
pinMode( ledRosso, OUTPUT );
pinMode( ledVerde, OUTPUT );
pinMode(PIR, INPUT );
Serial.begin(9600);
Serial.print("calibrazione del sensore ");
for(int i = 0; i < durataCalibrazione; i++){
Serial.print(".");
delay(1000);
}
Serial.println(" fatto"); // dopo un tempo di 30 s
Serial.println("Il sensore PIR ora è attivo");
delay(50);
}
void loop(){
digitalWrite(ledRosso, digitalRead(PIR));// Mantieni acceso il led rosso se c'è movimento
digitalWrite(ledVerde, !digitalRead(ledRosso));// Spegni il led verde se il Led rosso è acceso e viceversa
}