Arduino Mega - Module MOSFET

Ce tutoriel vous explique comment utiliser l'Arduino Mega 2560 pour commuter et faire varier une charge 12V DC à l'aide d'un module MOSFET. La broche du Mega ne fournit que 5V et quelques milliampères, mais le module permet à ce petit signal de commander une charge puissante comme une bande LED, un ventilateur ou une pompe. En détail, nous allons apprendre :

Nous vous suggérons :

Arduino Mega et module MOSFET AOD4184, LR7843 ou FR120N

À Propos du Module MOSFET

Un module MOSFET est un interrupteur électronique pour l'alimentation DC. L'Arduino Mega lui envoie un signal logique, et le module ouvre ou ferme le chemin de puissance de la charge. Il n'a aucune pièce mobile : il ne fait pas de clic, il ne s'use pas et il peut commuter très vite. Comme il est rapide, il accepte un signal PWM. Cela signifie que l'Arduino Mega peut non seulement allumer et éteindre une bande LED 12V, mais aussi régler sa luminosité, ou la vitesse d'un ventilateur ou d'un moteur.

Ce tutoriel couvre trois modules : AOD4184 (aussi vendu sous le nom D4184), LR7843 et FR120N. Ils ont la même conception de carte, les mêmes broches, le même câblage et le même code. La seule différence est la puce MOSFET présente sur la carte.

AOD4184 LR7843 FR120N
MOSFET AOD4184A (canal N) IRLR7843 (canal N) IRFR120N (canal N)
Tension max de la charge (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 HIGH logique 3.3V / 5V, actif à l'état HIGH logique 3.3V / 5V, actif à l'état HIGH
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

Les grandes valeurs de courant (50A et 161A) sont les limites de la puce elle-même. La petite carte ne peut pas supporter autant. En pratique, la limite est la chaleur, alors utilisez la ligne « sans dissipateur » comme guide.

Brochage du Module MOSFET

Brochage du module MOSFET AOD4184, LR7843 et FR120N

Le module a deux côtés. Le côté commande est un connecteur à 2 broches (pas de 2.54mm) pour l'Arduino Mega. Le côté puissance est un groupe de trois borniers à vis pour la charge et son alimentation.

Côté commande :

  • Broche PWM : doit être connectée à une broche de sortie de l'Arduino Mega. Cette broche reçoit le signal ON/OFF ou PWM.
  • Broche GND : doit être connectée à GND de l'Arduino Mega. C'est la masse du signal.

Côté puissance :

  • Broche + : doit être connectée au fil positif de l'alimentation de la charge (par exemple 12V) et au fil positif de la charge. Les deux fils partagent ce seul bornier.
  • Broche LOAD : doit être connectée au fil négatif de la charge. C'est le côté que le MOSFET commute.
  • Broche − : doit être connectée au fil négatif (masse) de l'alimentation de la charge

※ Note:

La disposition des broches d'un module peut varier d'un fabricant à l'autre, et les étiquettes peuvent un peu changer d'un lot à l'autre. Il est essentiel de toujours vous référer aux étiquettes imprimées sur le module lorsque vous l'utilisez. Regardez-les bien !

Comment Fonctionne le Module MOSFET

Le module est construit à partir de deux parties principales :

  • Un optocoupleur PC817 côté entrée. La broche PWM alimente une petite résistance et une minuscule LED à l'intérieur. La lumière de cette LED active un phototransistor, également à l'intérieur du PC817, et le phototransistor commande la grille du MOSFET. Comme le signal passe sous forme de lumière, le côté Arduino Mega et le côté charge sont isolés électriquement. La masse du signal et la masse de la charge ne sont PAS connectées sur le module.
  • Un MOSFET à canal N utilisé comme interrupteur côté bas (low-side). Il est placé entre le bornier LOAD et le bornier −, donc il commute le fil négatif de la charge. Une résistance sur sa grille tire la grille à 0V chaque fois que l'optocoupleur est éteint.

La tension de grille provient de l'alimentation de la charge à travers un diviseur de tension (environ la moitié de l'alimentation). Pour cette raison, l'alimentation de la charge doit être d'au moins 6V environ. Si la charge consomme plus de quelques ampères, utilisez 9V ou plus. Le module ne fonctionnera PAS bien avec une alimentation de charge de 5V.

Le module est actif à l'état HIGH. Les trois cas ci-dessous montrent ce qui se passe pour chaque signal que l'Arduino Mega peut envoyer à la broche PWM.

Cas 1 : La Broche PWM Est à HIGH (5V)

  • Le signal 5V fait passer quelques mA dans la LED de l'optocoupleur, et la LED s'allume à l'intérieur de la puce. N'importe quelle broche de l'Arduino Mega peut fournir directement ce petit courant.
  • Le phototransistor conduit, et la grille du MOSFET monte à environ la moitié de l'alimentation de la charge (environ 6V avec un adaptateur 12V).
  • Le MOSFET est complètement passant (ON). Il se comporte comme un interrupteur fermé avec une très faible résistance : quelques mΩ pour l'AOD4184 et le LR7843, environ 0.2Ω pour le FR120N.
  • Le courant circule maintenant dans une boucle : adaptateur + → bornier + → charge → bornier LOAD → MOSFET → bornier − → adaptateur −.
  • Presque toute la tension d'alimentation (environ 12V) arrive à la charge, qui fonctionne donc à pleine puissance.
  • Dans le code : digitalWrite(MOSFET_PIN, HIGH) ou analogWrite(MOSFET_PIN, 255).

Cas 2 : La Broche PWM Est à LOW (0V)

  • La broche donne 0V, donc aucun courant ne traverse la LED de l'optocoupleur, et elle reste éteinte.
  • Le phototransistor est bloqué. La résistance de grille maintient la grille du MOSFET à 0V.
  • Le MOSFET est bloqué (OFF) et se comporte comme un interrupteur ouvert entre LOAD et −.
  • Le fil − de la charge n'a aucun chemin vers la masse, donc aucun courant ne circule. La charge voit 0V et est éteinte.
  • Dans le code : digitalWrite(MOSFET_PIN, LOW) ou analogWrite(MOSFET_PIN, 0).

Cas 3 : La Broche PWM Reçoit un Signal PWM

  • AnalogWrite() fait passer la broche de LOW à HIGH environ 500 à 1000 fois par seconde.
  • Pendant chaque partie HIGH, le module est dans le Cas 1 (charge allumée). Pendant chaque partie LOW, il est dans le Cas 2 (charge éteinte). La charge reçoit donc des impulsions de 12V.
  • Le rapport cyclique est la part de chaque période pendant laquelle la broche reste à HIGH. Il est défini par la valeur de analogWrite() : rapport cyclique = valeur / 255. La tension moyenne et la puissance moyenne de la charge sont égales au rapport cyclique multiplié par la valeur maximale.
Rapport cyclique Valeur de analogWrite() Tension moyenne sur une alimentation 12V Résultat
20% 51 environ 2.4V bande LED très faible, moteur très lent
40% 102 environ 4.8V moins de la moitié de la puissance
60% 153 environ 7.2V plus de la moitié de la puissance
80% 204 environ 9.6V presque pleine puissance
  • Une bande LED paraît moins lumineuse parce qu'elle clignote plus vite que l'œil ne peut suivre. Un moteur, un ventilateur ou une pompe tourne plus lentement parce que sa masse en rotation lisse les impulsions.
  • La fréquence PWM doit rester basse (environ 500 Hz à 1 kHz). À une fréquence plus élevée, le PC817, qui est lent, ne peut pas commuter complètement le MOSFET, les impulsions perdent leur forme et le MOSFET chauffe. Voir la note sur la fréquence dans la partie programmation ci-dessous.
  • Le code d'exemple de ce tutoriel parcourt le rapport cyclique de 10 % à 100 %.

Schéma de Câblage

L'Arduino Mega envoie son signal de la broche 2 à la broche PWM du module, tandis que la bande LED 12V reçoit son alimentation de l'adaptateur 12V via les borniers à vis du module.

Schéma de câblage Arduino Mega avec module MOSFET AOD4184, LR7843 ou FR120N

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

De Vers
Broche 2 de l'Arduino Mega Broche PWM du module
GND de l'Arduino Mega Broche GND du module
Adaptateur 12V + (via la prise d'alimentation DC) Bornier + du module
Adaptateur 12V − (via la prise d'alimentation DC) Bornier − du module
Bande LED + Bornier + du module (partagé avec l'adaptateur +)
Bande LED − Bornier LOAD du module

WARNING

Ne connectez jamais l'alimentation 12V à une broche de l'Arduino Mega. Le 12V va uniquement aux borniers à vis du module MOSFET.

L'Arduino Mega a 15 broches PWM (les broches 2 à 13 et 44 à 46), vous pouvez donc choisir une autre broche PWM si la broche 2 est déjà utilisée. Changez simplement le numéro de broche dans le code. Une broche PWM est nécessaire pour la partie luminosité ; pour un simple ON/OFF, n'importe quelle broche numérique convient.

Câbler le Module MOSFET à d'Autres Appareils 12V

Le côté Arduino Mega reste le même pour tous les appareils ci-dessous : broche 2 vers la broche PWM, GND vers la broche GND. Seul le côté puissance change. Dans tous les cas, l'adaptateur + va à +, l'adaptateur − va à −, le fil + de l'appareil va aussi à +, et le fil − de l'appareil va à LOAD.

Avant de choisir un appareil, vérifiez deux choses :

  • La tension de l'adaptateur doit correspondre à l'appareil. Un appareil 12V a besoin d'un adaptateur 12V. Elle doit aussi être de 6V ou plus, sinon le module ne commutera pas bien.
  • Le module doit convenir au courant de l'appareil. Le FR120N est réservé aux petits appareils (environ 2A sans dissipateur). Pour des courants plus forts, utilisez l'AOD4184 ou le LR7843.

À propos de la diode de roue libre (flyback) : un moteur, un ventilateur, une pompe et une électrovanne ont tous une bobine à l'intérieur. Quand le MOSFET se bloque, la bobine produit un pic de tension qui peut endommager le MOSFET. Le module n'a pas de diode sur la carte, vous devez donc en ajouter une (1N5819 ou 1N4007) aux bornes des fils de l'appareil. La cathode (le côté avec la bande) va au fil + de l'appareil, et l'anode va au fil − de l'appareil. Les tableaux ci-dessous indiquent simplement « diode de roue libre : requise » quand vous en avez besoin.

Le code de ce tutoriel fonctionne pour tous les appareils ici sans aucun changement. La seule exception concerne les solénoïdes : pour eux, utilisez seulement HIGH ou LOW (100 % ou 0 %), et n'utilisez pas la partie de variation progressive.

Exemple 1 : Bande LED 12V (Une Seule Couleur)

Schéma de câblage du module MOSFET avec une bande LED 12V

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

Élément Détail
Fil + de la bande (souvent marqué 12V) Bornier + du module
Fil − de la bande Bornier LOAD du module
Diode de roue libre non nécessaire (pas de bobine)
Effet du PWM luminosité

Une bande plus longue consomme plus de courant, donc lisez le courant de votre bande avant de choisir un module. Ce câblage est valable uniquement pour une bande d'une seule couleur. Les bandes RGB et adressables se câblent d'une autre façon.

Exemple 2 : Moteur DC 12V

Schéma de câblage du module MOSFET avec un moteur DC 12V

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

Élément Détail
Fil + du moteur Bornier + du module
Fil − du moteur Bornier LOAD du module
Diode de roue libre requise
Effet du PWM vitesse

Le moteur tourne dans un seul sens. Si vous devez changer le sens, utilisez plutôt un pilote de moteur comme le L298N. Voir le tutoriel Arduino Mega - Moteur DC.

Exemple 3 : Ventilateur de Refroidissement 12V

Ventilateur de refroidissement 12V connecté à un module MOSFET

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

Élément Détail
Fil rouge (+) Bornier + du module
Fil noir (−) Bornier LOAD du module
Fil jaune (signal de vitesse, s'il existe) non connecté
Diode de roue libre requise (peu coûteuse et sans danger)
Effet du PWM vitesse

Certains ventilateurs ne démarrent pas à un rapport cyclique très bas. Commencez au-dessus d'environ 30 %.

Exemple 4 : Pompe à Eau 12V

Schéma de câblage du module MOSFET avec une pompe à eau 12V

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

Élément Détail
Fil + de la pompe Bornier + du module
Fil − de la pompe Bornier LOAD du module
Diode de roue libre requise
Effet du PWM débit

Ne laissez jamais la pompe tourner à sec. Gardez son entrée sous l'eau.

Exemple 5 : Électrovanne 12V (Normalement Fermée)

Schéma de câblage d'une électrovanne 12V avec un module MOSFET

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

Élément Détail
Fil + de la vanne Bornier + du module
Fil − de la vanne Bornier LOAD du module
Diode de roue libre requise
Commande ON = vanne ouverte, OFF = vanne fermée

Une vanne n'a que deux états, donc la commande ON/OFF suffit. N'utilisez pas le PWM.

Exemple 6 : Serrure à Solénoïde 12V

Câblage du module MOSFET et d'une serrure à solénoïde 12V

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

Élément Détail
Fil + de la serrure Bornier + du module
Fil − de la serrure Bornier LOAD du module
Diode de roue libre requise
Commande pleinement ON ou pleinement OFF uniquement, pas de PWM

La bobine de la serrure chauffe si elle reste sur ON longtemps. Mettez-la sur ON seulement pour une courte impulsion afin de déverrouiller la porte, puis mettez-la sur OFF. Pour un projet complet de serrure, voir le tutoriel Arduino Mega - Serrure électromagnétique (Solenoid Lock).

Comment Programmer pour le Module MOSFET

Aucune bibliothèque n'est nécessaire. Le code utilise uniquement les fonctions Arduino intégrées.

  • La première étape est de définir la broche de l'Arduino Mega qui est connectée à la broche PWM du module :
const int MOSFET_PIN = 2;
  • La broche doit être configurée en sortie dans la fonction setup() :
pinMode(MOSFET_PIN, OUTPUT);
  • Pour allumer complètement ou éteindre complètement la charge, on peut écrire HIGH ou LOW sur la broche :
digitalWrite(MOSFET_PIN, HIGH); // load ON digitalWrite(MOSFET_PIN, LOW); // load OFF
  • Pour régler la puissance de la charge, une valeur PWM de 0 à 255 est écrite avec analogWrite(). Le code convertit un pourcentage dans cette plage avec map() :
int duty = map(percent, 0, 100, 0, 255); analogWrite(MOSFET_PIN, duty);

La fréquence PWM par défaut de analogWrite() sur l'Arduino Mega est d'environ 490 Hz (environ 980 Hz sur les broches 4 et 13). Les deux valeurs sont dans la plage sûre du module, donc gardez la valeur par défaut et n'augmentez pas la fréquence PWM.

Code Arduino Mega 2560 pour le Module MOSFET

Le code ci-dessous répète ces étapes en boucle :

  • Allume complètement la charge pendant 2 secondes, puis l'éteint complètement pendant 2 secondes
  • Augmente la puissance de 10 % à 100 % par pas de 10 %, un pas toutes les 0.5 secondes
  • Diminue la puissance de 90 % jusqu'à 0 %, puis attend 1 seconde
/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega 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-mega/arduino-mega-mosfet-module */ const int MOSFET_PIN = 2; // Arduino Mega 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

  • Si c'est la première fois que vous utilisez l'Arduino Mega 2560, consultez Arduino Mega - Installation du Logiciel.
  • Câblez les composants comme indiqué sur le schéma. Laissez l'adaptateur 12V débranché pour l'instant.
  • Connectez la carte Arduino Mega à votre ordinateur avec un câble USB.
  • Ouvrez l'Arduino IDE sur votre ordinateur.
  • Sélectionnez la carte Arduino Mega or Mega 2560 et le bon port COM.
  • Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  • Cliquez sur le bouton Téléverser pour téléverser le code vers l'Arduino Mega.
  • Branchez l'adaptateur secteur 12V.
  • Ouvrez le Moniteur Série et réglez la vitesse de transmission sur 9600.
  • Regardez la bande LED : elle est à pleine luminosité pendant 2 secondes, éteinte pendant 2 secondes, puis elle devient lentement plus lumineuse, puis lentement plus faible.
  • Voyez le résultat dans le Moniteur Série :
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Mega Or...
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Mega Or...' 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 Mega Or... on COM15
2

Si vous utilisez un ventilateur 12V à la place de la bande LED, le ventilateur tourne à pleine vitesse, s'arrête, puis accélère et ralentit selon le même schéma.

Connaissances Supplémentaires

AOD4184 vs LR7843 vs FR120N : Lequel Choisir

AOD4184 LR7843 FR120N
Tension max de la charge 40V 30V 100V
Résistance à l'état passant environ 7 mΩ environ 3.3 mΩ environ 210 mΩ
Courant pratique (sans dissipateur) environ 10–15A environ 15A environ 2A
Convient pour charges 12V / 24V / 36V charges 12V / 24V à fort courant petites charges 24V / 48V
  • LR7843 : il a la résistance la plus faible, donc il reste le plus froid à fort courant. C'est le meilleur choix pour les charges 12V ou 24V puissantes, comme une longue bande LED de forte puissance ou un gros moteur. Sa limite est de 30V.
  • AOD4184 : un bon module polyvalent. Il supporte jusqu'à 40V et un courant fort.
  • FR120N : il supporte la tension la plus élevée (jusqu'à 100V), mais sa résistance est la plus forte, donc il est réservé aux petits courants d'environ 2A sans dissipateur.

Il est évident que le LR7843 est le meilleur choix pour un fort courant, le FR120N est le meilleur choix pour une haute tension, et l'AOD4184 se situe entre les deux. Quel que soit celui que vous utilisez, touchez le MOSFET après quelques minutes de fonctionnement. S'il est trop chaud pour être touché, ajoutez un dissipateur ou réduisez la charge.

Module MOSFET vs Relais

Module MOSFET Relais
Type de charge DC uniquement AC ou DC
Bruit silencieux fait des clics
Pièces mobiles aucune oui
Vitesse de commutation très rapide lente
PWM (variation, contrôle de vitesse) oui non
Durée de vie longue limitée par l'usure des contacts

Choisissez le module MOSFET pour les charges DC, surtout quand vous voulez contrôler la luminosité ou la vitesse. Choisissez le Arduino Mega - Relais quand l'appareil fonctionne sur le secteur AC.

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 !