Arduino - Module MOSFET

Dans ce tutoriel, nous allons apprendre :

À Propos du Module MOSFET

Une broche Arduino ne donne que 5V et un très petit courant. Elle ne peut pas alimenter un ruban LED 12V, un moteur CC, un ventilateur, une pompe, une électrovanne ou un élément chauffant. Le module MOSFET se place entre l'Arduino et la charge. L'Arduino envoie un petit signal, et le module commute la forte puissance de la charge.

Les modules AOD4184 (vendu aussi sous le nom D4184), LR7843 et FR120N utilisent la même conception de carte. Ils ont la même taille, les mêmes broches, le même câblage et le même code. Seule la puce MOSFET est différente.

AOD4184 LR7843 FR120N
MOSFET AOD4184A (canal N) IRLR7843 (canal N) IRFR120N (canal N)
Tension de charge max (valeur du MOSFET) 40V CC 30V CC 100V CC
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 CC uniquement CC uniquement CC uniquement

Lequel choisir ?

  • LR7843 : il a la résistance la plus faible, donc il reste le plus froid avec un fort courant. Il convient aux charges 12V/24V à fort courant, comme les rubans LED de forte puissance ou les gros moteurs. Sa limite est 30V.
  • AOD4184 : un bon modèle polyvalent. Il fonctionne jusqu'à 40V avec un fort courant. Il convient aux charges 12V/24V/36V.
  • FR120N : il supporte la tension la plus élevée (jusqu'à 100V), mais sa résistance est élevée. Il convient donc seulement aux petits courants (environ 2A sans dissipateur). Il convient aux petites charges 24V/48V.

Les valeurs de 50A et 161A sont les limites de la puce, pas celles de la petite carte. La vraie limite est la chaleur. Touchez le MOSFET après quelques minutes. S'il est trop chaud, ajoutez un dissipateur thermique ou baissez le courant.

Brochage

Brochage du module MOSFET AOD4184, LR7843 et FR120N

Le module a deux groupes de broches. Le côté commande est un connecteur à 2 broches (2.54mm), il s'insère donc dans une breadboard. Le côté puissance utilise trois borniers à vis.

  • Côté commande :
    • Broche PWM : doit être connectée à une broche de sortie de l'Arduino. Cette broche reçoit le signal de commande.
    • Broche GND : doit être connectée à GND de l'Arduino (masse du signal).
  • Côté puissance :
    • Broche + : doit être connectée 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 : 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 négatif (−) de l'alimentation de la charge.

    Les étiquettes peuvent être un peu différentes selon les lots. Lisez toujours le texte imprimé sur votre carte.

    Fonctionnement

    • Le signal suit ce chemin : broche Arduino → broche PWM → petite résistance → LED à l'intérieur de l'optocoupleur PC817 → lumière → phototransistor à l'intérieur du PC817 → grille du MOSFET.
    • Comme le signal voyage sous forme de lumière, le côté Arduino et le côté charge sont isolés. La masse du signal et la masse de la charge NE sont PAS connectées sur le module.
    • Le MOSFET est un interrupteur à canal N, côté bas (low-side). Il est placé entre la borne LOAD et la borne −, donc il commute le fil négatif de la charge.
    • Une résistance sur la grille la ramène à 0V quand l'optocoupleur est éteint.

    Le module est actif à l'état HAUT. Voyons ce qui se passe pour chaque type de signal sur la broche PWM.

    Broche Arduino à l'état BAS (0V) : la Charge est ÉTEINTE

    • Aucun courant n'entre dans l'optocoupleur, donc sa LED reste éteinte.
    • Le phototransistor reste bloqué. La résistance de grille maintient la grille du MOSFET à 0V.
    • Le MOSFET est BLOQUÉ. Entre LOAD et −, c'est comme un interrupteur ouvert.
    • Le fil − de la charge n'est pas relié à la masse, donc aucun courant ne circule. La charge reçoit 0V.
    • Code : digitalWrite(MOSFET_PIN, LOW); ou analogWrite(MOSFET_PIN, 0);

    Broche Arduino à l'état HAUT (5V) : la Charge est ALLUMÉE

    • Quelques mA entrent dans l'optocoupleur. Sa LED s'allume à l'intérieur de la puce (vous ne la voyez pas). La broche Arduino peut facilement fournir ce petit courant.
    • Le phototransistor devient passant. Maintenant la grille du MOSFET reçoit environ la moitié de l'alimentation de la charge, environ 6V avec un adaptateur 12V.
    • Le MOSFET est complètement PASSANT. C'est 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 chemin du courant est : adaptateur + → borne + → charge → borne LOAD → MOSFET → borne − → adaptateur −.
    • La charge reçoit presque les 12V complets et fonctionne à pleine puissance.
    • Code : digitalWrite(MOSFET_PIN, HIGH); ou analogWrite(MOSFET_PIN, 255);

    Signal PWM : la Charge reçoit une Partie de la Puissance

    • Avec analogWrite(), la broche passe de l'état BAS à l'état HAUT environ 500 à 1000 fois par seconde.
    • Le MOSFET suit la broche : passant à chaque partie HAUTE, bloqué à chaque partie BASSE. Ainsi la charge reçoit de rapides impulsions de 12V.
    • Le rapport cyclique (duty cycle) est la part du temps où la broche est à l'état HAUT. La tension moyenne et la puissance sont égales au rapport cyclique multiplié par la valeur maximale. La valeur 0–255 définit le rapport cyclique (rapport = valeur / 255).
    Rapport cyclique Valeur analogWrite() La charge est allumée Tension moyenne (alimentation 12V)
    0% 0 jamais 0V
    25% 64 1/4 du temps environ 3V
    50% 128 la moitié du temps environ 6V
    75% 191 3/4 du temps environ 9V
    100% 255 tout le temps 12V
    • Un ruban LED paraît moins lumineux. Il clignote toujours, mais trop vite pour que vos yeux le voient.
    • Un ventilateur ou un moteur tourne plus lentement. Sa masse en rotation lisse les impulsions.
    • Gardez une fréquence PWM basse, d'environ 500 Hz à 1 kHz, car le PC817 est lent. Si la fréquence est trop élevée, le MOSFET ne peut pas commuter complètement. Alors les impulsions ne sont pas nettes et le MOSFET chauffe. La valeur par défaut de analogWrite() sur l'Arduino Uno (environ 490 Hz, ou environ 1 kHz sur les broches 5 et 6) convient bien.
    • Le code de ce tutoriel utilise le PWM de 10% à 100% pour faire varier progressivement la charge.

    Quelques règles importantes :

    • L'alimentation de la charge doit être d'au moins 6V environ, car la grille ne reçoit que la moitié de cette valeur (voir le cas HAUT ci-dessus). Donc le module ne fonctionne PAS bien avec une alimentation de charge de 5V. Utilisez 9V ou plus si la charge consomme plus de quelques ampères.
    • Utilisez uniquement des charges CC. Ne connectez jamais le secteur CA à ce module. Pour les charges CA, voir le tutoriel Arduino - Relais..
    • Il n'y a PAS de diode de roue libre (flyback) sur la carte. Pour les moteurs, les pompes, les électrovannes et les relais, ajoutez une diode de roue libre (flyback) externe (par exemple 1N5819 ou 1N4007) aux bornes de la charge : cathode (côté rayure) vers le + de la charge, anode vers le − de la charge.

    Par rapport à un relais, le module MOSFET ne fait aucun bruit de clic, n'a pas de pièces mobiles, commute très vite, a une longue durée de vie et gère le PWM. Un relais ne peut pas faire de PWM.

Schéma de Câblage

Connectez la broche 9 de l'Arduino à la broche PWM, GND de l'Arduino à la broche GND, l'adaptateur 12V (via la prise d'alimentation CC) à + et −, et le ruban LED à + et LOAD, comme indiqué dans l'image ci-dessous.

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

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

Ne connectez jamais les 12V à une broche de l'Arduino.

Autres Appareils que Vous Pouvez Connecter

Le ruban LED n'est qu'un choix. Vous pouvez le remplacer par un ventilateur, une pompe, un moteur ou un solénoïde. Les deux fils du côté Arduino ne changent pas. Du côté puissance, la règle est toujours la même :

  • Adaptateur secteur + → +
  • Adaptateur secteur − → −
  • Appareil + → + (la même borne que le + de l'adaptateur)
  • Appareil − → LOAD

Vérifications rapides avant de commencer :

  • Utilisez un adaptateur avec la même tension que l'appareil (appareil 12V → adaptateur 12V). Ne descendez jamais sous 6V.
  • Regardez le courant de l'appareil. Le FR120N convient seulement aux petits appareils (environ 2A, sans dissipateur). Pour plus de courant, prenez l'AOD4184 ou le LR7843.
  • Un appareil avec une bobine (moteur, ventilateur, pompe, solénoïde) a besoin d'une diode de roue libre (flyback), 1N5819 ou 1N4007. Placez-la aux bornes de l'appareil : côté rayure vers le + de l'appareil, l'autre côté vers le − de l'appareil. Plus bas, cela est indiqué par « Diode : oui ».

Vous n'avez pas besoin de nouveau code pour ces appareils. Le même code fonctionne pour tous. Pour un solénoïde, utilisez simplement HIGH et LOW (100% et 0%) et sautez la variation progressive.

Arduino Module MOSFET - Ruban LED 12V

Ruban LED 12V monochrome connecté à un module MOSFET

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

  • + du ruban (souvent imprimé « 12V ») → +, − du ruban → LOAD
  • Diode : non. Un ruban LED n'a pas de bobine.
  • Le PWM règle la luminosité.
  • Rubans monochromes uniquement. Un long ruban a besoin de plus de courant, donc vérifiez d'abord son courant.

Arduino Module MOSFET - Ventilateur de Refroidissement 12V

Schéma de câblage d'un ventilateur de refroidissement avec le module MOSFET

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

  • Fil rouge → +, fil noir → LOAD
  • Un troisième fil (jaune) est le signal de vitesse. Laissez-le libre.
  • Diode : oui. Elle coûte très peu et ne fait aucun mal.
  • Le PWM règle la vitesse. Utilisez plus de 30% environ, sinon le ventilateur peut ne pas démarrer.

Arduino Module MOSFET - Pompe à Eau 12V

Connexion d'une pompe à eau 12V au module MOSFET

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

  • + de la pompe → +, − de la pompe → LOAD
  • Diode : oui
  • Le PWM règle le débit d'eau.
  • Ne faites pas fonctionner la pompe sans eau.

Arduino Module MOSFET - Moteur CC 12V

Câblage d'un moteur CC 12V avec le module MOSFET

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

  • + du moteur → +, − du moteur → LOAD
  • Diode : oui
  • Le PWM règle la vitesse.
  • Le moteur tourne dans un seul sens. Pour changer le sens, il faut un pilote de moteur comme le L298N. Voir Arduino - Moteur à courant continu..

Arduino Module MOSFET - Électrovanne 12V

Câblage d'une électrovanne 12V normalement fermée avec le module MOSFET

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

  • + de la vanne → +, − de la vanne → LOAD
  • Diode : oui
  • Vanne normalement fermée : ALLUMÉE elle s'ouvre, ÉTEINTE elle se ferme.
  • Marche/arrêt uniquement. Pas de PWM.

Arduino Module MOSFET - Serrure à Solénoïde 12V

Schéma de câblage d'une serrure à solénoïde avec le module MOSFET

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

  • + de la serrure → +, − de la serrure → LOAD
  • Diode : oui
  • Pleine puissance ou arrêt complet uniquement. Pas de PWM.
  • Donnez-lui une courte impulsion ALLUMÉE pour déverrouiller. Si elle reste allumée longtemps, elle chauffe. Voir aussi Arduino - Serrure à solénoïde..

Comment Programmer l'Arduino pour le Module MOSFET

  • Aucune bibliothèque nécessaire : le code utilise uniquement des fonctions intégrées.
  • Définir la broche : const int MOSFET_PIN = 9; (la broche 9 gère le PWM, elle a le symbole ~)
  • Configurer la broche en sortie : pinMode(MOSFET_PIN, OUTPUT);
  • Allumer la charge à pleine puissance : digitalWrite(MOSFET_PIN, HIGH); ou analogWrite(MOSFET_PIN, 255);
  • Éteindre complètement la charge : digitalWrite(MOSFET_PIN, LOW); ou analogWrite(MOSFET_PIN, 0);
  • Régler la puissance de la charge avec analogWrite(). La valeur va de 0 (ÉTEINT) à 255 (pleine puissance). Par exemple, environ 50% : analogWrite(MOSFET_PIN, 128);
  • Convertir un pourcentage (0–100%) en valeur PWM (0–255) : int duty = map(percent, 0, 100, 0, 255);

Si vous avez seulement besoin de marche/arrêt, digitalWrite() suffit. Si vous voulez faire varier la luminosité ou changer la vitesse, utilisez analogWrite(). Cela fonctionne de la même façon que dans le tutoriel Arduino - LED - Estompage., mais ici il contrôle une charge 12V.

Code Arduino - Module MOSFET

Le code ci-dessous fait ces choses en boucle :

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

  • Réalisez le câblage comme indiqué dans le schéma ci-dessus.
  • Connectez l'Arduino au PC via un câble USB.
  • Branchez l'adaptateur secteur 12V sur la prise d'alimentation CC.
  • Ouvrez Arduino IDE. Allez dans le menu Outils, sélectionnez la bonne carte et le bon port.
  • Copiez le code ci-dessus et collez-le dans Arduino IDE.
  • Cliquez sur le bouton Téléverser dans Arduino IDE pour téléverser le code vers l'Arduino.
  • Regardez le ruban LED : il est à pleine luminosité pendant 2 secondes, puis ÉTEINT pendant 2 secondes, puis sa luminosité augmente lentement, puis diminue lentement.
  • Ouvrez le Moniteur Série (débit en bauds 9600) et regardez le résultat.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' 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 Uno on COM15
2

Si vous utilisez un ventilateur 12V à la place du ruban LED, le ventilateur tourne à pleine vitesse, s'arrête, puis accélère et ralentit. N'oubliez pas la diode de roue libre (flyback) pour un ventilateur ou un moteur.

Vidéo

Regardez ci-dessous le tutoriel vidéo étape par étape de ce projet.

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 !