Modules à relais DIY
Les modules relais sont très nombreux dans le commerce, mais ils n'offrent en général que des possibilités limitées. Nous allons voir dans cet article comment les réaliser et surtout pour quelles raisons nous aurions à les fabriquer nous-même.
Dans cet article nous allons aborder différents sujets :
- relais classiques ou bistables
- pilotage de relais avec des transistors
- pilotage de relais avec un ULN2803
- élévateurs de tension
- modules relais pilotés par I2C
1. Présentation
Prenons un exemple :
Cette carte comporte un relais, un transistor de commande, 2 LEDs, trois
résistances de 1KΩ et un connecteur 3 broches (GND, 5V, IN).
La description de la carte précise que ce relais doit être commandé par un niveau bas.
Cela
me convient-il ? pas forcément. J'ai plutôt l'habitude de commander mes
relais avec un niveau haut et les LEDs sont inutiles. De plus la
résistance de base de 1KΩ est faible et impose un courant de
commande de 5mA.
Elle a un autre défaut : elle ne possède pas de trous de fixation.
Attention, certains modules sont équipés d'optocoupleurs bas de gamme avec des résistance d'entrée de 200Ω et réclament 20mA.
D'autres cartes proposent un cavalier afin de pouvoir choisir le niveau de
la broche de commande :
Ces modules sont équipés en général de relais chinois du type SONGLE SRD-05VDC-SRD, ce qui n'est pas vraiment un gage de qualité.
1.1. Modules à optocoupleur
Les modules sont en général équipés d'un optocoupleur. Quel intérêt ? Le relais offre déjà lui-même une isolation galvanique tout à fait suffisante, 1000V pour les plus courants.
Sur ce module, on voit 2 connecteurs :
- connecteur d'alimentation
- connecteur de commande :
Pourquoi 2 broches VCC et deux broches GND ?
Il faut examiner un schéma pour avoir l'explication :
On peut remarquer que les relais seront activés si l'on applique un niveau bas 0V sur IN1 ou IN2, et seront désactivés si l'on applique un niveau haut 5V sur IN1 ou IN2.
Les deux proches VCC sont reliées entre elles, ainsi que les deux broches GND. Le cavalier J5 permet de relier VCC à JD-VCC (ou RY-VCC).
Il y a deux façons de brancher ces modules.
1.1.1. La manière simple en 5V
Il suffit de laisser le cavalier en place entre VCC et JD-VCC, et de relier le module comme ceci :
Cela fonctionne mais seulement si les relais sont des modèles à bobine 5V.
Si l'on alimente par la broche VCC du connecteur de commande sous 12V, il sera impossible de désactiver les relais. En effet, si VCC vaut 12V et que la tension de commande sur D2 ou D3 est de 5V, il reste 7V aux bornes des composants R4+opto+LED, et le relais est donc activé.
1.1.2. La manière moins simple en 12V
Si les modules relais sont des modèles à bobine 12V, il faut retirer le cavalier entre VCC et JD-VCC, et relier le module comme ceci :
On peut aussi utiliser ce câblage avec des relais à bobine 5V ou 24V.
Comme on le voit sur ce schéma, la broche GND du connecteur de commande n'est pas utile. En effet, lors de l'activation d'un relais, le courant de commande va circuler du +5V, à travers l'optocoupleur, vers la sortie de l'ARDUINO.
Ici, le 12V présent sur la broche JD-VCC du connecteur d'alimentation peut être obtenu de plusieurs manières :
On peut utiliser une alimentation 12V pour le module relais, et alimenter également l'ARDUINO en 12V par sa broche VIN. Attention, certains ESP8266 ou ESP32 n'acceptent pas plus de 6.5V sur leur entrée 5V ou VCC. Il faudra ajouter un convertisseur STEP-DOWN.
On peut également utiliser un convertisseur STEP-UP 5V / 12V branché sur une alimentation 5V.
On peut utiliser 2 alimentations séparées, une alimentation 5V pour l'ARDUINO et une alimentation 12V pour le module relais. Les masses n'auront pas besoin d'être reliées.
Que se passe t-il si on raccorde la broche GND du module à la broche GND de l'ARDUINO ? Rien de spécial. Le GND de l'alimentation 12V sera relié au GND de l'ARDUINO.
1.1.3. Isolation galvanique
On lit beaucoup d'âneries à ce sujet. Les modules à relais avec optocoupleur apporteraient soit-disant une isolation galvanique (absence de liaison électrique), et cette isolation serait un plus.
Rien n'est plus faux. Je ne vois pas par quel miracle ou tour de magie il pourrait exister une isolation galvanique entre un ARDUINO et un module relais se partageant la même alimentation, en tout cas la même masse.
La seule manière d'obtenir une isolation galvanique totale entre l'ARDUINO et la partie commande de la bobine du relais est d'utiliser deux alimentations totalement distinctes, et de ne pas relier la broche GND de l'ARDUINO à celle du module relais.
Deuxièmement, on se demande ce que peut bien apporter une isolation galvanique entre l'ARDUINO et la partie commande de la bobine du relais. Il n'y a aucune que cela apporte quoi que ce soit. Par contre l'isolation galvanique est indispensable entre la partie commande de la bobine du relais et les contacts de celui-ci. Mais un relais offre déjà une isolation galvanique élevée : environ 1000V.
S'il s'agissait d'un module relais à bobine 230V, commandé par un opto-triac, je comprendrais l'utilité d'une l'isolation galvanique. Personne n'a envie de se prendre une châtaigne 230V en touchant un ARDUINO relié à la phase.
1.2. Domaine d'utilisation
En général, lorsqu'on utilise un relais, c'est que l'on a une charge 230V à alimenter. Si la charge fonctionne sous tension continue 12V ou 24V, il est préférable d'utiliser un MOSFET, ce qui apportera des avantages indéniables :
- courant de commande minime
- fiabilité
- absence de bruit
J'en ai déjà parlé ici :
MOSFETS de puissance
Un Module à 8 ou 16 Mosfets
Piloter des Relais ou des MOSFEts à l'aide d'un Module MCP23008 ou MCP23017
1.3. Dissipation
Ces relais dissipent environ 350mW lorsque leur bobine est alimentée.
Si le courant traversant les contacts est important, le résistance de contact (en général 100mΩ) dissipera également de la puissance, par exemple 1W pour 10A, et provoquera une augmentation supplémentaire de température.
Cela paraît peu, mais cela peut poser des problèmes dans un boîtier de très faibles dimensions et non ventilé. La bobine peut s'échauffer, se dilater, et se coincer en position contacts fermés. Cela m'est déjà arrivé sur une prise connectée du commerce.
1.4. Module relais 3V
Il existe peu de modules relais fonctionnant sous 3V. ce point est très dérangeant lorsque l'on désire commander un relais à partir d'un microcontrôleur 3.3V.
D'autre part un module relais 3V ne peut être alimenté directement à l'aide d'une batterie (LITHIUM-ION ou LIPO), car il ne supportera pas la tension de 4.2V de ces batteries à pleine charge.
1.5. Module relais bistable
Avec un grand nombre de relais l'utilisation de modèles bistables permet de limiter la consommation de l'ensemble.
Avec 8 relais 5V par exemple, s'il sont tous fermés, la consommation sera de 150mA par relais, donc 1.2A au total.
Si l'on utilise des relais bistables, le module consommera 150mA à chaque commutation pendant quelques dizaines de millisecondes, ensuite cette consommation retombera à ZÉRO.
L'alimentation sera donc beaucoup moins puissante qu'avec des relais traditionnels.
J'ai déjà utilisé ce type de relais ici :
Une prise connectée MYSENSORS
Un télérupteur MYSENSORS pour rail DIN
Le relais bistable possède soit une bobine que l'on alimente dans un sens ou dans l'autre pour fermer ou ouvrir les contacts, soit deux bobines avec un point milieu. La durée d'alimentation des bobines est très courte (10ms à 20ms).
J'en ai déjà parlé ici :
Piloter un relais. Transistor unipolaire ou bipolaire ?
Ce type de relais permet d'une part d'économiser l'énergie, et d'autre part d'éviter une surchauffe de la bobine si celle-ci est sous tension pendant une durée importante, surtout si le montage est
intégré dans un boîtier non ventilé.
Les relais bistables ne sont pas forcément plus cher. Par exemple un OMRON G5RL-K1A-E 5V (bistable) coûte même 10% moins cher qu'un FINDER 40.61.9.005.0000 (simple).
Le seul inconvénient est que le relais bistable mobilise deux sorties du microcontrôleur.
Les modules à relais bistables sont pratiquement inexistants sur le marché. On peut noter celui-ci (12V), disponible sur AliExpress :
Attention aux modules dits bistables, qui ne sont en réalité que des relais classiques commandés par une électronique gérant deux états :
D'autre part ce module possède une seule broche de commande, et fonctionne comme un télérupteur. Le microcontrôleur n'a donc aucun moyen de savoir dans quel état le relais va basculer.
2. Les besoins
J'avais déjà décrit une carte à 4 relais ici :
ARDUINO : prototypage amélioré sur breadboard
Je vais présenter ici plusieurs modules étudiés récemment pour couvrir mes besoins pour plusieurs projets :
- 1 module à relais simple 16A
- 3 modules à relais bistable 16A
- 2 module I2C à relais classiques 10A ou 16A
- 4 modules I2C à relais bistable 16A
Ces modules ont des caractéristiques communes :
- des relais de qualité
- pas d'optocoupleur
- pas de LEDs
- commande basse tension (3V à 5V)
- commande par un niveau haut
- des trous de fixations
3. Les schémas
Les schémas suivants ont un point commun. Les contacts des relais sont en parallèle, ce qui permet de doubler le courant admissible.
Certains relais FINDER SPDT (série 40.61 par exemple) peuvent être remplacés par des DPDT (série 40.52 par exemple). Le brochage est identique.
La plupart des modules disposent d'un connecteur J1 d'alimentation séparée pour les bobines de relais. L'utilisation est la suivante :
- alimentation en 5V : mettre en place un cavalier sur les broches 2 et 3
- alimentation séparée de la partie puissance : alimenter par les broches 1 (GND) et 3 (5V, 12V
ou 24V), en fonction des relais utilisés.
- pour obtenir un module relais
12 ou 24V, il suffit de remplacer les relais 5V par des modèles 12V ou
24V.
3.1. Transistors de commande
Pour commander un relais, on peut utiliser soit des transistors (2N2222 par exemple) ou un ULN2803A.
3.1.1. Transistor
Rappelons le schéma classique d'une commande de relais :
Calculons la résistance de base du transistor. Le 2N2222 a été choisi pour son gain important, mais également pour sa tension de saturation faible (45mV sur un relais du type SONGLE SRD-05VDC-SRD).
Ce transistor sera capable de piloter des relais 24V. Au delà, on peut s'orienter vers un 2N4238, par exemple, supportant 60V.
Le courant de bobine d'un relais OMRON G5RL-K1A-E 5V est de 120mA, et 130mA pour le FINDER 40.61.9.005.
Le gain du 2N2222 est de 50 pour un courant de collecteur de 130mA. Le courant minimal pour assurer la saturation sera de 130mA / 50 = 2.6mA. Nous allons doubler cette valeur par sécurité : 5mA.
Le courant de base maximal du 2N2222 est de 50mA, il supportera donc sans problème 5mA.
Il faut considérer deux cas :
- commande en 5V (premier montage)
- commande entre 3V à 3.3V correspondant à un microcontrôleur alimenté par batterie LITHIUM-ION sur son entrée VIN, ou à l'aide d'un régulateur externe 3.3V.
Pour le deuxième cas, quand la tension de la batterie descendra en dessous de 3.2V, le microcontrôleur sera alimenté sous 3V (régulateur LDO avec 200mV de chute de tension drop-out).
Pour une commande en 5V la résistance de base sera au maximum de (5V - 0.6V) / 5mA = 880Ω.
Pour une commande en 3V la résistance de base sera au maximum de (3V - 0.6V) / 5mA = 480Ω.
Avec cette résistance, pour une commande en 3.3V le courant de base sera 10% supérieur.
Si l'on adopte un relais 12V le courant de bobine sera moins important : 50mA. Il est facile de refaire les calculs.
3.1.2. ULN2803
L'ULN2803 est constitué de 8 transistors darlington. Il possède tous les composants nécessaires :
- 8 transistors pouvant accepter 500mA
- résistances de base
- diodes de roue libre
L'ULN2803 remplace donc avantageusement les 8 transistors d'un montage classique, avec leurs composants annexes. La largeur de la carte en sera fortement réduite.
De plus il supporte 50V, et pourra donc piloter des relais 48V.
La résistance de base d'un ULN2803 a une valeur de 2.7KΩ. La tension VBE est de 1.3V :
- le courant de base sous 5V sera de : (5V - 1.3V) / 2700 = 1.3mA
- le courant de base sous 3.3V sera de : (3.3V - 1.3V) / 2700 = 0.74mA
Un microcontrôleur ou un expander est capable de fournir 20mA en sortie. Comme l'ULN2803 a un gain très important (1000) il n'aura aucun mal à piloter le relais.
L'ULN2003A a toutefois un inconvénient : c'est un darlington, et il occasionne une chute de tension (VCEsat) de 1V sur la commande de bobine du relais.
Avec un montage à transistors 2N2222, cette chute de tension est de seulement 45mV.
Avec un relais 5V il restera 4V aux bornes de la bobine. Les relais, heureusement, sont tolérants :
- un SONGLE SRD-05VDC-SRD réclame 75% de la tension nominale
- un OMRON G5RL-K1A-E réclame 70% de la tension nominale
- un FINDER 40.61.9.005 réclame 80% de la tension nominale
Avec certains relais (le FINDER par exemple), 4V de tension de commande risquent d'être insuffisants.
Par contre avec un relais 12V il restera 11V aux bornes de la bobine, ce qui plus acceptable. Pour ma part je réserverais ce genre de montage à des relais 12V ou 24V.
3.2. Les modules relais bistable
Les modules suivants répondent à un besoin assez général : proposer une solution alternative aux modules du commerce, en utilisant des relais bistables.
3.2.1. Module relais bistable double bobine
Ce module est équipé comme suit :
- 1 relais OMRON G5RL-K1A-E 5V 16A
- 2 transistors 2N2222
- 2 résistances 680Ω
- 2 diodes de roue libre 1N4148
- 1 connecteur DUPONT mâle 4 broches
- 1 borniers 16A
Un relais bistable à double bobine est utilisé :
Le relais dispose de 3 broches pour les bobines :
- un point commun à relier au + de l'alimentation
- deux broches SET et RESET à relier aux collecteurs de 2 transistors de commande
Une impulsion 5V sur la broche 2 du connecteur d'entrée suffit à fermer les contacts du relais.
Une impulsion 5V sur la broche 3 du connecteur d'entrée suffit à ouvrir les contacts du relais.
Pour obtenir un module relais 12 ou 24V, il suffit de remplacer le relais 5V par un modèle 12V ou 24V. Cela n'aura pas d'impact sur les niveaux de tension de commande (5V).
J'utilise ce module sur un montage à base d'ARDUINO PRO MINI 5V 16MHz alimenté sur secteur. L'électronique est confinée dans un petit boîtier étanche, le relais bistable permet d'éviter l'échauffement.
3.2.2. Module double relais bistable simple bobine
Ce module est équipé comme suit :
- 2 relais OMRON G5RL-U1A-E 5V 16A
- 1 L293D
- 1 connecteur DUPONT mâle 7 broches
- 1 connecteur DUPONT mâle 3 broches
- 2 borniers 16A
Par rapport au schéma précédent, un relais bistable à simple bobine est utilisé :
Le relais dispose de 2 broches pour la bobine. Pour le piloter on alimente la bobine, pendant un bref instant, dans un sens ou dans l'autre pour fermer ou ouvrir les contacts. Il nous faut donc un pont en H.
Un L293D, que l'on utilise en général pour alimenter des moteurs à courant continu, convient parfaitement ici. Il permet même de se passer de diodes de roue libre.
Attention : le L293D est équipé de diodes, ce n'est pas le cas du L293.
La broche 7 permet d'alimenter la partie logique 5V du L293D. Cette tension de 5V est une obligation (4.5V à 7V), ce circuit ne saurait être alimenté sous 3.3V.
Les tensions sur les entrées de commande, par contre, peuvent accepter une tension de 3.3V sans problème (au minimum 2.3V).
La broche 6 ENABLE permet d'activer le L293D ou non. Cette broche,
lorsqu'elle est à ZERO volts, permet d'économiser de l'énergie (10mA au
lieu de 27mA à 35mA).
Les broches 2 à 5 permettent de désactiver et d'activer les relais 1 et 2.
A noter : si 10mA au repos est une consommation trop importante on peut remplacer le L293D par un TB6612FNG. La consommation tombera à 1µA.
Un sketch de commande est disponible :
https://bitbucket.org/henri_bachetti/arduino-relay-modules/src/master/arduino/dual-bistable-relay/dual-bistable-relay.ino
3.3. Les modules relais 3V
Les modules suivants répondent à un besoin précis : pouvoir être commandés par une carte ARDUINO PRO MINI 3.3V ou un ESP8266 ou ESP32, sans pour autant devoir ajouter une alimentation 5V, 12V ou 24V pour le relais.
Ils peuvent être alimentés sous 3.3V, ou 3.7V dans le cas d'une alimentation par batterie LITHIUM-ION ou LIPO (3V à 4.2V).
3.3.1. Module relais classique
Ce module est équipé comme suit :
- 1 relais FINDER 40.61.9.005.0000
- 1 module convertisseur STEP-UP XR2981
- 1 transistor 2N2222
- 1 résistance 390Ω
- 1 diode de roue libre 1N4148
- 1 connecteur DUPONT mâle 4 broches
- 1 bornier 16A
C'est
un relais classique, comme en sont équipés les modules du commerce, sauf
que celui-ci est un relais 16A de marque FINDER, gage de qualité.
La particularité de ce module relais est d'utiliser un convertisseur STEP-UP XR2981 pour alimenter la bobine du relais en 5V.
|
Module XR2981 5V
|
Le module XR2981 consomme 120µA au repos.
La faible résistance R1 à la base du 2N2222 permet d'accepter une tension de commande plutôt basse (broche 2), de 3V.
La broche 4 du connecteur d'entrée est une sortie 5V que l'on pourra utiliser pour alimenter un module ou plusieurs modules 5V.
On peut parfaitement utiliser un relais 12V ou 24V, en remplaçant le XR2981 par un module SX1308 (mêmes dimensions, même brochage), que l'on réglera sur 12V ou 24V, mais attention la tension sur la broche 4 du connecteur sera également de 12V ou 24V.
|
Module SX1308 réglable
|
Le module SX1308 consomme 1mA au repos.
Comme tout module relais du commerce, celui-ci ne devra pas être enfermé dans un boîtier de dimensions très réduites non ventilé, sauf si la durée de fonctionnement du relais est courte.
3.3.2. Module relais bistable
Ce module est équipé comme suit :
- 1 relais OMRON G5RL-K1A-E 5V 16A
- 1 module convertisseur STEP-UP XR2981
- 2 transistors 2N2222
- 2 résistances 390Ω
- 2 diodes de roue libre 1N4148
- 1 connecteur DUPONT mâle 5 broches
- 1 bornier 16A
Ce module reprend la conception du précédent, en adoptant un relais bistable à deux bobines.
Ici c'est la broche 5 du connecteur d'entrée qui est une sortie 5V.
3.4. Augmenter le nombre de relais
Il est possible bien entendu de réaliser des modules à 4, 8 ou 16 relais, en suivant les mêmes principes que précédemment, mais que penser d'un module à 8 ou 16 relais bâti de cette manière ?
Il monopolise 8 ou 16 sorties de l'ARDUINO. On constate qu'avec 16 relais, les limites d'un ATMEGA328P sont atteintes. On peut certainement mieux faire.
Les modules relais ont évolué, grâce je pense à des optocoupleurs plus sensibles. Le dernier que j'ai acheté (4 relais) demande un courant de commande de seulement 1.4mA. Un module 16 relais aura donc besoin de 22mA au total, ce qu'une carte ARDUINO est parfaitement capable de fournir.
Les modèles un peu plus anciens demandaient un courant de commande de 5mA. Si tous les relais sont activés, un module 8 relais consommera 40mA sur les sorties du microcontrôleur, et cette consommation montera à 80mA pour un module à 16 relais.
Attention : avec certains module relais anciens et bas de gamme du commerce ce courant de commande peut doubler, et on approche dangereusement de la limite des 200mA du microcontrôleur.
3.4.1. Expander
Un
expander d'entrées / sortie I2C 8 bits ou 16bits peut également être
utilisé afin de limiter le nombre de broches de commande :
- un MCP23008 + 8 transistors + 8 relais classiques
- un MCP23008 + 8 transistors + 4 relais bistables
- un MCP23017 + 16 transistors + 16 relais classiques
- un MCP23017 + 16 transistors + 8 relais bistable
Un module relais équipé d'un expander MCP23017 I2C 16 canaux
permettra de piloter 16 relais (ou 8 relais bistables). Comme le MCP23017 possède 3 broches
de sélection d'adresse I2C, on peut connecter jusqu'à 8 modules. Cela
permettra de piloter en tout 128 relais (ou 64 relais bistables).
Le nombre de broches de commandes est réduit à seulement 2 (SDA et SCL) :
- ARDUINO : A4 & A5
- ESP8266 : GPIO4 & GPIO5
- ESP32 : GPIO21 & GPIO22
Le câblage sera donc réduit par l'utilisation du bus I2C.
3.4.2. Cartes commerciales
Des solutions commerciales équipées d'un expander existent :
Cette carte à 8 relais utilise un expander I2C PCF8574, un 74HC240 et un ULN2803A :
https://www.ereshop.com/shop/index.php?main_page=product_info&cPath=143_178&products_id=788
Son prix est assez élevé : 42$
3.4.3. Réalisation à l'aide de modules du commerce
Il est possible d'utiliser un module à relais et un module expander du commerce :
|
Module à 8 relais |
|
Module MCP23017 |
On devra donc relier les sorties du module expander aux entrées du module à relais. J'ai déjà écrit un article à ce sujet :
Piloter des Relais ou des MOSFEts à l'aide d'un Module MCP23008 ou MCP23017
3.4.4. Réalisations personnelles
Si l'on désire une solution tenant sur une seule carte, ou une solution à relais bistables, il faudra la réaliser soi-même.
Les exemples suivants sont construits autour d'un expander MCP23008 ou PCF8574. Ils utilisent des transistors 2N2222 ou un driver ULN2803.
Comme pour les exemples précédents, pour obtenir un module relais 12 ou 24V, il suffit de remplacer les relais 5V par des modèles 12V ou 24V (et même 48V pour le ULN2803).
Certains modules utilisent des relais OMRON-G5RL-K1A-E (SPST), d'autres des OMRON-G5RL-K1-E (SPDT). Ils sont compatibles broche à broche.
Un cavalier (JP1 sur les schémas) permet de relier les broches 4 et 5 du connecteur dans le cas où l'on désire alimenter uniquement en 5V avec la même source d'alimentation.
Trois ponts de soudure (JP2) permettent de changer l'adresse I2C du module (0x20 à 0x27) :
Les deux composants MCP23008 et PCF8574 occupent la même plage d'adresses I2C.
A0, A1 et A2 correspondent aux broches suivantes :
MCP23008 : 5, 4, et 3
MCP23017 : 15, 16 et 17
PCF8574 : 1, 2 et 3
L'adresse I2C est sélectionnée à l'aide de points de soudure. Exemple pour un MCP23017 :
Pour obtenir l'adresse 0x20 il faudra réunir les pastilles 1-2, 4-5, 7-8
Pour obtenir l'adresse 0x21 il faudra réunir les pastilles 2-3, 4-5, 7-8
Pour obtenir l'adresse 0x22 il faudra réunir les pastilles 1-2, 5-6, 7-8
Pour obtenir l'adresse 0x23 il faudra réunir les pastilles 1-2, 4-5, 8-9
etc.
3.4.4.1. Exemple avec un MCP23008 et 8 relais classiques
Ce module est équipé comme suit :
- 8 relais FINDER 36.11.9.005 10A (compatibles avec les SONGLE SRD-05VDC-SRD)
- 8 transistors 2N2222
- 8 résistances 680Ω
- 8 diodes de roue libre 1N4148
- 1 connecteur DUPONT mâle 4 broches
- 1 connecteur DUPONT mâle 3 broches
- 8 bornier 10A
La broche 4 permet d'alimenter le MCP23008. Il est possible de l'alimenter sous 3.3V ou 5V (1.8V à 5.5V). Le MCP23008 consomme 2µA.
Comme tout module à relais du commerce, celui-ci ne devra pas être enfermé dans un boîtier de dimensions très réduites non ventilé, sauf si la durée de fonctionnement des relais est courte.
Avec 8 relais 5V par exemple, s'il sont tous activés, la consommation sera de 70mA par relais, donc 560mA au total sur la broche VCC.
3.4.4.2. Autre exemple avec un MCP23008 et 8 relais classiques
Ce module est équipé comme suit :
- 8 relais FINDER 40.61.9.005.0000 16A
- 1 ULN2803
- 1 connecteur DUPONT mâle 4 broches
- 1 connecteur DUPONT mâle 3 broches
- 8 bornier 10A
Comme dit plus haut (3.1.2. ULN2803), je réserverais ce genre de montage à des relais 12V ou 24V.
3.4.4.3. Exemple avec un MCP23008 et 4 relais bistables
Ce schéma reprend le principe de l'exemple N°1, avec des relais bistables.
3.4.4.4. Exemple avec un PCF8574 et 4 relais bistables
Ce schéma reprend le principe du précédent, avec un PCF8574.
3.4.4.5. Autre exemple avec un MCP23008 et 4 relais bistables
Ce schéma reprend le principe de l'exemple N°2, avec des relais bistables.
Comme dit plus haut (3.1.2. ULN2803), je réserverais ce genre de montage à des relais 12V ou 24V.
3.4.4.6. Autre exemple avec un PCF8574 et 4 relais bistables
On peut réaliser le même module que précédemment avec un expander I2C PCF8574 :
Comme précédemment, les remarques concernant la chute de tension de 1V sur la commande de bobine du relais s'appliquent.
Ce montage souffre d'un autre problème. Le PCF8574 est capable de fournir seulement 100µA en sortie (niveau haut). Comme l'ULN2803 a un gain très important (1000) il pourra néanmoins piloter le relais si celui-ci réclame un courant inférieur à 100mA. Pour certains relais 5V ce courant risque d'être insuffisant.
Si l'on désire piloter absolument des relais 5V ayant un courant de bobine important, il faudra intercaler driver de ligne (un 74HC240 par exemple) entre le PCF8574 et l'ULN2803 :
|
74HC240 |
L'encombrement des deux circuits (74HC240 + ULN2803) sera sensiblement le même que celui de 8 transistors avec leurs résistances et diodes, ce qui diminue l'intérêt d'avoir recours à un ULN2803.
Pour ma part, comme précédemment, je réserverais donc ce genre de montage à des relais 12V ou 24V.
3.4.3.7. Pilotage avec un ESP32
Passons à la pratique. Avec les montages précédent (PCF8574 ou MCP23008), sur un ESP32, les connexions seront les suivantes :
- 21 : SDA
- 22 : SCL
- GND
- VDD : 3.3V
- VCC : en fonction de la tension des relais (5V, 12V ou 24V)
Voici deux petits exemples de serveur ESP32 utilisant les librairies suivantes :
https://github.com/RobTillaart/PCF8574
https://github.com/adafruit/Adafruit-MCP23008-library
Les exemples sont situés dans la repository bitbucket (voir 7. Téléchargement). Voici les liens directs :
https://bitbucket.org/henri_bachetti/arduino-relay-modules/src/master/arduino/esp32-pcf8574/esp32-pcf8574.ino
https://bitbucket.org/henri_bachetti/arduino-relay-modules/src/master/arduino/esp32-mcp23008/esp32-mcp23008.ino
Une petite page HTML pourvue d'un bouton permet d'activer et désactiver le relais N°1 :
3.4.5. Autres exemples
Bien entendu, on pourrait imaginer différents montages sur le même principe :
- expander PCF8574 + ULN2803 + 8 relais classiques
- expander PCF8575 ou MCP23017 + 2 ULN2803 + 8 relais bistables
- expander PCF8575 ou MCP23017 + 2 ULN2803 + 16 relais classiques
- etc.
Un registre à décalage 74HC595 serait également utilisable mais il monopolisera 3 broches de l'ARDUINO, au lieu de 2 pour un expander I2C.
4. Sécurité
Lorsque l'on manipule du 230V on doit prendre des précautions, en
particulier ne pas toucher les parties haute tension (contacts, bornier
de sortie), ni le dessous du module.
Il est totalement déconseillé de fabriquer des cartes devant supporter du 230V à l'aide de plaquettes à pastilles. L'écartement entre pastilles est nettement insuffisant pour assurer une isolation correcte sous 230V. En conséquence un PCB s'impose.
5. Réalisation
Si les contacts du relais doivent être soumis à des courants importants, il est conseillé de surcharger les pistes de puissance à l'aide de soudure, ou de souder sur ces pistes un fil rigide de section appropriée, par exemple 1.5mm² pour 16A.
6. Photos
Voici des images des premiers modules réalisés :
|
Module relais bistable |
|
Module 2 relais bistables + L293D
|