Qu'est-ce qu'un module relais ? Piloter lampes, prises et pompes avec Arduino
Qu'est-ce qu'un module relais et comment fonctionne-t-il ? Câblage Arduino, bornes NO, NC et COM, relais actifs à l'état bas, JD-VCC et optocoupleur, ESP32 et Pico, règles de sécurité avec le secteur.
Un relais est un interrupteur commandé électriquement : un petit signal suffit pour allumer et éteindre une charge bien plus importante. Une broche d'Arduino ne fournit que 5 V et quelques dizaines de milliampères, assez pour une LED mais pas pour une lampe, un ventilateur, une pompe à eau ou un appareil branché sur le secteur 230 V. Le module relais comble ce manque : l'Arduino envoie un petit signal et le relais ferme ses contacts pour laisser passer le courant fort dans la charge. C'est la pièce maîtresse des projets domotiques, d'arrosage automatique et de minuterie.

Comment fonctionne un relais ?
Un relais contient une bobine (un électroaimant), une palette métallique mobile et des contacts. Quand le courant traverse la bobine, le champ magnétique attire la palette et ferme les contacts ; le « clic » que tu entends, c'est ce mouvement. Quand le courant s'arrête, un ressort ramène la palette et les contacts s'ouvrent.
Le point essentiel : il n'y a aucune liaison électrique entre le côté bobine (circuit de commande) et le côté contacts (circuit de charge). Ils ne sont reliés que magnétiquement. Ton circuit Arduino en 5 V reste ainsi isolé du secteur.
Que trouve-t-on sur un module relais ?
On ne peut pas brancher un relais nu directement sur une broche d'Arduino : la bobine consomme plus de courant que la broche ne peut en fournir et, en se coupant, elle produit une surtension capable de détruire la broche. La carte du module embarque les composants qui règlent ces problèmes :
- Transistor de commande : commute les 70 à 80 mA dont la bobine a besoin à partir du petit signal de la broche.
- Diode de roue libre : absorbe la tension inverse produite à la coupure de la bobine et protège le transistor et l'Arduino.
- Optocoupleur (sur certains modèles) : transmet le signal de commande par la lumière et sépare complètement l'Arduino du circuit du relais.
- LED d'état : s'allume quand le relais est collé ; très pratique pour vérifier que ton code fonctionne.
- Borniers à vis : pour brancher les fils de la charge solidement, sans soudure.
Que signifient NO, NC et COM ?
Le côté charge du relais possède trois bornes. Celles que tu utilises déterminent si ton appareil est allumé ou éteint quand le relais n'est pas alimenté :
| Borne | Signification | Quand est-elle reliée à COM ? |
|---|---|---|
| COM | Commun ; un des fils de la charge arrive ici | Toujours reliée à NO ou à NC |
| NO | Normalement ouvert (Normally Open) | Seulement quand le relais est collé |
| NC | Normalement fermé (Normally Closed) | Quand le relais n'est pas collé |
Caractéristiques techniques (module 5 V courant)
| Caractéristique | Valeur |
|---|---|
| Tension de bobine | 5 V DC |
| Courant de bobine | Environ 70–80 mA (par canal) |
| Pouvoir de coupure | 10 A 250 V AC / 10 A 30 V DC (inscrit sur le relais) |
| Déclenchement | Actif à l'état bas ou haut (selon le module) |
| Broches de commande | VCC, GND, IN (IN1, IN2... sur les modules multicanaux) |
| Bornes de charge | COM, NO, NC |
Brancher un module relais sur Arduino
Le côté commande demande trois fils : VCC du module sur 5V, GND sur GND et IN sur la broche numérique 7. Côté charge, tu coupes un des fils de l'appareil à commander et tu relies ses deux extrémités aux bornes COM et NO. Le relais remplace tout simplement un interrupteur mural.
1const int RELAY_PIN = 7;
2
3void setup() {
4 pinMode(RELAY_PIN, OUTPUT);
5 digitalWrite(RELAY_PIN, HIGH); // aktif LOW modülde kapalı başla / start OFF on active-LOW modules
6}
7
8void loop() {
9 digitalWrite(RELAY_PIN, LOW); // röle çeker, cihaz açılır / relay on
10 delay(3000);
11 digitalWrite(RELAY_PIN, HIGH); // röle bırakır, cihaz kapanır / relay off
12 delay(3000);
13}Commander le relais avec un bouton : interrupteur marche-arrêt
Dans les vrais projets, on commande le plus souvent le relais avec un bouton, un capteur ou une heure. Le code ci-dessous inverse l'état du relais à chaque appui : tu peux ainsi piloter une lampe 230 V avec un petit bouton-poussoir. Pour le câblage du bouton et les rebonds, vois Comment brancher un bouton-poussoir sur Arduino.
1const int RELAY_PIN = 7;
2const int BUTTON_PIN = 2; // butonun diğer ucu GND'de / other leg to GND
3
4bool relayOn = false;
5bool lastButton = HIGH;
6
7void setup() {
8 pinMode(RELAY_PIN, OUTPUT);
9 pinMode(BUTTON_PIN, INPUT_PULLUP);
10 digitalWrite(RELAY_PIN, HIGH); // başta kapalı / start OFF (active LOW)
11}
12
13void loop() {
14 bool button = digitalRead(BUTTON_PIN);
15 if (lastButton == HIGH && button == LOW) { // yeni basış / new press
16 relayOn = !relayOn;
17 digitalWrite(RELAY_PIN, relayOn ? LOW : HIGH);
18 delay(50); // sıçrama önleme / debounce
19 }
20 lastButton = button;
21}JD-VCC et optocoupleur : isolation complète
Sur les modules à optocoupleur, à côté des broches VCC, GND et IN, on trouve une broche JD-VCC avec un cavalier. Cavalier en place, la bobine du relais est elle aussi alimentée par le 5 V de l'Arduino. Si tu retires le cavalier et branches une alimentation 5 V séparée sur JD-VCC et sa propre masse, le courant de la bobine vient entièrement de cette alimentation, et l'Arduino n'allume plus que la LED de l'optocoupleur. Avec des charges parasites comme les moteurs et les pompes, cela évite en grande partie les blocages et redémarrages de l'Arduino.
Relais avec l'ESP32 et le Raspberry Pi Pico
Les broches de l'ESP32 et du Pico délivrent 3,3 V. La plupart des modules relais 5 V se déclenchent avec ce signal, mais sur un module actif à l'état bas, un HIGH de 3,3 V ne relâche pas toujours complètement le relais ; si ton relais reste collé en permanence, c'est la raison. La solution : prendre un module à déclenchement 3,3 V, une carte à optocoupleur avec séparation JD-VCC, ou ajouter un petit transistor NPN. Le module lui-même reste alimenté en 5 V. Piloter un relais avec un Pico en MicroPython est aussi simple que ceci :
1from machine import Pin
2import time
3
4relay = Pin(15, Pin.OUT, value=1) # GP15, aktif LOW: 1 = kapalı / active LOW: 1 = off
5
6while True:
7 relay.value(0) # röle çeker / relay on
8 time.sleep(3)
9 relay.value(1) # röle bırakır / relay off
10 time.sleep(3)Règles de sécurité avec la tension du secteur
- Respecte le courant maximal : ne dépasse jamais la valeur inscrite sur le relais (par exemple 10A 250VAC). Avec des appareils puissants comme les radiateurs, climatiseurs ou bouilloires, reste nettement en dessous.
- Coupe la phase : pour une lampe ou une prise, fais passer la phase dans le relais, pas le neutre, pour qu'aucune tension ne reste sur l'appareil éteint.
- Utilise un câble adapté : les fils de breadboard ne sont pas faits pour le secteur ; côté charge, utilise un câble isolé de section suffisante.
- Isole le dessous de la carte : la face soudée du module porte la tension du secteur ; ne la laisse pas en contact avec du métal ou la main nue.
- Ajoute un fusible : un fusible adapté sur la ligne de charge évite un incendie en cas de court-circuit.
Relais, transistor ou relais statique ?
| Caractéristique | Relais mécanique | Transistor / MOSFET | Relais statique (SSR) |
|---|---|---|---|
| Commute | AC et DC | DC uniquement | Surtout AC |
| Vitesse | Lent (millisecondes) | Très rapide, PWM possible | Rapide |
| Bruit | Clic | Silencieux | Silencieux |
| Durée de vie | Les contacts s'usent | Très longue | Très longue |
| Idéal pour | Lampes, prises, pompes | Vitesse de moteur, rubans LED | Charges AC commutées souvent |
En bref : pour allumer et éteindre un appareil de temps en temps, le relais mécanique est la solution la moins chère et la plus simple. Pour régler la vitesse d'un moteur ou la luminosité d'un ruban LED, choisis un transistor ou un MOSFET, et pour des charges AC commutées de nombreuses fois par seconde, un relais statique. Pour choisir le bon transistor, jette un œil à l'outil Transistors.
Idées de projets avec un relais
- Arrosage intelligent : mets en marche la pompe quand le capteur d'humidité du sol signale qu'il est sec.
- Lumière au mouvement : allume une lampe quand un capteur PIR détecte quelqu'un, puis éteins-la après un moment.
- Ventilateur piloté par l'humidité : démarre l'extracteur de la salle de bains quand l'humidité monte ; pour la mesure, vois Capteur de température et d'humidité DHT11.
- Prise télécommandée : commande une prise avec un récepteur IR et la télécommande de la télé.
- Minuterie : allume et éteins l'éclairage de l'aquarium à la même heure chaque jour.
- Contrôle depuis le téléphone : pilote une lampe depuis une page web grâce au Wi-Fi de l'ESP32.
Erreurs fréquentes et solutions
- Le relais fonctionne à l'envers : le module est actif à l'état bas ; inverse HIGH et LOW dans le code.
- Le relais claque sans arrêt : l'alimentation est peut-être insuffisante ; utilise une alimentation 5 V externe, surtout avec plusieurs relais.
- L'Arduino redémarre quand le moteur tourne : parasites et chute de tension ; alimente la bobine séparément via JD-VCC et ajoute un condensateur en parallèle sur le moteur.
- La LED s'allume mais la charge ne marche pas : les fils de la charge sont peut-être sur NC, ou une vis de bornier est desserrée.
- Avec l'ESP32, le relais ne relâche jamais : le HIGH de 3,3 V ne peut pas couper un module actif à l'état bas ; utilise un module compatible 3,3 V ou un transistor.
- Brancher un relais nu directement sur une broche : le courant de la bobine et la tension inverse détruisent la broche ; utilise toujours un module, ou un transistor avec une diode.
Dès que tu associes un relais à un capteur, tu commences à créer des automatismes vraiment utiles. Pour savoir à quoi sert chaque capteur, consulte le Guide des capteurs Arduino ; dans l'application BlueGrays, tu trouveras des projets de lampe, d'arrosage et d'éclairage à relais, pas à pas avec schémas.
Questions fréquentes
Pourquoi mon module relais claque-t-il sans arrêt ?
La cause la plus fréquente est une alimentation trop faible : quand le relais colle, la tension chute, l'Arduino redémarre et le relais relâche. Avec plusieurs relais ou un Arduino alimenté en USB, utilise une alimentation 5 V externe. Vérifie aussi que ton code ne contient pas une boucle qui commute le relais en permanence.
Que veut dire relais actif à l'état bas ?
C'est un module relais qui colle quand sa broche IN est à LOW (0 V) et relâche à HIGH. La plupart des modules bon marché fonctionnent ainsi. Dans le code, tu écris digitalWrite(pin, LOW) pour l'allumer et HIGH pour l'éteindre ; le mettre d'abord à HIGH dans setup() pour qu'il démarre éteint est une bonne habitude.
Peut-on commander un moteur à courant continu avec un relais ?
Pour l'allumer et l'éteindre, oui, mais tu ne pourras ni régler sa vitesse ni changer facilement son sens de rotation. Pour la vitesse, on utilise un MOSFET ou un driver moteur PWM, et pour le sens un pont en H comme le L298N.
À quoi sert le cavalier JD-VCC ?
Sur les modules à optocoupleur, il sépare l'alimentation de la bobine du relais (JD-VCC) de l'alimentation de commande (VCC). Si tu retires le cavalier et fournis un 5 V séparé à JD-VCC, l'Arduino est totalement isolé du circuit du relais et les parasites des moteurs ne l'atteignent plus.
Faut-il acheter un relais 5 V ou 12 V ?
La tension de bobine doit correspondre à la tension qui alimente le module. Pour les projets Arduino, un module à bobine 5 V est le plus pratique, car le 5 V de l'Arduino ou un chargeur USB suffit. Un relais à bobine 12 V demande une alimentation 12 V ; cela n'a rien à voir avec la tension côté charge.
Combien de relais un Arduino peut-il commander ?
Chaque relais demande une broche numérique, et un Uno en offre jusqu'à 20. La vraie limite est le courant : chaque bobine consomme environ 70 à 80 mA, donc au-delà de 2 relais, alimente le module avec une alimentation 5 V externe plutôt que par l'Arduino. Il existe aussi des modules à 8 et 16 canaux.
Projets à réaliser après cet article
Voir tous les projets
Ampoule 220V avec bouton poussoir (Push)
Projet qui contrôle une ampoule de 220V avec un bouton poussoir en utilisant un module relais. Enseigne les bases de la commutation haute tension à l'aide d'un relais.

Ampoule brûlante 220V avec bouton (marche-arrêt)
Un projet qui allume et éteint une ampoule de 220V (toggle) à chaque pression sur un bouton avec le module relais. Enseigne la logique de commutation permanente avec un relais et une variable d'état.

Ampoule brûlante 220V avec télécommande
Projet qui permet d'allumer et d'éteindre une ampoule de 220 V par l'intermédiaire d'un relais avec les touches d'alimentation et de sourdine d'une télécommande infrarouge. Il combine la commande infr

Station d'irrigation intelligente
Système autonome d'irrigation des plantes qui fonctionne 24/7 sans fatiguer Arduino avec deux batteries 18650 et un régulateur LM2596. Il gère automatiquement le moteur d'arrosage en mesurant en perma

Système d'arrosage intelligent ESP 32
Dans le cadre de ce projet, un système d'arrosage automatique des plantes a été mis au point à l'aide d'un ESP32 et d'un capteur d'humidité du sol. Le capteur mesure en permanence le niveau d'humidité du sol. Lorsque l'humidité descend en dessous du niveau défini, l'ESP32 active le relais pour mettre la pompe en marche et arroser la plante. Lorsque le sol est suffisamment humide, la pompe s'arrête automatiquement. Ce projet permet d'arroser les plantes régulièrement et de réaliser des économies

Éclairage Intelligent ESP32 (PIR + LDR + Relais + OLED)
Transformez votre couloir, votre salle de bain ou votre garde-manger en éclairage intelligent avec l'ESP32 ! En utilisant un capteur de mouvement PIR, un capteur de lumière LDR et un module relais, nous construisons le scénario classique "la lumière s'allume lorsqu'un mouvement est détecté dans l'obscurité" — si l'environnement est déjà lumineux, le mouvement N'ACTIVE PAS la lumière, économisant ainsi de l'énergie pendant la journée. La lumière reste allumée pendant 30 secondes ; si le mouvement

Éclairage automatique avec le capteur de mouvement PIR ESP32
Dans ce projet, nous allons détecter toute personne entrant dans la pièce à l'aide du capteur de mouvement PIR HC-SR501 et allumer automatiquement la LED. Lorsqu'un mouvement sera détecté, la LED restera allumée pendant un certain temps et nous gérerons le temps à l'aide de la fonction `millis()` et d'un compteur, sans avoir recours à `delay()`. Nous obtiendrons ainsi un système d'éclairage à détecteur de mouvement qui ne bloque pas l'ESP32 et permet d'effectuer d'autres tâches. Dans la vie de t

Sonnette et lumière avec détecteur de mouvement
Projet qui allume la LED et joue la mélodie de la sonnette avec le buzzer lorsque le capteur PIR détecte un mouvement. Il combine la détection de mouvement avec la notification sonore et lumineuse.
Autres articles
Apprends comment fonctionne un relais, ce que signifient les bornes NO, NC et COM, comment brancher le module sur un Arduino, le commander avec un bouton et travailler en sécurité avec la tension du secteur.

