Codice Arduino e video per un modulo sensore di movimento HC-SR505 con relè

Codice Arduino e video per un modulo sensore di movimento HC-SR505 con relè

In questo tutorial realizzeremo un sistema di rilevamento del movimento utilizzando il sensore di movimento HC-SR505 e un modulo relè. Questa configurazione ti permetterà di accendere dispositivi come luci o buzzer quando viene rilevato movimento. Il relè funge da interruttore per controllare in sicurezza dispositivi ad alta tensione. Al termine di questa guida avrai una configurazione del sensore di movimento funzionante in grado di attivare vari dispositivi in base al rilevamento del movimento. Per una comprensione più chiara, assicurati di guardare il video associato (nel video a 0:00).

HC-SR505 motion sensor

Hardware spiegato

I componenti principali di questo progetto includono il sensore di movimento HC-SR505, un modulo relè e una scheda Arduino. L'HC-SR505 è un sensore a infrarossi passivo (PIR) che rileva il movimento percependo variazioni nella radiazione infrarossa. Funziona misurando il calore emesso dagli oggetti nel suo campo visivo. Quando viene rilevato un oggetto in movimento, il sensore invia un segnale all'Arduino.

Il modulo relè viene utilizzato per controllare un dispositivo ad alta tensione, come una lampadina. Funziona come un interruttore azionato elettricamente, permettendo all'Arduino di accendere o spegnere il dispositivo in modo sicuro. Il relè ha due configurazioni principali: normalmente aperto (NO) e normalmente chiuso (NC), che determinano lo stato predefinito quando il relè non è attivato.

Dettagli della scheda tecnica

ProduttoreHC-SR505
Numero di parteHC-SR505
Tensione logica/I/O3.3V - 20V
Tensione di alimentazione5V
Corrente di uscita (per canale)20 mA
Corrente di picco (per canale)100 mA
Guida alla frequenza PWMNon applicabile
Soglie logiche di ingresso0.3V (basso) / 2.5V (alto)
Caduta di tensione / RDS(on)/ saturazione0.2V
Limiti termici+70 °C
PacchettoModulo
Note / variantiFormato compatto; basso consumo energetico

  • Garantire un'adeguata dissipazione del calore per carichi ad alta corrente.
  • Usare condensatori di disaccoppiamento per un'alimentazione stabile.
  • Fai attenzione alle connessioni ad alta tensione; assicurati che la sicurezza sia garantita.
  • Testa il sensore con uscite semplici prima di collegarlo ai relè.
  • Verificare l'orientamento del sensore PIR per un rilevamento ottimale.

Istruzioni di cablaggio

Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor

Per collegare il sensore di movimento HC-SR505, innanzitutto collega il pin di alimentazione (contrassegnato con +) all'uscita 5V del tuo Arduino. Successivamente, collega il pin di massa (contrassegnato con -) a uno dei pin di massa dell'Arduino. Il pin del segnale (pin centrale) dovrebbe essere collegato al pin digitale 2 dell'Arduino.

Per il modulo relè, collega il pin VCC all'uscita 5V dell'Arduino e il pin di massa al GND dell'Arduino. Il pin di ingresso del relè dovrebbe essere collegato al pin digitale 9 dell'Arduino. Infine, collega il terminale positivo del buzzer al pin digitale 8 e il terminale negativo a massa. Assicurati di collegare correttamente i pin Common (COM) e Normally Open (NO) del relè per controllare il tuo dispositivo.

Esempi di codice e guida passo-passo

Il codice per questo progetto inizializza i pin per il sensore, il buzzer e il relè. Usa ildigitalRead()Funzione che controlla il movimento e risponde di conseguenza. Di seguito è riportato un estratto della funzione di setup:


void setup() {
  Serial.begin(9600); // setup Serial Monitor
  pinMode(PIR, INPUT_PULLUP); // define pin as Input for sensor
  pinMode(BUZZER, OUTPUT); // define pin as OUTPUT for buzzer
  pinMode(RELAY, OUTPUT); // define pin as OUTPUT for relay
}

In questo estratto, i pin sono impostati in modalità di ingresso o di uscita. IlSerial.begin(9600)inizializza la comunicazione seriale per il debug.

Il ciclo principale verifica la presenza di movimento e attiva il cicalino e il relè quando viene rilevato movimento. Ecco un estratto mirato della funzione loop:

Wirig relay module to AC load

void loop() {
  int motion = digitalRead(PIR); // read the sensor
  if(motion) {
    Serial.println("Motion detected");
    digitalWrite(BUZZER, HIGH); // turn the buzzer ON
    digitalWrite(RELAY, LOW); // turn the relay ON
  } else {
    Serial.println("===nothing moves");
    digitalWrite(BUZZER, LOW); // keep the buzzer OFF
    digitalWrite(RELAY, HIGH); // turn the relay OFF
  }
  delay(500);
}

Questo frammento legge lo stato del sensore PIR e attiva o disattiva il buzzer e il relè in base al movimento rilevato. Il ritardo di 500 millisecondi garantisce che il ciclo verifichi il sensore a intervalli ragionevoli.

Dimostrazione / Cosa aspettarsi

Quando viene rilevato un movimento, la luce collegata al relè si accenderà e il cicalino suonerà. Se non viene rilevato movimento, il relè spegnerà la luce e il cicalino resterà silenzioso. Tieni presente che l'HC-SR505 ha un ritardo incorporato che mantiene l'uscita attiva per un breve periodo dopo il rilevamento del movimento (fino a 8 secondi), che non può essere regolato (nel video a 5:30).

Timestamp del video

  • 00:00- Introduzione al progetto
  • 01:30- Spiegazione dei componenti
  • 03:15- Istruzioni di cablaggio
  • 05:30- Revisione del codice
  • 07:00- Dimostrazione della configurazione

Immagini

Wirig relay module to AC load
Wirig relay module to AC load
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor
74-This is the Arduino code for the HC-SR505 motion sensor (small) with relay.
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

Risorse e riferimenti

Nessuna risorsa ancora.

File📁

File Fritzing