Un Module à 8 ou 16 Mosfets
Cet article fait suite à celui-ci :
https://riton-duino.blogspot.com/2019/01/mosfets-de-puissance.html
Lorsque l'on veut alimenter une charge (un moteur, une pompe, une vanne, des rubans de LEDs, etc.) à l'aide d'une tension continue le premier réflexe du débutant est de penser à des relais.
Une carte à relais ressemble à un canon pour tuer une mouche quand on
veut commuter une charge 5V 12V ou 24V, sans parler de l'encombrement,
du bruit et de la fiabilité :
Cette carte a des dimensions imposantes : 180mm * 90mm * 20mm.
N'y a t'il pas d'autre alternative ? Heureusement, si.
Pour commuter une charge en basse tension continue un MOSFET est tout à fait à son aise.
1. Le relais
Le relais a de multiples inconvénients :
- le bruit
- la consommation
- la résistance de contact
1.1. La puissance de commande
La bobine d'un relais courant 5V du type SRD-05VDC-SL-C, qui équipe la majeure partie des cartes du commerce, consomme 70mA, soit 350mW sous 5V.
Lorsque l'on a besoin de 8 ou 16 relais cela devient vite prohibitif.
1.2. La résistance de contact
La résistance de contact de ces relais est de 100mΩ, ce qui implique que pour une dizaine d'ampères qui le traversent, la dissipation thermique sera importante :
P = R * I² = 0.1 * 10² = 10W
10W est une puissance énorme au vu de la taille du relais et de sa capacité à dissiper cette puissance, difficile à dissiper d'ailleurs à travers un boîtier plastique.
L'élévation de température peut occasionner un blocage du relais.
On a souvent des retours négatifs sur la fiabilité de ces relais lorsqu'ils sont utilisés à leurs limites.
La première alternative qui vient à l'esprit est le relais statique (solid state) :
 |
Module relais SSR 2A
|
 |
Module 8 relais SSR 2A |
 |
Relais SSR 10A
|
 |
Relais SSR 25A avec dissipateur
|
Si l'on a besoin de à 8 ou 16 relais pour un courant de 10A, cette solution occupe une place énorme et le prix sera conséquent.
2. Le MOSFET
2.1. La puissance de commande
La puissance nécessaire pour commander un MOSFET est tout simplement nulle. Cela élimine d'office toute consommation du côté commande.
2.2. La résistance à l'état passant
On trouve couramment des MOSFETs ayant une résistance interne en mode passant (RDSon) de quelques milliohms.
Le très courant IRLZ44N a une résistance de 25mΩ. Quant à l'excellent IRLB3034 sa résistance est de seulement 2mΩ.
Il va sans dire que la dissipation d'un tel transistor sera ridicule à 10A :
P = R * I² = 0.001 * 10² = 0.2W
Il ne nécessitera pas le moindre dissipateur.
2.3. La tension de commande
Il est impératif, lorsque l'on désire commander un MOSFET à l'aide d'une tension de 5V, de choisir un MOSFET "Logic Level", c'est à dire commutable à l'aide d'une tension de grille faible.
Ce critère est encore plus important si la tension de commande est de 3.3V.
Cet article présente une liste de MOSFETs utilisables dans le monde ARDUINO ou ESP8266, ESP32, etc. :
https://riton-duino.blogspot.com/2019/01/mosfets-de-puissance.html
Les MOSFETs "Logic Level" sont indiqués en vert.
Avec un MOSFET il est facile de contrôler la vitesse d'un moteur ou la luminosité d'un ruban de LEDs avec une sortie PWM d'un microcontrôleur, ce qui serait impossible avec un relais.
3. La disponibilité
S'il est facile de trouver des modules relais de toutes tailles, il n'en va pas de même quand il s'agit de modules à MOSFETs.
Tout d'abord un petit mot à propos des module équipés d'IRF520, IRF530 ou IRF540 : ils sont tout bonnement inutilisables avec une tension de commande de 5V si le courant à commuter est important. A éviter absolument.
Seulement quelques modèles "Logic Level" existent sur le marché :
 |
IRLR7843
|
 |
AOD4184 |
Ci-dessous quelques modules personnels :
 |
IRLZ44N
|
 |
AOI403 |
A ma connaissance aucun module à MOSFETs multiples n'existe.
Alors que faire ? Do It Yourself !
La carte que je vais présenter est équipée de 16 MOSFETs de puissance moyenne AO3400 (5A maximum).
On pourra facilement la personnaliser :
- utiliser des MOSFETs plus puissants
- utiliser des MOSFETs en boîtier traversant (TO220 ou IPAK)
- etc.
Le schéma est réalisé avec KICAD.
Pour récupérer le projet voir plus bas : 7. Téléchargements.
L'AO3400 est un MOSFET canal N supportant 30V maxi
et 5.6A. Sa faible tension VGSth de 1.45V maxi permet de le commander
même avec un processeur 3.3V, un ESP8266 ou un ESP32 par exemple.
La carte est équipée d'un connecteur DUPONT 17 broches GND + 16 entrées.
Un connecteur DUPONT 32 broches est utilisé pour les 16 sorties.
Un connecteur 2 broches permet d'alimenter en 5V, 12V, ou 24V.
Cette
carte est prévue pour de la puissance moyenne : 1A par sortie et 3A au
total. Elle peut être utilisée par exemple pour piloter 16 rubans de
LEDs 5630 12V de petite taille, jusqu'à une soixantaine de LEDs, soit
1m de ruban.
Sur chaque canal on trouve un MOSFET canal N et deux résistances :
Le transistor est piloté par une sortie du microcontrôleur à travers une
résistance de 220Ω dont le but est de limiter le courant d'appel lors
de la montée du signal sur la grille, ceci afin de protéger la sortie du microcontrôleur. Une résistance de pull-down de 100KΩ
est câblée entre grille et source afin de ne pas laisser la grille en l'air
dans le cas où la sortie du microcontrôleur est en haute impédance, au
démarrage par exemple.
5. Pilotage
Piloter une carte carte à 8 canaux à l'aide de 8 sorties d'un ARDUINO, un ESP8266 ou un ESP32 est envisageable, bien que cela soit dommage de monopoliser autant de sorties pour si peu de choses.
A moins de disposer d'une carte ARDUINO MEGA une carte à 16 canaux pourra difficilement se passer d'un module expander :
 |
Module MCP23017 |
Ce module I2C dispose de 16 sorties. On le reliera au bus I2C de l'ARDUINO et on pourra donc piloter 16 canaux avec simplement 2 sorties :
- ARDUINO : A4 et A5
- ESP8266 : GPIO4 et GPIO5
- ESP32 : GPIO21 et GPIO22
Il existe d'autres versions :
- MCP23008 : 8 sorties
- PCF8577 : 8 sorties
- PCF8575 : 16 sorties
- SX1509 : 16 sorties PWM
D'autres choix sont proposés ici :
Les extensions de GPIOs de l'ARDUINO
Bien entendu il existe des librairies pour piloter ces modules :
- MCP23008 : https://github.com/adafruit/Adafruit-MCP23008-library.git
- MCP23SXX : https://github.com/sumotoy/gpio_MCP23SXX
- MCP23017 : https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library.git
- MCP23S17 : https://github.com/n0mjs710/MCP23S17.git
- PCF857X : https://github.com/skywodd/pcf8574_arduino_library
- PCF8574 : https://github.com/RobTillaart/PCF8574
La plupart sont installables depuis le gestionnaire de bibliothèques de l'IDE ARDUINO.
Ici se trouve un article récent traitant du sujet :
Piloter des Relais ou des MOSFEts à l'aide d'un Module MCP23008 ou MCP23017
6. La charge inductive
Comme pour le pilotage d'un relais, si l'on veut piloter un moteur continu, ou une électrovanne, en fait toute charge inductive, il faut penser à mettre en place une diode de roue libre en parallèle sur la charge :
La diode protège le transistor des surtensions provoquées par le solénoïde lorsque celui-ci est coupé.
7. Photos
Tous les composants sont des modèles CMS.
La carte a des dimensions réduites : 100mm x 37mm, le quart de la surface d'un module à 16 relais. Chez JLCPCB on pourra commander 5 PCB de 100mm x 100mm pour 9€. Chaque PCB peut contenir 2 modules. Chaque module revient donc à 0.90€.
Le prix de revient de cette carte est ridicule :
- un lot de 50 AO3400 à 1.30€ : 0.42€ les 16 pièces
- 2 jeux de 100 résistances CMS à 0.50€ pièce : 0.32€ les 32 pièces
- 2 connecteurs DUPONT 40 broches (à recouper) : 0.25€
- le PCB : 0.90€
Au total chaque carte revient à 1.90€. En comparaison un module 16 relais coûte 9€.
Les connecteurs sont coudés, ce qui permet
de les souder sur ce PCB maison simple face. Dans le cas d'un PCB double
face à trous métallisés on pourra utiliser des connecteurs droits.
Cet autre modèle développé précédemment utilisait 8 MOSFETs IRLZ44NS et des résistances traversantes :
Mis à part le nombre et le type de MOSFETs utilisés le schéma électronique est strictement identique au précédent.
Elle est équipée d'un connecteur DUPONT 9 broches GND + 8 entrées. Elle est également équipée de borniers :
- bornier 16A d'alimentation de puissance à gauche (maxi 55V pour l'IRLZ44N)
- 8 borniers 7A pour 8 charges
Son prix de revient :
- un lot de 10 IRLZ44N à 1.80€ : 1.44€ les 8 pièces
- 2 jeux de 100 résistances 1/4W à 1.50€ pièce : 0.24€ les 16 pièces
- 1 connecteurs DUPONT 40 broches (à recouper) : 0.12€
- un lot de 30 borniers à 5€ : 1.50€ les 9 pièces
- plaquette à pastilles 8x12 : 1€
Au total chaque carte revient à 4,30€. En comparaison un module 8 relais coûte 6€.
Le câblage de puissance de cette carte est réalisé avec du fil rigide :
- liaisons entre borne d'entrée - et sources des MOSFETs (1.5mm²)
- liaisons entre borne d'entrée + et bornes de sortie + (1.5mm²)
- liaisons entre bornes de sortie - et drains des MOSFETs (0.5mm²)
Le câblage entre entrées et résistances de grille est fait en fil à wrapper.
Elle
peut fournir environ 5A par sortie et 16A au total. On pourrait admettre plus d'ampérage en câblant à l'aide de fil de 2.5mm² et en utilisant d'autres borniers
supportant un ampérage plus élevé.
Comme on le voit, même avec une plaquette à pastilles il est parfaitement possible de construire un module à MOSFETs digne de ce nom.
8. Téléchargement
Le projet est disponible ici :