Arduino Nano ESP32 - Module MOSFET

Dans ce guide, nous allons apprendre à utiliser un module MOSFET avec l'Arduino Nano ESP32 pour piloter une charge 12V. Les broches du Nano ESP32 ne donnent que 3,3V et un très faible courant, donc elles ne peuvent pas alimenter seules une bande LED ou un ventilateur 12V. Le module MOSFET se place au milieu et fait le gros du travail. En détail, nous allons apprendre :

Arduino Nano ESP32 et module MOSFET AOD4184, LR7843 ou FR120N

Quand cela fonctionne, vous pourrez ensuite ajouter le WiFi au même programme et régler la puissance de votre bande ou de votre ventilateur depuis un téléphone ou une page web.

1×Arduino Nano ESP32
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Optionnel: Connecteur d'alimentation DC
1×MOSFET Module (AOD4184, LR7843 or FR120N)
1×12V Bande LED
1×Alternativement: 12V DC Ventilateur de refroidissement
1×Adaptateur secteur 12V
1×DC Power Jack (for the 12V load)
1×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour Arduino Nano
1×Recommandé: Carte d'extension breakout pour Arduino Nano
1×Recommandé: Répartiteur d'alimentation pour Arduino Nano ESP32

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module MOSFET

Imaginez le module MOSFET comme un interrupteur électronique sans pièce mobile. Le Nano ESP32 envoie un petit signal de 3,3V, et le module ouvre ou ferme le passage d'un courant continu bien plus fort. Il fonctionne avec les bandes LED 12V, les moteurs DC, les ventilateurs, les pompes, les électrovannes et les éléments chauffants.

Ce guide couvre trois modules : AOD4184 (aussi vendu sous le nom D4184), LR7843 et FR120N. Ils ont la même conception de carte. La taille, les broches, le câblage et le code sont identiques. Seule la puce MOSFET sur la carte est différente.

Pourquoi choisir un module MOSFET plutôt qu'un Arduino Nano ESP32 - Relais. ? Un relais fait « clic » et s'use avec le temps, et il ne sait faire que MARCHE ou ARRÊT. Le module MOSFET est silencieux, très rapide et dure longtemps. Il accepte aussi le PWM, donc vous pouvez atténuer une bande LED ou ralentir un ventilateur. Une seule limite : il est réservé aux charges en courant continu. Ne l'utilisez jamais avec le secteur AC.

AOD4184 LR7843 FR120N
MOSFET AOD4184A (canal N) IRLR7843 (canal N) IRFR120N (canal N)
Tension de charge max (valeur du MOSFET) 40V DC 30V DC 100V DC
Courant max (valeur du MOSFET) 50A 161A 9,4A
Résistance à l'état passant RDS(on) environ 7 mΩ environ 3,3 mΩ environ 210 mΩ
Courant pratique sans dissipateur environ 10–15A environ 15A environ 2A
Signal de commande logique 3,3V / 5V, actif à l'état HAUT logique 3,3V / 5V, actif à l'état HAUT logique 3,3V / 5V, actif à l'état HAUT
Isolation optocoupleur PC817 optocoupleur PC817 optocoupleur PC817
PWM oui, rester ≤ ~1 kHz oui, rester ≤ ~1 kHz oui, rester ≤ ~1 kHz
Type de charge DC uniquement DC uniquement DC uniquement

Lequel faut-il acheter ?

  • LR7843 : la résistance la plus basse, donc il reste le plus froid à fort courant. Un bon choix pour les grosses charges 12V ou 24V, comme les longues bandes LED ou les gros moteurs. Max 30V.
  • AOD4184 : un bon module polyvalent. Il supporte jusqu'à 40V avec un fort courant, donc il convient aux charges 12V, 24V et 36V.
  • FR120N : il accepte la tension la plus haute (jusqu'à 100V), mais sa résistance est aussi la plus haute. Gardez-le pour de petits courants, environ 2A sans dissipateur. Bon pour les petites charges 24V ou 48V.

Les valeurs de 50A et 161A sont des limites de la puce elle-même, pas de la petite carte. En usage réel, la chaleur est la limite. Après quelques minutes de fonctionnement, touchez le module. S'il est trop chaud, réduisez la charge ou ajoutez un dissipateur thermique.

Comment ça marche

Le côté entrée a un optocoupleur PC817, et le signal de la broche D9 suit ce chemin : broche PWM → petite résistance → LED à l'intérieur du PC817 → lumière → phototransistor à l'intérieur du PC817 → grille du MOSFET. Une résistance sur la grille la tire à 0V quand le PC817 est éteint. Seule la lumière traverse le PC817, donc le côté du Nano ESP32 et le côté 12V ne se touchent jamais. La masse du signal et la masse de la charge ne sont pas reliées sur le module.

Le MOSFET est un interrupteur côté bas à canal N. Il est placé entre la borne LOAD et la borne −, donc il commute le fil négatif de la charge, pas le positif. La charge elle-même est connectée entre + et LOAD.

Voici ce que fait le module avec chaque type de signal venant de D9.

HAUT (3,3V) sur la broche PWM → charge à pleine puissance

  • Quelques mA arrivent dans la LED à l'intérieur du PC817, et elle s'allume (vous ne la voyez pas, elle est dans la puce).
  • Le phototransistor conduit et envoie à la grille du MOSFET environ la moitié de l'alimentation de la charge. Avec un adaptateur 12V, cela fait environ 6V.
  • Le MOSFET est alors complètement passant, comme un interrupteur fermé. Sa résistance est minuscule : quelques mΩ (AOD4184, LR7843) ou environ 0,2Ω (FR120N).
  • Le courant va du + de l'adaptateur à la borne +, traverse la charge, entre dans LOAD, traverse le MOSFET, sort par −, et revient au − de l'adaptateur.
  • La charge reçoit presque les 12V complets. La broche 3,3V suffit pour cela, car la LED du PC817 n'a besoin que d'un petit courant. Aucun convertisseur de niveau n'est nécessaire.
  • Code : analogWrite(MOSFET_PIN, 255), ou 100% de rapport cyclique.

BAS (0V) sur la broche PWM → charge éteinte

  • Pas de courant, donc la LED à l'intérieur du PC817 reste éteinte.
  • Le phototransistor est bloqué. La résistance de grille maintient la grille à 0V.
  • Le MOSFET est bloqué, comme un interrupteur ouvert entre LOAD et −.
  • Le fil négatif de la charge est coupé de l'adaptateur, donc aucun courant ne circule et la charge reçoit 0V.
  • Code : analogWrite(MOSFET_PIN, 0), ou 0% de rapport cyclique.

Signal PWM sur la broche PWM → charge à puissance partielle

  • D9 passe de BAS à HAUT très vite. La fonction analogWrite() du Nano ESP32 utilise 1 kHz par défaut, ce qui veut dire 1000 fois par seconde.
  • Le MOSFET suit chaque changement : passant pendant chaque partie HAUT, bloqué pendant chaque partie BAS. La charge reçoit des impulsions de 12V.
  • Le rapport cyclique est la part du temps où la broche est à l'état HAUT. C'est la valeur de analogWrite() divisée par 255. La tension moyenne et la puissance moyenne sont égales au rapport cyclique multiplié par la valeur maximale. Avec une alimentation 12V :
    • AnalogWrite 64 (25%) → environ 3V en moyenne → environ un quart de la puissance
    • AnalogWrite 128 (50%) → environ 6V en moyenne → environ la moitié de la puissance
    • AnalogWrite 191 (75%) → environ 9V en moyenne → environ trois quarts de la puissance
  • Une bande LED paraît moins lumineuse, car elle clignote trop vite pour vos yeux. Un ventilateur, un moteur ou une pompe tourne plus lentement, car sa partie tournante lisse les impulsions. Un ventilateur peut ne pas démarrer avec un faible rapport cyclique.
  • Le PC817 est lent, donc gardez la fréquence entre environ 500 Hz et 1 kHz. La valeur par défaut de 1 kHz convient. À une fréquence bien plus haute, le MOSFET ne commute pas complètement, les impulsions deviennent confuses et le MOSFET chauffe.
  • N'utilisez pas le PWM sur une serrure ou une vanne à solénoïde. Utilisez seulement HAUT et BAS pour elles.

Quelques règles à retenir :

  • Comme la grille ne reçoit qu'environ la moitié de l'alimentation de la charge, l'alimentation de la charge doit être d'au moins 6V environ. 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). Pour un moteur, une pompe, un solénoïde ou une bobine de relais, ajoutez une diode externe (par exemple 1N5819 ou 1N4007) en parallèle sur la charge. Connectez la cathode (le côté avec la bande) au + de la charge et l'anode au − de la charge.

Brochage

Brochage du module MOSFET AOD4184, LR7843 et FR120N

Le module a deux groupes de broches. Un connecteur à 2 broches (2,54mm, compatible avec une breadboard) se trouve du côté commande, et des borniers à vis se trouvent du côté puissance.

Côté commande :

  • Broche PWM : à connecter à une broche GPIO de l'Arduino Nano ESP32 (le signal de commande)
  • Broche GND : à connecter à GND de l'Arduino Nano ESP32 (masse du signal)

Côté puissance :

  • Broche + : à connecter au positif de l'alimentation de la charge (par exemple 12V) ET au fil positif de la charge. Les deux fils partagent cette seule borne.
  • Broche LOAD : à connecter au fil négatif de la charge (c'est le côté commuté, il va au drain du MOSFET)
  • Broche − : à connecter au 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.

Diagramme de câblage

Le Nano ESP32 envoie seulement un signal depuis la broche D9 (plus GND) vers les broches PWM et GND du module, tandis que l'adaptateur 12V alimente la charge par les borniers à vis, donc les 12V n'approchent jamais les broches de la carte.

Diagramme de câblage de l'Arduino Nano ESP32 avec le module MOSFET AOD4184, LR7843 ou FR120N

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Si vous n'utilisez pas de plaque d'essai, câblez-le ainsi :

Diagramme de câblage de l'Arduino Nano ESP32 avec le module MOSFET AOD4184, LR7843 ou FR120N (sans plaque d'essai)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Les fils des modules et les fils épais tiennent souvent mal dans les connecteurs femelles. Pour cela, montez la carte Arduino Nano ESP32 sur une Carte d'extension à bornier à vis pour Arduino Nano. Chaque fil va au bornier à vis de la même broche, comme sur l'image ci-dessous.

Diagramme de câblage de l'Arduino Nano ESP32 avec le module MOSFET AOD4184, LR7843 ou FR120N (Screw Terminal)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Exemples : câbler différentes charges

Vous voulez piloter autre chose qu'une bande LED ? Gardez les fils D9 et GND du Nano ESP32 tels quels. Seul le côté puissance change, et le schéma est toujours le même :

  • + de l'adaptateur 12V à la borne +, et − de l'adaptateur à la borne −.
  • Fil + de la charge à la même borne +, et fil − de la charge à la borne LOAD.

Avant de commencer :

  • Adaptez l'adaptateur à la charge. Une charge 12V demande un adaptateur 12V. Le module a besoin d'au moins 6V pour fonctionner.
  • Adaptez le module au courant. Le FR120N convient seulement aux petites charges (environ 2A sans dissipateur). Pour les charges plus grosses, utilisez l'AOD4184 ou le LR7843.
  • Vous pouvez téléverser le même code pour toutes les charges. Pour un solénoïde, utilisez simplement MARCHE complète et ARRÊT complet (HAUT et BAS) à la place de la variation progressive.

La diode de roue libre de la partie « Comment ça marche » est nécessaire pour chaque charge ci-dessous qui contient une bobine : le moteur, le ventilateur, la pompe et les deux solénoïdes. Placez-la en parallèle sur les deux fils de la charge, bande côté +.

Exemple avec un moteur DC 12V

Exemple Arduino Nano ESP32 : module MOSFET qui pilote un moteur DC 12V

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Si vous n'utilisez pas de plaque d'essai, câblez-le ainsi :

Exemple Arduino Nano ESP32 : module MOSFET qui pilote un moteur DC 12V (sans plaque d'essai)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Le + du moteur va à +, le − du moteur va à LOAD. Ajoutez la diode (1N5819 ou 1N4007) : le côté avec la bande (cathode) au + du moteur, l'autre côté (anode) au − du moteur. Le PWM change la vitesse.

Le module ne peut faire tourner le moteur que dans un seul sens. Si vous avez besoin de marche avant et arrière, utilisez plutôt un pilote de moteur comme le L298N. Le guide Arduino Nano ESP32 - Moteur à courant continu. montre comment faire.

Exemple avec un ventilateur 12V

Module MOSFET câblé à un ventilateur 12V

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Le schéma ci-dessous montre les mêmes connexions sans plaque d'essai :

Module MOSFET câblé à un ventilateur 12V (sans plaque d'essai)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Le fil rouge (+) va à +, le fil noir (−) va à LOAD. Si votre ventilateur a un fil jaune, c'est le signal de vitesse. Laissez-le libre. La diode est aussi une bonne idée ici, car elle coûte peu et elle est sûre. Le PWM règle la vitesse du ventilateur, mais un ventilateur peut ne pas démarrer avec un faible rapport cyclique, donc commencez à environ 30% ou plus.

Exemple avec une bande LED 12V

Câblage d'une bande LED 12V monochrome au module MOSFET

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Pas de plaque d'essai ? Le même circuit peut être câblé sans, comme ci-dessous :

Câblage d'une bande LED 12V monochrome au module MOSFET (sans plaque d'essai)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

C'est la même charge que dans le diagramme principal. Le + de la bande (souvent marqué 12V) va à +, le − de la bande va à LOAD. Aucune diode n'est nécessaire, car une bande LED n'a pas de bobine. Le PWM règle la luminosité. Une longue bande consomme plus de courant, donc vérifiez d'abord son courant et choisissez le module en conséquence. Note : cela fonctionne pour une bande d'une seule couleur, pas pour les bandes RGB ou adressables.

Exemple avec une pompe à eau 12V

Pompe à eau 12V connectée au module MOSFET

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Si vous n'utilisez pas de plaque d'essai, câblez-le ainsi :

Pompe à eau 12V connectée au module MOSFET (sans plaque d'essai)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Le + de la pompe à +, le − de la pompe à LOAD, et ajoutez la diode. Le PWM règle le débit d'eau. Ne laissez pas la pompe tourner sans eau.

Exemple avec une serrure à solénoïde 12V

Exemple de module MOSFET avec une serrure à solénoïde 12V

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Voici le même câblage sans plaque d'essai :

Exemple de module MOSFET avec une serrure à solénoïde 12V (sans plaque d'essai)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Les fils de connexion peuvent se débrancher quand vous déplacez le projet. Branchez simplement la carte Arduino Nano ESP32 sur une Carte d'extension à bornier à vis pour Arduino Nano. Voir le schéma ci-dessous pour la version avec borniers à vis.

Exemple de module MOSFET avec une serrure à solénoïde 12V (Screw Terminal)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Câblez-la comme la pompe, avec la diode. Commutez-la seulement en MARCHE complète ou en ARRÊT complet (100% ou 0%). Pas de variation PWM. La serrure chauffe si vous la laissez en MARCHE, donc mettez-la en MARCHE un court instant pour déverrouiller, puis en ARRÊT.

Exemple avec une électrovanne 12V

Électrovanne 12V normalement fermée câblée au module MOSFET

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Vous pouvez aussi monter ce circuit sans plaque d'essai. Voici le même câblage :

Électrovanne 12V normalement fermée câblée au module MOSFET (sans plaque d'essai)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Même câblage, même diode. C'est une vanne normalement fermée : MARCHE l'ouvre, ARRÊT la ferme. Utilisez seulement MARCHE et ARRÊT, pas le PWM.

Comment programmer le module MOSFET

Aucune bibliothèque n'est nécessaire. Le Nano ESP32 utilise la fonction intégrée analogWrite().

  • Définissez la broche de l'Arduino Nano ESP32 qui est connectée à la broche PWM du module :
const int MOSFET_PIN = D9;
  • Configurez la broche en sortie et démarrez avec la charge éteinte :
pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0);
  • Allumez complètement la charge :
analogWrite(MOSFET_PIN, 255);
  • Éteignez la charge :
analogWrite(MOSFET_PIN, 0);
  • Réglez la charge à un niveau de puissance en pourcentage (0 à 100) :
int duty = map(percent, 0, 100, 0, 255); analogWrite(MOSFET_PIN, duty);

Si vous avez seulement besoin de MARCHE et ARRÊT, digitalWrite(MOSFET_PIN, HIGH) et digitalWrite(MOSFET_PIN, LOW) fonctionnent aussi.

Code Arduino Nano ESP32 - Module MOSFET

Le code ci-dessous allume la charge pendant 2 secondes et l'éteint pendant 2 secondes. Ensuite, il augmente la puissance de 10% à 100% par pas de 10%, toutes les 0,5 secondes. Après cela, il baisse la puissance de 90% jusqu'à 0%, attend 1 seconde, et recommence.

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-nano-esp32/arduino-nano-esp32-mosfet-module */ const int MOSFET_PIN = D9; // Arduino Nano ESP32 pin connected to the PWM pin of the MOSFET module void setup() { Serial.begin(9600); pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0); // start with the load OFF } void setLoad(int percent) { int duty = map(percent, 0, 100, 0, 255); // convert 0-100% to 0-255 analogWrite(MOSFET_PIN, duty); Serial.print("Load power: "); Serial.print(percent); Serial.println("%"); } void loop() { // turn the load fully ON, then fully OFF Serial.println("Load: ON"); setLoad(100); delay(2000); Serial.println("Load: OFF"); setLoad(0); delay(2000); // increase the power step by step (PWM) for (int percent = 10; percent <= 100; percent += 10) { setLoad(percent); delay(500); } // decrease the power step by step (PWM) for (int percent = 90; percent >= 0; percent -= 10) { setLoad(percent); delay(500); } delay(1000); }

Étapes rapides

Suivez ces instructions étape par étape :

  • Si c'est la première fois que vous utilisez l'Arduino Nano ESP32, consultez Installation du logiciel Arduino Nano ESP32..
  • Câblez les composants selon le diagramme fourni. Laissez l'adaptateur 12V débranché pour le moment.
  • Connectez l'Arduino Nano ESP32 à votre ordinateur avec un câble USB Type-C.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino Nano ESP32 appropriée (par exemple, Arduino Nano ESP32) 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 à l'Arduino Nano ESP32.
  • Branchez l'adaptateur secteur 12V.
  • Ouvrez le Moniteur série et réglez la vitesse à 9600 bauds.
  • Regardez la bande LED : pleine luminosité pendant 2 secondes, éteinte pendant 2 secondes, puis elle devient lentement plus lumineuse et lentement moins lumineuse.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Load: ON Load power: 100% Load: OFF Load power: 0% Load power: 10% Load power: 20% Load power: 30% Load power: 40% Load power: 50% Load power: 60% Load power: 70% Load power: 80% Load power: 90% Load power: 100% Load power: 90% Load power: 80% Load power: 70% Load power: 60% Load power: 50% Load power: 40% Load power: 30% Load power: 20% Load power: 10% Load power: 0%
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Si vous avez connecté un ventilateur 12V, vous l'entendrez tourner à pleine vitesse, s'arrêter, puis accélérer et ralentir selon le même schéma.

Vidéo

Commentaires

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !