Utilizzare un sensore di movimento HC-SR501 con un relè e codice Arduino

Utilizzare un sensore di movimento HC-SR501 con un relè e codice Arduino

In questo tutorial, esploreremo come utilizzare il sensore di movimento HC-SR501 in combinazione con un relè per controllare una lampadina AC o un altro tipo di carico utilizzando un Arduino. L'HC-SR501 è un sensore di movimento a infrarossi che può rilevare il movimento fino a 7 metri di distanza, rendendolo ideale per varie applicazioni come allarmi di sicurezza o sistemi di illuminazione automatica. Sfruttando questo sensore e un relè, puoi creare un progetto che accende una luce quando viene rilevato il movimento.

Forniremo una guida passo passo sulla configurazione dell'hardware, le istruzioni di cablaggio e il codice Arduino necessario per raggiungere questa funzionalità. Per una comprensione più chiara del processo, assicurati di guardare il video associato (nel video a :00).

Hardware Spiegato

I componenti principali di questo progetto includono il sensore di movimento HC-SR501, un modulo relè e una scheda Arduino. Il sensore HC-SR501 ha tre pin: VCC, GND e OUT. Il pin VCC si collega a una fonte di alimentazione (5V), il pin GND si collega a terra e il pin OUT invia un segnale all'Arduino quando viene rilevato un movimento.

Il modulo relè funge da interruttore che può controllare dispositivi ad alta tensione. Ha tre pin principali: COM (comune), NO (normalmente aperto) e NC (normalmente chiuso). In questa configurazione, utilizzeremo il pin NO, che si collega al carico quando il relè è attivato. Questo consente all'Arduino di controllare il relè in base al segnale ricevuto dal sensore di movimento.

Dettagli della scheda tecnica

ProduttoreHC-SR501
Numero di parteHC-SR501
Tensione logica/IO5 V
Tensione di alimentazione5-20 V
Consumo energetico65 mA
Angolo di rilevamento120 gradi
Distanza di rilevamento3-7 m
Temperatura di esercizio-15 a 70 °C
Tipo di outputDigitale
PacchettoModulo

  • Assicurati di fornire un'alimentazione adeguata (5-20 V) per il sensore.
  • Regola il potenziometro di sensibilità per un'intervallo di rilevamento ottimale.
  • Utilizza il pin NO del relè per controllare il carico in modo efficace.
  • Fai attenzione al valore di corrente del relè (10 A massimo).
  • Testa la gamma di rilevamento del sensore di movimento prima dell'installazione finale.
  • Considera la dissipazione di calore se utilizzi il relè per carichi elevati.

Istruzioni di cablaggio

Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor

Per collegare il sensore di movimento HC-SR501 e il relè con l'Arduino, inizia collegando il pin VCC del sensore di movimento al pin 5V dell'Arduino. Successivamente, collega il pin GND del sensore a uno dei pin GND dell'Arduino. Il pin OUT del sensore di movimento deve essere collegato al pin digitale 2 dell'Arduino.

Per il modulo relè, collega il pin VCC al pin 5V dell'Arduino e il pin GND a terra. Il pin di ingresso (spesso etichettato come IN o simile) del relè dovrebbe essere collegato al pin digitale 4 dell'Arduino. Assicurati di controllare l'orientamento del relè per garantire che sia impostato su normalmente aperto (NO) per questa configurazione. Infine, collega il carico (ad es., una lampadina AC) al relè secondo le specifiche del relè, assicurandoti che le connessioni siano sicure.

Esempi di codice e guida passo passo

Nel codice Arduino, definiamo costanti per i pin del sensore e del relè. Il pin del sensore è impostato suSENSOR_PIN, che è assegnato al pin digitale 2, e il pin del relè è impostato suRELAY_PIN, assegnato al pin digitale 4. Questa configurazione ci consente di leggere l'uscita del sensore e controllare il relè di conseguenza.

const int SENSOR_PIN = 2; // the Arduino pin connected to the output of the sensor
const int RELAY_PIN = 4; // the Arduino pin which is connected to control the relay

Nellasetup()funzione, inizializziamo il monitor seriale per il debug e impostiamo le modalità dei pin per i pin del sensore e del relè. Questo garantisce che l'Arduino sappia quali pin sono ingressi e uscite.

void setup() {
  Serial.begin(9600); // setup Serial Monitor to display information
  pinMode(SENSOR_PIN, INPUT); // Define SENSOR_PIN as Input from sensor
  pinMode(RELAY_PIN, OUTPUT); // Define RELAY_PIN as OUTPUT for relay
}

Nellaloop()funzione, controlliamo continuamente lo stato del sensore di movimento. Se viene rilevato movimento, stampiamo un messaggio sul monitor seriale e accendiamo il relè impostandolo su basso. Se non viene rilevato movimento, stampiamo un messaggio diverso e spegniamo il relè impostandolo su alto.

void loop() {
  int motion = digitalRead(SENSOR_PIN); // read the sensor pin
  if (motion) {
    Serial.println("Motion detected");
    digitalWrite(RELAY_PIN, LOW); // Turn the relay ON
  } else {
    Serial.println("===Nothing moves");
    digitalWrite(RELAY_PIN, HIGH); // Turn the relay OFF
  }
  delay(500);
}

Dimostrazione / Cosa Aspettarsi

Quando il sensore di movimento rileva movimento, il relè si attiverà, permettendo il passaggio della corrente al carico collegato, come una lampadina a LED. Dovresti vedere la lampadina accendersi immediatamente al rilevamento del movimento. Se il sensore non rileva alcun movimento, la lampadina rimarrà spenta. Tieni presente che le impostazioni di sensibilità del sensore influenzeranno il suo raggio di rilevamento, quindi potrebbero essere necessari aggiustamenti per prestazioni ottimali (nel video alle 05:00).

Le insidie comuni includono un cablaggio errato o il superamento dei limiti di corrente del relè, che possono portare a guasti. Assicurati che tutte le connessioni siano sicure e testa l'impianto in un ambiente controllato prima dell'uso finale.

Timestamp video

  • 00:00 Inizio
  • Hardware spiegato
  • 04:35 Potenza nominale del relè
  • 06:00 Spiegazione del cablaggio
  • 07:53 Codice Arduino Spiegato
  • 09:48 Dimostrazione di questo progetto

Immagini

HC-SR501 back
HC-SR501 back
HC-SR501 module
HC-SR501 module
Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor
141-Arduino source code for an HC-SR501 motion sensor to control an AC bulb or load
Lingua: C++
Copia!

Risorse e riferimenti

Nessuna risorsa ancora.

File📁

Nessun file disponibile.