Produits

Module de relais Arduino - Ocra Electronic
21363
post-template-default,single,single-post,postid-21363,single-format-standard,theme-nouveau,nouveau-core-1.0.4,woocommerce-no-js,ajax_fade,page_not_loaded,,wpb-js-composer js-comp-ver-6.4.1,vc_responsive

Module de relais Arduino

Guide pour le module de relais avec Arduino

Cet article montre comment contrôler la tension secteur avec l’Arduino à l’aide d’un module relais. Nous faisons une brève introduction au module relais et construisons un exemple de projet simple avec l’Arduino. L’exemple que nous allons construire montre comment contrôler un module relais avec un Arduino et un capteur de mouvement PIR.

À la fin de ce didacticiel, vous devriez être capable de contrôler tous les appareils électroniques avec votre Arduino à l’aide d’un module de relais.

Présentation du module relais

Un relais est un interrupteur à commande électrique qui peut être allumé ou éteint, laissant passer ou non le courant, et peut être contrôlé avec des basses tensions, comme le 5V fourni par les broches Arduino.

Contrôler un module relais avec l’Arduino est aussi simple que contrôler n’importe quelle autre sortie comme nous le verrons plus tard.

Ce module relais a deux canaux (ces cubes bleus). Il existe d’autres modèles avec un, quatre et huit canaux. Ce module doit être alimenté en 5V, ce qui est approprié pour une utilisation avec un Arduino. Il existe d’autres modules de relais alimentés en 3,3 V, ce qui est idéal pour ESP32, ESP8266 et autres microcontrôleurs.

Obtenir un module relais :

  • Relais 1, 2, 4, 6,8 et 10 canaux
  • Module relais type SSR

Brochage du relais

Les six broches sur le côté gauche du module de relais connectent la haute tension et les broches sur le côté droit connectent le composant qui nécessite une basse tension, les broches Arduino.

Connexions de tension secteur

Le côté haute tension a deux connecteurs, chacun avec trois prises : commun (COM), normalement fermé (NC) et normalement ouvert (NO)

  • COM : broche commune
  • NC (Normalement Fermé):  la configuration normalement fermée est utilisée lorsque vous souhaitez que le relais soit fermé par défaut, ce qui signifie que le courant circule à moins que vous n’envoyiez un signal de l’Arduino au module relais pour ouvrir le circuit et arrêter le courant.
  • NON (Normalement Ouvert) :  la configuration normalement ouverte fonctionne dans l’autre sens : le relais est toujours ouvert, donc le circuit est coupé à moins que vous n’envoyiez un signal de l’Arduino pour fermer le circuit.

Si vous souhaitez simplement allumer une lampe occasionnellement, il est préférable d’utiliser une configuration de circuit normalement ouvert.

Câblage des broches

Le côté basse tension a un jeu de quatre broches et un jeu de trois broches.

L’ensemble à droite se compose de VCC et GND pour alimenter le module, et l’entrée 1 ( IN1 ) et l’entrée 2 ( IN2 ) pour contrôler les relais inférieur et supérieur, respectivement.

Le deuxième jeu de broches comprend les broches GND , VCC et JD-VCC . La broche JD-VCC alimente l’électroaimant du relais.

Remarque : notez que le module a un capuchon de cavalier reliant les broches VCC et JD-VCC ; celui montré ici est bleu, mais le vôtre peut être d’une couleur différente. Le capuchon du cavalier vous permet de choisir si le circuit est physiquement connecté au circuit Arduino ou non, et vous pouvez choisir de l’activer ou non. Avec le capuchon du cavalier activé, les broches VCC et JD-VCC sont connectées. Cela signifie que l’électroaimant du relais est directement alimenté par la broche d’alimentation de l’Arduino, de sorte que le module de relais et les circuits Arduino ne sont pas physiquement isolés les uns des autres (c’est la configuration que nous utiliserons). Sans le capuchon du cavalier, vous devez fournir une source d’alimentation indépendante pour alimenter l’électro-aimant du relais via la broche JD-VCC. Cette configuration isole physiquement les relais de l’Arduino avec l’optocoupleur intégré au module.

Les connexions entre le module relais et l’Arduino sont vraiment simples :

  • GND : va à la terre
  • IN1 : contrôle le premier relais (il sera connecté à une broche numérique Arduino)
  • IN2 : contrôle le deuxième relais (il doit être connecté à une broche numérique Arduino si vous utilisez ce deuxième relais. Sinon, vous n’avez pas besoin de le connecter)
  • VCC : passe à 5V

Exemple : contrôle d’une lampe avec un module relais et un capteur de mouvement PIR

Dans cet exemple, nous créons une lampe sensible au mouvement. Une lampe s’allume pendant 10 secondes à chaque détection de mouvement.

Le mouvement sera détecté à l’aide d’un capteur de mouvement PIR . Si vous n’êtes pas familier avec le capteur de mouvement PIR, vous pouvez lire le post suivant :

Pour contrôler la lampe avec la tension secteur, nous utiliserons un module relais en configuration normalement ouverte.

Alerte de sécurité

Avant de poursuivre ce projet, je tiens à vous informer que vous avez affaire à une tension secteur. Veuillez lire attentivement l’avertissement de sécurité ci-dessous.

Avertissement: lorsque vous réalisez des projets branchés sur secteur, vous devez vraiment savoir ce que vous faites, sinon vous risquez de vous électrocuter. C’est un sujet sérieux, et nous voulons que vous soyez en sécurité. Si vous n’êtes pas sûr à 100 % de ce que vous faites, faites-vous plaisir et ne touchez à rien. Demandez à quelqu’un qui sait !

Pièces requises

Voici les pièces nécessaires pour cet exemple :

Vous pouvez utiliser les liens précédents ou vous rendre directement sur www.ocraelec.com pour trouver toutes les pièces pour vos projets au meilleur prix !

Code

Copiez le code suivant sur votre IDE Arduino et téléchargez-le sur votre carte Arduino.

Attention : vous ne devez pas télécharger de nouveau code tant que votre Arduino est connecté au relais.

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com  
*********/

// Relay pin is controlled with D8. The active wire is connected to Normally Closed and common
int relay = 8;
volatile byte relayState = LOW;

// PIR Motion Sensor is connected to D2.
int PIRInterrupt = 2;

// Timer Variables
long lastDebounceTime = 0;  
long debounceDelay = 10000;

void setup() {
  // Pin for relay module set as output
  pinMode(relay, OUTPUT);
  digitalWrite(relay, HIGH);
  // PIR motion sensor set as an input
  pinMode(PIRInterrupt, INPUT);
  // Triggers detectMotion function on rising mode to turn the relay on, if the condition is met
  attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING);
  // Serial communication for debugging purposes
  Serial.begin(9600);
}

void loop() {
  // If 10 seconds have passed, the relay is turned off
  if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){
    digitalWrite(relay, HIGH);
    relayState = LOW;
    Serial.println("OFF");
  }
  delay(50);
}

void detectMotion() {
  Serial.println("Motion");
  if(relayState == LOW){
    digitalWrite(relay, LOW);
  }
  relayState = HIGH;  
  Serial.println("ON");
  lastDebounceTime = millis();
}

Comment fonctionne le code

Tout d’abord, nous créons des variables pour maintenir la broche à laquelle la broche du relais IN1 est connectée et pour enregistrer l’état du relais :

int relay = 8;
volatile byte relayState = LOW;

Le capteur de mouvement PIR est connecté à broche 2:

int PIRInterrupt = 2;

Nous devons créer des variables auxiliaires pour gérer les minuteries avec le capteur de mouvement PIR. le lastDebounceTime La variable enregistre la dernière fois qu’un mouvement a été détecté. debounceDelay enregistre combien de temps la lampe doit rester allumée après la détection d’un mouvement (ici, nous définissons 10 secondes = 10000 millisecondes)

long lastDebounceTime = 0;
long debounceDelay = 10000;

Dans le setup(), nous définissons le relais comme une SORTIE et le désactivons par défaut :

pinMode(relay, OUTPUT);
digitalWrite(relay, HIGH);

Parce que nous utilisons une configuration normalement ouverte, il n’y a pas de contact entre les prises COM et NO à moins que vous ne déclenchiez le relais. Le relais est déclenché lorsque l’entrée passe en dessous d’environ 2 V. Cela signifie que si vous envoyez un signal BAS depuis l’Arduino, le relais s’allume et si vous envoyez un signal HAUT, le relais s’éteint ; cela fonctionne avec une logique inversée.

Réglez le capteur de mouvement PIR comme une interruption :

pinMode(PIRInterrupt, INPUT);
// Triggers detectMotion function on rising mode to turn the relay on, if the condition is met
attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING);

Chaque fois que le capteur de mouvement PIR est déclenché, il appelle la fonction detectMotion()   déclarée en fin de code pour allumer le relais :

void detectMotion() {
Serial.println("Motion");
if(relayState == LOW){
digitalWrite(relay, LOW);
}
relayState = HIGH;
Serial.println("ON");
lastDebounceTime = millis();
}

Dans le loop(), nous vérifions si 10 secondes se sont écoulées depuis que le relais est allumé. Si cette condition est vraie, nous pouvons désactiver le relais.

if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){
digitalWrite(relay, HIGH);
relayState = LOW;
Serial.println("OFF");
}

Schématique


Assemblez toutes les pièces comme indiqué sur le schéma de principe.

Attention : ne touchez aucun fil connecté à la tension secteur. Assurez-vous également d’avoir bien serré toutes les vis du module relais.

La lampe est connectée au relais en utilisant une configuration normalement ouverte. L’Arduino contrôle le relais viabroche 8 (broche 8est connecté à la broche du relais IN1). Enfin, le capteur de mouvement PIR est connecté à la broche 2.

Démonstration

Après avoir téléchargé le code et câblé le circuit, vous pouvez tester votre configuration.

Lorsqu’un mouvement est détecté, votre lampe s’allume. S’il n’y a pas de mouvement pendant 10 secondes, la lampe s’éteint.

N’hésiter pas à nous contacter pour toutes vos questions concernant ce tutoriel en particulier et tout projet arduino en général.

whatsapp : +22665306547

KIRAKOYA51

Responsable composants électronique chez OCRA
Votre Panier
Il n'y a pas d'articles dans le panier !
Continuer les achats
0