Code de recherche

Code Arduino et vidéo pour un module détecteur de mouvement HC-SR505 avec relais

Code Arduino et vidéo pour un module détecteur de mouvement HC-SR505 avec relais

Dans ce tutoriel, nous allons construire un système de détection de mouvement en utilisant le capteur de mouvement HC-SR505 et un module relais. Cette configuration vous permettra d'allumer des appareils tels que des lampes ou des avertisseurs sonores lorsqu'un mouvement est détecté. Le relais agit comme un interrupteur pour contrôler en toute sécurité des appareils haute tension. À la fin de ce guide, vous disposerez d'une installation fonctionnelle de capteur de mouvement capable d'activer divers appareils en fonction de la détection de mouvement. Pour une compréhension plus claire, assurez-vous de consulter la vidéo associée (dans la vidéo à 0:00).

HC-SR505 motion sensor

Le matériel expliqué

Les principaux composants de ce projet comprennent le capteur de mouvement HC-SR505, un module relais et une carte Arduino. Le HC-SR505 est un capteur infrarouge passif (PIR) qui détecte les mouvements en captant les variations du rayonnement infrarouge. Il fonctionne en mesurant la chaleur émise par les objets dans son champ de vision. Lorsqu'un objet en mouvement est détecté, le capteur envoie un signal à l'Arduino.

Le module relais sert à contrôler un appareil haute tension, tel qu'une ampoule. Il fait office d'interrupteur commandé électriquement, permettant à l'Arduino d'allumer ou d'éteindre l'appareil en toute sécurité. Le relais possède deux configurations principales : normalement ouvert (NO) et normalement fermé (NC), qui déterminent l'état par défaut lorsque le relais n'est pas activé.

Détails de la fiche technique

FabricantHC-SR505
Numéro de pièceHC-SR505
Tension logique/E/S3,3 V - 20 V
Tension d'alimentation5 V
Courant de sortie (par canal)20 mA
Courant de crête (par canal)100 mA
Recommandations de fréquence PWMSans objet
Seuils logiques d'entrée0.3V (bas) / 2.5V (haut)
Chute de tension / RDS(on)/ saturation0,2 V
Limites thermiques+70 °C
PaquetModule
Notes / variantesFormat compact ; faible consommation d'énergie

  • Assurez une dissipation thermique adéquate pour les charges à fort courant.
  • Utilisez des condensateurs de découplage pour une alimentation stable.
  • Soyez prudent avec les connexions haute tension ; veillez à la sécurité.
  • Testez le capteur avec des sorties simples avant de le connecter aux relais.
  • Vérifiez l'orientation du capteur PIR pour une détection optimale.

Instructions de câblage

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

Pour câbler le capteur de mouvement HC-SR505, connectez d'abord la broche d'alimentation (marquée +) à la sortie 5 V de votre Arduino. Ensuite, connectez la broche de masse (marquée -) à l'une des broches GND de l'Arduino. La broche de signal (broche centrale) doit être connectée à la broche numérique 2 de l'Arduino.

Pour le module de relais, connectez la broche VCC à la sortie 5V de l'Arduino et la broche de masse à la masse de l'Arduino. La broche d'entrée du relais doit être reliée à la broche numérique 9 de l'Arduino. Enfin, connectez la borne positive du buzzer à la broche numérique 8 et sa borne négative à la masse. Veillez à connecter correctement les broches commune (COM) et normalement ouverte (NO) du relais pour contrôler votre appareil.

Exemples de code et guide pas à pas

Le code de ce projet initialise les broches du capteur, du buzzer et du relais. Il utilise ledigitalRead()fonction pour vérifier le mouvement et y répondre en conséquence. Ci-dessous un extrait de la fonction 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
}

Dans cet extrait, les broches sont configurées soit en mode entrée soit en mode sortie. LeSerial.begin(9600)initialise la communication série pour le débogage.

La boucle principale vérifie la présence de mouvement et active le buzzer et le relais lorsqu'un mouvement est détecté. Voici un extrait ciblé de la fonction 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);
}

Cet extrait lit l'état du capteur PIR et active ou désactive le buzzer et le relais en fonction du mouvement détecté. Le délai de 500 millisecondes garantit que la boucle vérifie le capteur à un intervalle raisonnable.

Démonstration / À quoi s'attendre

Lorsqu'un mouvement est détecté, la lumière connectée au relais s'allume et le buzzer retentit. S'il n'y a pas de mouvement, le relais éteint la lumière et le buzzer reste silencieux. Notez que le HC-SR505 comporte une temporisation intégrée qui maintient la sortie active pendant un court instant après la détection de mouvement (jusqu'à 8 secondes) et qui ne peut pas être réglée (dans la vidéo à 5:30).

Horodatages vidéo

  • 00:00- Introduction au projet
  • 01:30- Explication des composants
  • 03:15- Instructions de câblage
  • 05:30- Présentation du code
  • 07:00- Démonstration de la configuration

Images

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.
Langue: C++
/*
 * This is the Arduino code for HC-SR501 Motion Sensor
 * to detect motion of human or objects using Arduino for robotic car and other applications
 * Watch HC-SR505 video https://youtu.be/qhThpxiXubI
 * 
// Written by Ahmad S. for Robojax.com on 
// February 10, 2018 at 11:41 in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
 * 
 */


#define PIR 2 // define pin 2 for sensor
#define BUZZER 8 // define pin 8 as for buzzer
#define RELAY 9 // define pin 9 as for relay

void setup() {
  // HC-SR505 Motion Sensor Code by Robojax.com 20180210
  Serial.begin(9600);// setup Serial Monitor to display information
  pinMode(PIR, INPUT_PULLUP);// define pin as Input sensor
  pinMode(BUZZER, OUTPUT);// define pin as OUTPUT for buzzer or LED
  pinMode(RELAY, OUTPUT);// define pin as OUTPUT for relay
}

void loop() {
  // HC-SR505 Motion Sensor Code by Robojax.com 20180210
  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);
 // HC-SR505 Motion Sensor Code by Robojax.com 20180210
}

Ce dont vous pourriez avoir besoin

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Fichier Fritzing