Collegamento del sensore di movimento PIR Arduino

Consideriamo come collegare il sensore PIR HC-SR501 ad Arduino (sensore di movimento piroelettrico a infrarossi) e consideriamo un programma per una lampada automatica che si accenda quando viene rilevato un movimento nella stanza. Considereremo anche la funzione Arduino millis nel linguaggio di programmazione C++, che spesso è necessario utilizzare nei programmi (sketch) per creare il multitasking del microcontrollore Arduino Uno.




Per questa attività sono necessari:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • modulo sensore PIR HC-SR501
  • LED e resistenza
  • breadboard
  • cavi di collegamento

Sensore di movimento PIR HC-SR501 datasheet, pinout

Il modulo con sensore PIR HC-SR501 è costituito da un elemento piroelettrico sotto una lente di Fresnel in plastica – un pezzo cilindrico con un cristallo rettangolare al centro, che capta il livello di radiazione infrarossa e lo trasmette attraverso di sé. Collegando il sensore di fiamma KY-026 al microcontrollore Arduino, abbiamo già scoperto che tutti gli oggetti hanno una radiazione infrarossa e che più alta è la temperatura, più intensa è la radiazione.

Modulo di sensore di PIR HC-SR501 pinout, datasheet
Modulo di sensore di PIR HC-SR501 pinout, datasheet

Caratteristiche del sensore di movimento HC-SR501 Arduino:

  • Tensione di alimentazione: 5 – 20 V
  • Corrente di funzionamento: 55 µA
  • Livello del segnale di uscita: 3,3 V
  • Regolazione della sensibilità: sì
  • Angolo di risposta: 120
  • Distanza di rilevamento: 7 metri
  • Tempo di ritardo: regolabile da 0,3 a 60 sec

I sensori di movimento PIR sono quasi identici in termini di dispositivo. Il campo di sensibilità dei sensori PIR è fino a 7 metri e l’angolo di visione è di 110° x 70°. L’alimentazione è di 5 Volt e il segnale di uscita digitale ha un valore di 0 quando non c’è movimento e un valore di 1 quando c’è movimento. Gli elementi di rilevamento sono installati in un alloggiamento sigillato ermeticamente che protegge dall’umidità e dalle fluttuazioni di temperatura.

Come collegare sensore di movimento PIR Arduino

Collegamento del sensore di movimento PIR HC-SR501 Arduino Uno
Collegamento del sensore di movimento PIR HC-SR501 Arduino Uno

La piedinatura dei sensori di movimento Arduino può variare da produttore a produttore, ma accanto ai pin sono presenti delle scritte (vedi foto sopra). Pertanto, studiare attentamente il modulo prima di collegarlo. Un’uscita va a GND, la seconda all’alimentazione a 5 Volt (VCC) e la terza uscita (OUT) emette il segnale digitale del sensore PIR. Assemblare il circuito come nella foto sopra, collegare il LED al pin 2 di Arduino e caricare il seguente sketch.

Programma Arduino per utilizzare sensore di movimento PIR




#define PIR 2
#define LED 13

void setup() {
  pinMode(PIR, INPUT);
  pinMode(LED, OUTPUT);
}

void loop() {
  int pirVal = digitalRead(PIR);

  if (pirVal == HIGH) {
    digitalWrite(LED, HIGH);
    delay(1000);
  }

  else {
    digitalWrite(LED,LOW);
    delay(1000);
  }
}

Spiegazione del codice per sensore di movimento PIR HC-SR501 Arduino:



  1. con la direttiva define per le porte 2 e 13, abbiamo assegnato i nomi corrispondenti a PIR e LED nel programma;
  2. la doppia uguaglianza if (pirVal == HIGH), che è un operatore di confronto, viene utilizzata nell’istruzione if del linguaggio di programmazione Arduino.

Come collegare del LED e del rilevatore di movimento

Collegamento del LED e del rilevatore di movimento di Arduino
Come usare del LED e del rilevatore di movimento Arduino

Nel seguente esempio per il microcontrollore, utilizzando la direttiva define per le porte 2 e 12, abbiamo dato loro i nomi PIR e LED per facilitare il lavoro con il programma. Nel primo esempio il LED si spegne subito dopo il segnale LOW del sensore di movimento, ma con la funzione millis iniziamo il conto alla rovescia (durante questo tempo Arduino può eseguire altri comandi) e dopo 1 minuto senza aver rilevato il movimento il LED si spegne.

Programma Arduino per usare rilevatore di movimento PIR

#define PIR  2
#define LED  12

unsigned long counttime;

void setup() {
  pinMode(PIR, INPUT);
  pinMode(LED, OUTPUT);
}

void loop() {
  if (digitalRead(PIR) == HIGH) {
    digitalWrite(LED, HIGH);
    counttime = millis();
  }

  if (digitalRead(PIR) == LOW and millis() - counttime > 60000) {
    digitalWrite(LED, LOW);
  }
}

Spiegazione del codice per rilevatore di movimento PIR HC-SR501 Arduino:

  1. con counttime = millis(); iniziamo a contare il tempo mentre il microcontrollore continua a eseguire altri calcoli nel codice.

Conclusione. Il modulo di sensore di movimento Arduino HC-SR501 consente di accendere automaticamente l’illuminazione della stanza o di creare un’illuminazione “intelligente” delle scale di casa con l’aiuto del nastro indirizzabile ws2812b. Nei commenti a questo post potete lasciare domande o commenti sull’argomento presentato, cerchiamo di rispondere a tutti i commenti dei nostri utenti abituali il più rapidamente possibile.

5/5 - (1 vote)


Lascia un commento

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

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