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