Kunkune

Come configurare un sensore PIR HC-SR501 con Arduino

Come configurare un sensore PIR HC-SR501 con Arduino

By Kunkune | Published: 2026-10-13

Category: Guide pratiche

Collega un modulo PIR HC-SR501 a un Arduino, regola sensibilità e potenziometri di ritardo e diagnostica i falsi trigger con una procedura chiara e passo dopo passo.

Risposta rapida

Collega l'HC-SR501 con VCC a 5V, GND a GND e OUT a un pin digitale, poi copri la lente e attendi 30-60 secondi per il riscaldamento prima di fidarti delle letture. Imposta prima entrambi i potenziometri circa a metà corsa, carica un semplice sketch digitalRead e solo dopo regola sensibilità e ritardo osservando il monitor seriale.

Cosa fanno realmente i pin dell'HC-SR501

Il modulo ha tre pin: VCC, OUT e GND. OUT è un segnale digitale che va HIGH quando viene rilevato un movimento, quindi qualsiasi ingresso digitale Arduino funziona. Il catalogo indica la tensione di uscita come 3.3V, che è il livello logico che il modulo presenta su OUT. Questo conta se prevedi di inviare il segnale a un ingresso logico solo 5V o a una scheda 3.3V: un HIGH di 3.3V viene solitamente letto correttamente da MCU 3.3V come ESP32 o Raspberry Pi, ma una classica Arduino Uno da 5V considera HIGH tutto ciò che supera circa 3V, quindi funziona anche così. Se non sei sicuro, misura OUT con un multimetro durante un trigger piuttosto che fare supposizioni.

L'HC-SR501 ha anche due potenziometri e un jumper. Un potenziometro imposta la sensibilità (portata di rilevamento), l'altro imposta il ritardo (per quanto tempo OUT rimane HIGH dopo che il movimento si ferma). Il jumper seleziona la modalità di trigger ripetibile o non ripetibile. Il modulo necessita di un periodo di riscaldamento dopo l'accensione; durante quel periodo OUT può rimanere HIGH o commutare, quindi non giudicare il sensore finché non si stabilizza.

Scelte di alimentazione e cablaggio per prevenire il rumore

L'HC-SR501 è più felice con un'alimentazione stabile a 5V. Alimentarlo dal pin 5V di Arduino va bene per un singolo modulo, ma se aggiungi relè, motori o fili lunghi, usa un'alimentazione separata regolata a 5V e collega le masse. Un'alimentazione debole o rumorosa è una delle cause più comuni di trigger casuali.

Mantieni il filo del segnale corto e tienilo lontano da cavi motore o di rete. Se devi usare un cavo lungo, attorciglia insieme i fili OUT e GND o usa un cavo schermato. Per un'installazione permanente, salda le connessioni o usa un morsetto a vite invece di jumper volanti che possono spostarsi.

Uno sketch Arduino minimale per verificare il movimento

Inizia con il test più semplice possibile: leggi un pin digitale e stampa il suo stato. Collega OUT al pin 2, poi carica uno sketch che imposta il pin 2 come INPUT e stampa digitalRead(2) sul monitor seriale a 9600 baud. Agita la mano davanti alla lente e osserva il cambiamento di valore. Questo conferma il cablaggio prima di aggiungere qualsiasi logica.

Una volta che la lettura grezza funziona, aggiungi un breve debounce o un controllo di cambio di stato così un singolo evento di movimento non inonda l'uscita seriale. Ad esempio, stampa solo quando la lettura passa da LOW a HIGH. Questo rende il comportamento del potenziometro di ritardo molto più facile da osservare.

Regola sensibilità e ritardo senza inseguire falsi trigger

Ruota prima entrambi i potenziometri completamente in senso antiorario, poi aumenta la sensibilità lentamente finché il sensore copre l'area necessaria. Più sensibilità non è meglio: raccoglie anche fonti di calore, correnti d'aria e animali domestici. Il potenziometro di ritardo controlla per quanto tempo OUT rimane HIGH dopo l'ultimo movimento; impostalo corto per il conteggio eventi e più lungo per tempi di mantenimento di illuminazione o allarme.

Fai un cambiamento alla volta e attendi che il modulo si stabilizzi. Se l'uscita rimane costantemente HIGH, riduci la sensibilità e controlla che la lente non sia rivolta verso una finestra, un termosifone o una tenda in movimento. Se non si attiva mai, conferma la modalità del jumper e che il periodo di riscaldamento sia passato.

Configurazione passo passo dell'HC-SR501 con Arduino

  1. Passo 1: Identifica la piedinatura e imposta il jumper: Con la lente rivolta verso di te, i pin sono solitamente VCC, OUT, GND da sinistra a destra, ma conferma con le marcature sulla tua scheda. Imposta il jumper in modalità non ripetibile (H) per una semplice rilevazione on/off, o in modalità ripetibile (L) se vuoi che OUT rimanga HIGH mentre il movimento continua. Checkpoint: se le marcature non sono chiare, testa con un multimetro prima di collegare l'alimentazione.
  2. Passo 2: Collega alimentazione e segnale: Collega VCC a 5V, GND a GND e OUT al pin digitale Arduino 2. Mantieni il filo del segnale corto e lontano da motori o cavi di rete. Se usi un'alimentazione esterna, collega la sua massa alla massa di Arduino. Errore comune: dimenticare la massa condivisa quando si usa un'alimentazione separata a 5V.
  3. Passo 3: Attendi il riscaldamento: Alimenta il modulo e attendi 30-60 secondi senza muoverti davanti ad esso. L'uscita può commutare durante questo periodo; è normale. Non regolare i potenziometri finché il modulo non si è stabilizzato. Checkpoint: se OUT è ancora instabile dopo due minuti, controlla la stabilità dell'alimentazione e il cablaggio.
  4. Passo 4: Carica uno sketch di lettura minimale: Imposta il pin 2 come INPUT e stampa digitalRead(2) sul monitor seriale a 9600 baud. Agita la mano e conferma che il valore cambia. Aggiungi un controllo di cambio di stato così vengono stampate solo le transizioni. Errore comune: usare INPUT_PULLUP, che contrasta l'uscita del modulo; usa INPUT semplice a meno che il tuo modulo specifico non richieda diversamente.
  5. Passo 5: Regola sensibilità e ritardo: Inizia con entrambi i potenziometri completamente in senso antiorario. Aumenta la sensibilità finché il sensore copre in modo affidabile l'area target, poi fermati. Imposta il ritardo al tempo di mantenimento più breve adatto al tuo progetto. Checkpoint: se i falsi trigger persistono, riduci la sensibilità e rimuovi fonti di calore o correnti d'aria dal campo visivo.
  6. Passo 6: Testa il comportamento finale sul posto: Monta il sensore all'altezza e all'angolo che userai, poi attraversa la zona di rilevamento più volte. Conferma che OUT va HIGH quando previsto e scende a LOW dopo il ritardo. Prossimo passo: aggiungi debounce o un timer di mantenimento nel codice se hai bisogno di un conteggio eventi più pulito.

Scheda prodotto

  • Modulo sensore di movimento HC-SR501 Rilevatore PIR regolabile: Modulo sensore di movimento HC-SR501 Rilevatore PIR regolabile, tensione di uscita 3.3V. Un HIGH logico di 3.3V è compatibile con schede 3.3V ed è ancora letto come HIGH dalla maggior parte degli ingressi Arduino da 5V, quindi puoi usarlo con entrambi senza shift di livello nelle configurazioni tipiche.
  • Convertitore DC-DC Buck Boost 4-35V a 1.25-25V LM2596S XL6019E1 3A: Convertitore DC-DC Buck Boost 4-35V a 1.25-25V LM2596S XL6019E1 3A con uscita regolabile. Utile quando il tuo progetto funziona a batteria o con un rail a tensione più alta e hai bisogno di un'alimentazione pulita e regolabile a 5V per il modulo PIR invece di attingere da un rail Arduino rumoroso.

Shop Related Products

Convertitore DC-DC Buck‑Boost 4‑35 V a 1,25‑25 V LM2596S XL6019E1 3 A

Convertitore DC-DC Buck‑Boost 4‑35 V a 1,25‑25 V LM2596S XL6019E1 3 A

$2.94 $4.90

Shop Now
Modulo sensore di movimento HC-SR501 PIR regolabile

Modulo sensore di movimento HC-SR501 PIR regolabile

$0.97 $1.45

Shop Now