Arduino UNO R4 - Module MOSFET
Dans ce tutoriel, nous allons apprendre à utiliser un module MOSFET comme interrupteur de puissance avec l'Arduino UNO R4. En détail, nous allons apprendre :
- Ce qu'il y a dans les modules MOSFET AOD4184, LR7843 et FR120N, et comment choisir le bon.
- Comment connecter le module MOSFET, un adaptateur secteur 12V et une bande LED 12V à l'Arduino UNO R4.
- Comment programmer l'Arduino UNO R4 pour allumer et éteindre la charge, et pour changer sa puissance pas à pas avec le PWM.

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables STEM V4 IoT (Arduino inclus) | |
| 1 | × | Kit de Démarrage DIYables STEM V4B IoT (Arduino inclus) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos du Module MOSFET
Une broche de l'Arduino UNO R4 ne donne que 5V et un très faible courant. C'est suffisant pour une petite LED, mais pas pour une bande LED 12V, un ventilateur ou une pompe. Un module MOSFET se place entre les deux : l'Arduino UNO R4 envoie un signal faible, et le module ouvre ou ferme un chemin 12V puissant pour la charge.
Il existe trois modules populaires : AOD4184 (parfois vendu sous le nom D4184), LR7843 et FR120N. Les cartes se ressemblent. Elles ont la même taille, les mêmes broches et le même câblage, et elles utilisent le même code. Seule la puce MOSFET placée dessus change.
Pourquoi utiliser un module MOSFET et non un relais ?
- Il est silencieux. Rien ne bouge et rien ne claque.
- Il commute très vite, donc il peut faire du PWM. Cela signifie que vous pouvez faire varier l'intensité d'une lumière ou ralentir un ventilateur. Un relais ne peut faire que tout allumé ou tout éteint.
- Il n'a pas de contacts qui s'usent, donc il dure longtemps.
- La limite : il fonctionne uniquement avec des charges en courant continu. Ne l'utilisez jamais avec le courant alternatif du secteur. Pour les appareils en courant alternatif, consultez le tutoriel Arduino UNO R4 - Relais..
| AOD4184 | LR7843 | FR120N | |
|---|---|---|---|
| Puce MOSFET | AOD4184A (canal N) | IRLR7843 (canal N) | IRFR120N (canal N) |
| Tension de charge max (valeur de la puce) | 40V DC | 30V DC | 100V DC |
| Courant max (valeur de la puce) | 50A | 161A | 9.4A |
| Résistance à l'état passant RDS(on) | environ 7 mΩ | environ 3.3 mΩ | environ 210 mΩ |
| Courant réel sans dissipateur | environ 10–15A | environ 15A | environ 2A |
| Signal de commande | 3.3V / 5V, actif à l'état HAUT | 3.3V / 5V, actif à l'état HAUT | 3.3V / 5V, actif à l'état HAUT |
| Isolation | optocoupleur PC817 | optocoupleur PC817 | optocoupleur PC817 |
| PWM | oui, jusqu'à environ 1 kHz | oui, jusqu'à environ 1 kHz | oui, jusqu'à environ 1 kHz |
| Type de charge | DC uniquement | DC uniquement | DC uniquement |
Comment choisir :
- LR7843 : il a la plus faible résistance, donc il reste le plus frais quand un courant important passe. Choisissez-le pour les charges 12V ou 24V puissantes, comme une longue bande LED ou un gros moteur. Sa limite est de 30V.
- AOD4184 : un bon choix pour la plupart des projets. Il supporte jusqu'à 40V et un courant fort, donc les charges 12V, 24V et 36V conviennent toutes.
- FR120N : il accepte la tension la plus élevée (jusqu'à 100V), mais sa résistance est élevée. Gardez un courant faible, environ 2A sans dissipateur. Il convient aux petites charges 24V ou 48V.
※ Note:
Les grands nombres comme 50A ou 161A sont les limites de la puce seule. Le petit module ne peut pas supporter autant, car la chaleur est la vraie limite. Après quelques minutes de fonctionnement, touchez le MOSFET. S'il est trop chaud pour être touché, baissez le courant ou ajoutez un dissipateur thermique.
Comment Ça Marche
Le signal de l'Arduino UNO R4 ne touche pas directement le MOSFET. Il passe d'abord par un optocoupleur PC817 : broche 9 → broche PWM → petite résistance → LED à l'intérieur du PC817 → lumière → phototransistor à l'intérieur du PC817 → grille du MOSFET. Le MOSFET est de type canal N et se place entre les bornes LOAD et − (un interrupteur côté bas). Votre appareil se place entre + et LOAD.
Alors, que se passe-t-il pour chaque signal sur la broche 9 ? Regardons les trois cas.
Broche 9 à l'état BAS (0V) : l'appareil est éteint
- Aucun courant n'entre dans la LED à l'intérieur de l'optocoupleur. Elle reste éteinte.
- Le phototransistor reste bloqué, donc une résistance sur la grille maintient la grille du MOSFET à 0V.
- Le MOSFET est BLOQUÉ. Il se comporte comme un interrupteur ouvert entre LOAD et −.
- Le fil − de l'appareil n'a aucun chemin vers la masse. Aucun courant ne circule, et l'appareil reçoit 0V.
Dans le code : digitalWrite(MOSFET_PIN, LOW) ou analogWrite(MOSFET_PIN, 0).
Broche 9 à l'état HAUT (5V) : l'appareil reçoit toute la puissance
- Quelques mA entrent dans la LED à l'intérieur de l'optocoupleur, et elle s'allume. Elle est dans la puce, donc vous ne pouvez pas la voir.
- Le phototransistor devient passant. Maintenant, la grille du MOSFET reçoit environ la moitié de l'alimentation de la charge, soit environ 6V avec un adaptateur 12V.
- Le MOSFET devient complètement PASSANT. Il se comporte comme un interrupteur fermé avec une très faible résistance : quelques mΩ pour l'AOD4184 ou le LR7843, environ 0,2Ω pour le FR120N.
- Le courant circule en boucle : adaptateur + → borne + → appareil → borne LOAD → MOSFET → borne − → adaptateur −.
- L'appareil reçoit presque les 12V complets et fonctionne à pleine puissance.
Dans le code : digitalWrite(MOSFET_PIN, HIGH) ou analogWrite(MOSFET_PIN, 255). Une carte 3.3V peut faire le même travail, car la LED de l'optocoupleur n'a besoin que d'un faible courant.
Broche 9 envoie du PWM : l'appareil reçoit une partie de la puissance
- La broche 9 passe entre BAS et HAUT très vite, environ 500 à 1000 fois par seconde (500 Hz à 1 kHz).
- Le MOSFET la copie : passant à chaque partie HAUTE, bloqué à chaque partie BASSE.
- L'appareil reçoit de courtes impulsions de 12V. Le rapport cyclique est la part du temps pendant laquelle le signal est à l'état HAUT. Tension moyenne et puissance moyenne = rapport cyclique × valeur maximale.
Avec analogWrite(MOSFET_PIN, value), la valeur va de 0 à 255, et le rapport cyclique est value / 255. Quelques exemples avec un adaptateur 12V :
- analogWrite(MOSFET_PIN, 0) : 0 %, toujours éteint, 0V en moyenne.
- analogWrite(MOSFET_PIN, 64) : environ 25 %, allumé un quart du temps, environ 3V en moyenne, environ un quart de la puissance.
- analogWrite(MOSFET_PIN, 128) : environ 50 %, allumé la moitié du temps, environ 6V en moyenne, environ la moitié de la puissance.
- analogWrite(MOSFET_PIN, 191) : environ 75 %, allumé les trois quarts du temps, environ 9V en moyenne.
- analogWrite(MOSFET_PIN, 255) : 100 %, toujours allumé, 12V, pleine puissance.
Ce que vous voyez : une bande LED devient moins lumineuse (elle scintille, mais trop vite pour vos yeux). Un ventilateur, un moteur ou une pompe tourne plus lentement, car sa partie tournante lisse les impulsions.
Pourquoi la fréquence compte : le PC817 est un composant lent. Si le PWM est trop rapide, le MOSFET ne peut pas commuter complètement. L'appareil ne reçoit pas des impulsions propres, et le MOSFET chauffe. La fréquence par défaut de analogWrite() sur l'Arduino UNO R4 est déjà dans la plage sûre, donc vous n'avez rien à changer.
Autres Points
- L'optocoupleur isole le côté Arduino UNO R4 du côté 12V. La masse du signal et la masse de la charge ne sont pas reliées sur le module.
- La tension de grille vient de l'alimentation de la charge, donc cette alimentation doit être d'environ 6V ou plus. Une alimentation de charge de 5V ne fonctionnera pas bien. Si la charge consomme plus de quelques ampères, utilisez 9V ou plus.
- La carte n'a pas de diode de roue libre (flyback). Les moteurs, les pompes, les solénoïdes et les bobines de relais en ont besoin. Ajoutez une diode comme la 1N5819 ou la 1N4007 en parallèle avec la charge : le côté avec la bande (cathode) va au + de la charge, et l'autre côté (anode) va au − de la charge.
Brochage

Le côté commande est un connecteur à 2 broches (pas de 2.54mm) :
- Broche PWM : à connecter à une broche de l'Arduino UNO R4. Cette broche reçoit le signal MARCHE/ARRÊT ou PWM.
- Broche GND : à connecter à GND de l'Arduino UNO R4.
Le côté puissance a trois borniers à vis :
- Broche + : à connecter au fil positif de l'alimentation de la charge (par exemple, 12V) et au fil positif de la charge. Les deux fils partagent cette borne.
- Broche LOAD : à connecter au fil négatif de la charge. C'est le côté que le MOSFET commute.
- Broche − : à connecter au fil négatif (masse) de l'alimentation de la charge.
Les étiquettes peuvent être un peu différentes d'un lot à l'autre. Lisez toujours le texte imprimé sur votre propre carte.
Schéma de Câblage
L'Arduino UNO R4 pilote seulement les broches PWM et GND, tandis que l'adaptateur 12V alimente la charge par les borniers à vis.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| De | Vers |
|---|---|
| Broche 9 de l'Arduino UNO R4 | PWM du module MOSFET |
| GND de l'Arduino UNO R4 | GND du module MOSFET |
| Adaptateur 12V + (via la prise DC) | + du module MOSFET |
| Adaptateur 12V − (via la prise DC) | − du module MOSFET |
| Bande LED + | + du module MOSFET |
| Bande LED − | LOAD du module MOSFET |
Pour un projet durable, les borniers à vis tiennent mieux les fils que les fils de connexion. Un Screw Shield V2 ou un Proto Screw Terminal Block Shield règle ce problème. Branchez-le sur la carte Arduino UNO R4 et vissez les fils. Les broches ne changent pas. Branchez simplement chaque fil sur le bornier à vis correspondant :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
L'optocoupleur est déjà sur le module, donc il n'y a pas besoin d'ajouter un transistor ou une résistance. Cela rend le câblage ou la soudure plus facile. Ne connectez jamais les fils 12V à une broche de l'Arduino UNO R4.
Autres Appareils Que Vous Pouvez Connecter
Et si vous voulez commander un ventilateur, une pompe ou une serrure à la place de la bande LED ? Gardez la broche 9 et GND tels quels. Seul le côté des borniers à vis change. Voici les règles qui restent les mêmes pour chaque appareil :
- Adaptateur : + va à la borne +, − va à la borne −.
- Appareil : son fil + va aussi à la borne + (partagée avec le + de l'adaptateur), son fil − va à LOAD.
- Tension : adaptez l'adaptateur à l'appareil (appareil 12V, adaptateur 12V). Ne descendez jamais sous 6V.
- Courant : le FR120N convient seulement aux petits appareils (environ 2A sans dissipateur). Pour les plus gros, choisissez l'AOD4184 ou le LR7843.
- Diode : un appareil avec une bobine à l'intérieur (ventilateur, moteur, pompe, solénoïde) a besoin de la diode de roue libre 1N5819 ou 1N4007 de la partie Comment Ça Marche. La bande va au + de l'appareil, l'autre extrémité au − de l'appareil.
Vous n'avez pas besoin d'un nouveau code. Le code ci-dessus fonctionne pour tous. Le seul changement concerne les solénoïdes : utilisez la pleine puissance ou l'arrêt (100 % / 0 %), et sautez le fondu.
Exemple de Câblage : Ventilateur 12V

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
- Fil rouge vers +, fil noir vers LOAD.
- Vous avez un troisième fil jaune ? C'est le signal de vitesse. Laissez-le libre.
- Ajoutez la diode. Elle ne coûte presque rien et ne peut pas nuire.
- Le PWM change la vitesse. Commencez au-dessus d'environ 30 %, car beaucoup de ventilateurs ne tournent pas avec un rapport cyclique très faible.
Exemple de Câblage : Bande LED 12V

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
- + de la bande (souvent marqué 12V) vers +, − de la bande vers LOAD.
- Pas de diode ici. Une bande LED n'a pas de bobine.
- Le PWM change la luminosité.
- Les longues bandes consomment plus de courant. Vérifiez le courant de votre bande avant de choisir le module.
- Utilisez une bande monochrome. Les bandes RGB et adressables demandent un autre câblage.
Exemple de Câblage : Pompe à Eau 12V

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
- + de la pompe vers +, − de la pompe vers LOAD.
- Placez la diode en parallèle avec la pompe.
- Le PWM change le débit.
- Ne laissez pas la pompe tourner sans eau.
Exemple de Câblage : Moteur DC 12V

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
- + du moteur vers +, − du moteur vers LOAD.
- Placez la diode en parallèle avec le moteur : la bande du côté + du moteur.
- Le PWM change la vitesse.
- Le moteur tourne dans un seul sens. Besoin de l'inverser ? Utilisez un pilote de moteur comme le L298N. Consultez le tutoriel Arduino UNO R4 - moteur à courant continu..
Exemple de Câblage : Serrure à Solénoïde 12V

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Brancher des fils dans les connecteurs femelles est rapide, mais les fils peuvent glisser. Essayez un Screw Shield V2 ou un Proto Screw Terminal Block Shield : il se place sur la carte Arduino UNO R4 et chaque broche a son propre bornier à vis. Voici le montage avec le Screw Shield V2 :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
- + de la serrure vers +, − de la serrure vers LOAD.
- La diode est obligatoire.
- Marche ou arrêt complet uniquement. Pas de PWM.
- Ne la laissez pas allumée longtemps, sinon elle chauffe. Donnez-lui une courte impulsion pour la déverrouiller.
Exemple de Câblage : Électrovanne 12V

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Voir Comment alimenter l'Arduino UNO R4..
- + de la vanne vers +, − de la vanne vers LOAD.
- La diode est obligatoire ici aussi.
- C'est une vanne normalement fermée : MARCHE l'ouvre, ARRÊT la ferme.
- Commutez-la seulement en MARCHE ou en ARRÊT. N'utilisez pas de PWM.
Comment Programmer pour le Module MOSFET
Aucune bibliothèque n'est nécessaire. Le code utilise seulement des fonctions intégrées.
- Définissez la broche de l'Arduino UNO R4 qui est connectée à la broche PWM du module :
- Configurez la broche en sortie :
- Allumez la charge à fond ou éteignez-la complètement :
- Réglez un niveau de puissance en pourcentage. Convertissez d'abord 0–100 % en plage 0–255 :
Si vous avez seulement besoin de MARCHE et ARRÊT, digitalWrite(MOSFET_PIN, HIGH) et digitalWrite(MOSFET_PIN, LOW) fonctionnent aussi.
Code Arduino UNO R4 - Module MOSFET
Le code ci-dessous exécute un cycle en boucle :
- La charge est à pleine puissance pendant 2 secondes.
- La charge est éteinte pendant 2 secondes.
- La puissance monte de 10 % à 100 %, 10 % de plus toutes les 0,5 secondes.
- La puissance descend de 90 % à 0 % de la même façon.
- Le code attend 1 seconde, puis recommence.
Étapes Rapides
Suivez ces instructions étape par étape :
- Si c'est votre première utilisation de l'Arduino Uno R4 WiFi/Minima, consultez le tutoriel sur Arduino UNO R4 - Installation du logiciel..
- Câblez les composants selon le schéma fourni. Laissez l'adaptateur 12V débranché pour le moment.
- Connectez la carte Arduino UNO R4 à votre ordinateur à l'aide d'un câble USB.
- Lancez l'IDE Arduino sur votre ordinateur.
- Sélectionnez la carte Arduino UNO R4 appropriée (par exemple, Arduino UNO R4 WiFi ou Arduino UNO R4 Minima) et le port COM.
- Copiez le code ci-dessus et collez-le dans l'IDE Arduino.
- Cliquez sur le bouton Upload pour envoyer le code vers l'Arduino UNO R4.
- Branchez l'adaptateur secteur 12V.
- Ouvrez le moniteur série et réglez le débit en bauds sur 9600.
- Regardez la bande LED : elle est à pleine luminosité pendant 2 secondes, puis éteinte pendant 2 secondes. Ensuite, elle s'éclaire petit à petit, puis s'assombrit petit à petit. Avec un ventilateur, vous entendrez la vitesse monter et descendre.
Si la bande LED ne s'allume pas du tout, vérifiez d'abord l'alimentation 12V. Vérifiez ensuite que les fils PWM et GND vont à la broche 9 et à GND de l'Arduino UNO R4.
Pour en savoir plus sur la variation PWM, consultez le tutoriel Arduino UNO R4 - LED qui s'estompe..
Vidéo
Regardez ci-dessous le tutoriel vidéo étape par étape de ce projet.