Raspberry Pi - Module MOSFET

Ce tutoriel vous explique comment utiliser un Raspberry Pi pour piloter une charge CC de 12V, comme une bande LED ou un ventilateur, avec un module MOSFET. Une broche GPIO du Raspberry Pi fonctionne en 3,3V et ne fournit qu'un très faible courant. Le module MOSFET prend ce signal faible et s'en sert pour commander une charge beaucoup plus puissante, alimentée par une alimentation séparée. Dans le détail, nous allons apprendre :

Nous suggérons :

Matériel Requis

1×Raspberry Pi 5
1×MOSFET Module (AOD4184, LR7843 or FR120N)
1×12V Bande LED
1×Alternativement: 12V DC Ventilateur de refroidissement
1×Adaptateur secteur 12V
1×Connecteur d'alimentation DC
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Raspberry Pi
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Raspberry Pi

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 placé sur le fil négatif de votre charge CC. Le Raspberry Pi lui dit quand conduire, et le module laisse passer le courant de 12V dans la charge ou le bloque. Rien ne bouge à l'intérieur : il n'y a donc aucun clic et rien ne s'use avec le temps. Il réagit aussi assez vite pour suivre un signal PWM. Avec le PWM, le Raspberry Pi peut rendre une bande LED plus faible ou plus lumineuse, ou faire tourner un ventilateur ou un moteur plus lentement ou plus vite.

Cette page couvre trois cartes : AOD4184 (vous pouvez aussi la trouver sous le nom D4184), LR7843 et FR120N. Le circuit imprimé, les broches, le câblage et le script Python sont identiques pour les trois. Seule la puce MOSFET soudée sur la carte est différente.

AOD4184 LR7843 FR120N
Puce 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, gardez-le à environ 1 kHz ou moins oui, gardez-le à environ 1 kHz ou moins oui, gardez-le à environ 1 kHz ou moins
Type de charge CC uniquement CC uniquement CC uniquement

Comment le Module Fonctionne à l'Intérieur

Le signal GPIO n'atteint jamais directement le MOSFET. Il passe par ces éléments, dans cet ordre : la broche PWM du module, une petite résistance, la LED à l'intérieur d'un optocoupleur PC817, puis (sous forme de lumière) le phototransistor du même PC817, et enfin la grille d'un MOSFET à canal N. Le MOSFET est placé entre la borne LOAD et la borne −, il commute donc le fil négatif de la charge (un interrupteur côté bas). La charge elle-même est connectée entre + et LOAD.

La logique est active à l'état HAUT. Ci-dessous, vous voyez ce qui se passe à l'intérieur du module pour chaque signal que GPIO16 peut envoyer.

Lorsque GPIO16 Sort 3,3V (HAUT)

Une broche GPIO du Raspberry Pi ne donne que 3,3V, jamais 5V. C'est suffisant pour le module :

  • La LED de l'optocoupleur n'a besoin que de quelques milliampères, donc la broche 3,3V peut l'alimenter directement. Un petit courant circule, et la LED s'allume dans la puce (vous ne pouvez pas la voir).
  • La lumière active le phototransistor. La grille du MOSFET reçoit maintenant environ la moitié de la tension d'alimentation de la charge, soit environ 6V avec un adaptateur 12V.
  • Le MOSFET passe complètement à l'état ON et devient un interrupteur fermé. Sa résistance est très faible : quelques mΩ pour l'AOD4184 et le LR7843, et environ 0,2Ω pour le FR120N.
  • Le courant doit faire cette boucle : adaptateur + → borne + → charge → borne LOAD → MOSFET → borne − → adaptateur −.
  • La charge reçoit presque toute la tension d'alimentation (environ 12V) et fonctionne à pleine puissance.

En Python, cela correspond à GPIO.output(MOSFET_PIN, GPIO.HIGH), ou à un rapport cyclique de 100% avec pwm.ChangeDutyCycle(100).

Lorsque GPIO16 Sort 0V (BAS)

  • La LED de l'optocoupleur ne reçoit aucun courant, donc elle ne s'allume pas.
  • Sans lumière, le phototransistor reste bloqué. Une résistance sur la grille ramène la grille du MOSFET à 0V.
  • Le MOSFET passe à l'état OFF et devient un interrupteur ouvert entre LOAD et −.
  • Le fil négatif de la charge est maintenant coupé de la masse. Aucun courant ne peut circuler, la charge reçoit 0V et elle est éteinte.

En Python, cela correspond à GPIO.output(MOSFET_PIN, GPIO.LOW), ou à pwm.ChangeDutyCycle(0).

Lorsque GPIO16 Sort un Signal PWM

Le script de ce tutoriel crée le PWM avec pwm = GPIO.PWM(MOSFET_PIN, 500). Cela signifie que GPIO16 passe de 0V à 3,3V 500 fois par seconde. Voici ce qui en découle :

  • Le MOSFET suit chaque changement. Il est ON pendant chaque partie HAUTE et OFF pendant chaque partie BASSE, donc la charge reçoit des impulsions de 12V.
  • Le rapport cyclique est la part de chaque période pendant laquelle le signal est HAUT. Vous le réglez avec pwm.ChangeDutyCycle(), de 0 à 100.
  • La tension moyenne, et la puissance moyenne, est le rapport cyclique multiplié par la valeur maximale.
pwm.ChangeDutyCycle() Signal Moyenne sur une charge 12V
0 toujours BAS 0V, la charge est éteinte
10 HAUT 1/10 du temps environ 1,2V, environ 10% de puissance
50 HAUT la moitié du temps environ 6V, environ la moitié de la puissance
90 HAUT 9/10 du temps environ 10,8V, environ 90% de puissance
100 toujours HAUT 12V, pleine puissance

Le script passe de 10% à 100% par paliers de 10%, pour que vous puissiez voir chaque niveau. Une bande LED paraît plus faible avec un faible rapport cyclique, car elle clignote trop vite pour que l'œil le remarque. Un ventilateur ou un moteur tourne plus lentement, car sa masse en rotation lisse les impulsions.

Vous devez garder une fréquence PWM basse, autour de 500 Hz à 1 kHz, car le PC817 est un composant lent. Si la fréquence est trop élevée, le MOSFET ne peut pas commuter complètement. La charge ne reçoit pas des impulsions nettes, et le MOSFET chauffe.

Autres Résultats de Cette Conception

  • Le côté Raspberry Pi et le côté 12V sont isolés électriquement. La masse du signal et la masse de la charge ne sont pas reliées sur le module.
  • La tension de grille est prise sur l'alimentation de la charge, pas sur le Raspberry Pi. 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. Une alimentation de charge de 5V ne fonctionnera pas bien.

Brochage du Module MOSFET

Brochage du module MOSFET AOD4184, LR7843 et FR120N

Le côté commande est un connecteur à 2 broches (pas de 2,54mm), il se place donc sur une breadboard :

  • PWM : cette broche reçoit le signal de commande d'une broche GPIO du Raspberry Pi
  • GND : cette broche doit être connectée à la masse (0V) du Raspberry Pi

Le côté puissance a trois borniers à vis :

  • + : cette borne 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 borne
  • LOAD : cette borne va au fil négatif de la charge. C'est le côté commuté, et elle mène au drain du MOSFET
  • − : cette borne doit être connectée au négatif (masse) de l'alimentation de la charge

※ Note:

La disposition des broches d'un module peut différer selon les fabricants, et même selon les lots. Il est essentiel de toujours utiliser les étiquettes imprimées sur le module. Regardez-les bien de près !

Schéma de Câblage

Le premier exemple ci-dessous utilise une bande LED 12V. D'autres appareils, comme un ventilateur, un moteur CC, une pompe ou un solénoïde, sont présentés plus bas.

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

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

  • Broche PWM du module MOSFET à GPIO16 du Raspberry Pi (broche 36)
  • Broche GND du module MOSFET à GND du Raspberry Pi (broche 34, juste à côté de la broche 36, ou toute autre broche GND)
  • Positif de l'adaptateur secteur 12V (via la prise d'alimentation CC) à + du module MOSFET
  • Négatif de l'adaptateur secteur 12V (via la prise d'alimentation CC) à − du module MOSFET
  • Fil positif de la bande LED à + du module MOSFET (la même borne que le positif de l'adaptateur)
  • Fil négatif de la bande LED à LOAD du module MOSFET

WARNING

L'alimentation 12V doit rester du côté des borniers à vis du module. Ne la connectez jamais à une broche du connecteur du Raspberry Pi. Les broches GPIO du Raspberry Pi n'acceptent que 3,3V, et le 12V détruira la carte.

Câbler d'Autres Appareils CC au Module MOSFET

Le côté Raspberry Pi est le même pour tous les appareils : GPIO16 (broche 36) va à PWM, et une broche GND va à GND. Ce qui change, c'est le côté des borniers à vis. Les listes sous chaque image ne couvrent que ce côté.

Avant de câbler un nouvel appareil, vérifiez ces points :

  • La tension de l'adaptateur doit être la même que celle de l'appareil. Pour un appareil 12V, utilisez un adaptateur 12V. L'alimentation doit aussi être de 6V ou plus, comme expliqué plus haut.
  • Le module doit supporter le courant de l'appareil. Le FR120N est réservé aux petits appareils, environ 2A sans dissipateur. L'AOD4184 et le LR7843 sont pour les plus gros.
  • Un appareil avec une bobine (un moteur, un ventilateur, une pompe ou un solénoïde) est une charge inductive. Le module n'a pas de diode de roue libre (flyback) intégrée, vous devez donc en ajouter une vous-même (1N5819 ou 1N4007). Placez-la aux bornes de l'appareil. La cathode (le côté avec la bande) va sur le fil positif de l'appareil, et l'anode va sur le fil négatif de l'appareil.

Vous pouvez garder le même script Python pour tous ces appareils. La seule exception est un solénoïde : commandez-le uniquement en tout ou rien (100% ou 0%), et laissez de côté la partie de variation progressive.

Raspberry Pi, Module MOSFET et Moteur CC 12V

Câblage du Raspberry Pi, du module MOSFET et d'un moteur CC 12V

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

  • Positif de l'adaptateur 12V à + du module MOSFET
  • Négatif de l'adaptateur 12V à − du module MOSFET
  • Fil positif du moteur à + du module MOSFET
  • Fil négatif du moteur à LOAD du module MOSFET
  • Diode de roue libre (flyback) aux bornes du moteur : cathode (bande) au positif du moteur, anode au négatif du moteur

Le rapport cyclique PWM contrôle la vitesse de rotation du moteur. Le module ne peut le piloter que dans un seul sens. Si vous devez l'inverser, utilisez un pilote de moteur comme le L298N, comme montré dans le tutoriel Raspberry Pi - Moteur DC..

Raspberry Pi, Module MOSFET et Pompe à Eau 12V

Câblage du module MOSFET pour une pompe à eau 12V

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

  • Positif de l'adaptateur 12V à + du module MOSFET
  • Négatif de l'adaptateur 12V à − du module MOSFET
  • Fil positif de la pompe à + du module MOSFET
  • Fil négatif de la pompe à LOAD du module MOSFET
  • Diode de roue libre (flyback) aux bornes de la pompe, placée de la même façon que pour le moteur

Le rapport cyclique règle le débit d'eau. Assurez-vous qu'il y a toujours de l'eau dans la pompe. La faire tourner à sec peut l'endommager.

Raspberry Pi, Module MOSFET et Bande LED 12V

Câblage du module MOSFET pour une bande LED 12V monochrome

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

  • Positif de l'adaptateur 12V à + du module MOSFET
  • Négatif de l'adaptateur 12V à − du module MOSFET
  • Fil positif de la bande LED (souvent marqué 12V) à + du module MOSFET
  • Fil négatif de la bande LED à LOAD du module MOSFET
  • Pas de diode de roue libre (flyback), car une bande LED n'a pas de bobine

Le rapport cyclique règle la luminosité. Une longue bande consomme plus de courant, lisez donc le courant de votre bande avant de choisir le module. Ce câblage est pour une bande monochrome. Les bandes RVB et adressables fonctionnent différemment.

Raspberry Pi, Module MOSFET et Ventilateur 12V

Câblage du module MOSFET pour un ventilateur 12V

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

  • Positif de l'adaptateur 12V à + du module MOSFET
  • Négatif de l'adaptateur 12V à − du module MOSFET
  • Fil rouge du ventilateur à + du module MOSFET
  • Fil noir du ventilateur à LOAD du module MOSFET
  • Fil jaune du ventilateur (signal de vitesse), si votre ventilateur en a un : laissez-le non connecté
  • Diode de roue libre (flyback) aux bornes du ventilateur, de la même façon que ci-dessus (elle coûte peu et est sans risque)

Le rapport cyclique règle la vitesse du ventilateur. Certains ventilateurs ne démarrent pas quand le rapport cyclique est très faible, commencez donc à environ 30% ou plus.

Raspberry Pi, Module MOSFET et Électrovanne 12V

Câblage du module MOSFET pour une électrovanne 12V normalement fermée

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

  • Positif de l'adaptateur 12V à + du module MOSFET
  • Négatif de l'adaptateur 12V à − du module MOSFET
  • Fil positif de la vanne à + du module MOSFET
  • Fil négatif de la vanne à LOAD du module MOSFET
  • Diode de roue libre (flyback) aux bornes de la bobine de la vanne

C'est une vanne normalement fermée. Quand le module est complètement ON, la vanne s'ouvre. Quand il est OFF, la vanne se ferme. N'utilisez pas le PWM avec elle, seulement ON et OFF.

Raspberry Pi, Module MOSFET et Serrure à Solénoïde 12V

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

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

Pour simplifier et organiser votre montage de câblage, nous recommandons l'utilisation d'un shield à bornier à vis pour Raspberry Pi. Ce shield assure des connexions plus sûres et mieux gérées, comme illustré ci-dessous :

Shield à bornier à vis pour Raspberry Pi
  • Positif de l'adaptateur 12V à + du module MOSFET
  • Négatif de l'adaptateur 12V à − du module MOSFET
  • Fil positif de la serrure à + du module MOSFET
  • Fil négatif de la serrure à LOAD du module MOSFET
  • Diode de roue libre (flyback) aux bornes de la bobine de la serrure

Commandez la serrure en tout ou rien, jamais avec une variation progressive PWM. La bobine chauffe si elle reste ON longtemps, alors mettez-la ON seulement un court instant pour déverrouiller, puis remettez-la OFF.

Comment Programmer le Raspberry Pi pour Contrôler une Charge CC avec le Module MOSFET

Aucune bibliothèque supplémentaire n'est nécessaire. Le script utilise la fonction PWM de RPi.GPIO sur GPIO16 et répète ce cycle sans fin :

  • La charge est complètement ON pendant 2 secondes, puis complètement OFF pendant 2 secondes.
  • La puissance monte de 10% à 100% par paliers de 10%, avec 0,5 seconde par palier.
  • La puissance redescend de 90% à 0% de la même façon.
  • Le script attend 1 seconde, puis recommence.

Lorsque vous appuyez sur Ctrl + C, le script arrête le PWM et libère la broche GPIO.

Étapes Rapides

  1. Assurez-vous d'avoir installé Raspbian ou tout autre système d'exploitation compatible Raspberry Pi sur votre Pi.
  2. Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  3. Assurez-vous que votre Raspberry Pi est connecté à Internet si vous avez besoin d'installer des bibliothèques.
  4. Si c'est la première fois que vous utilisez un Raspberry Pi, consultez Installation du logiciel - Raspberry Pi.
  5. Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows.
  6. Assurez-vous que la bibliothèque RPi.GPIO est installée. Si elle est absente, installez-la avec ces commandes :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  1. Câblez le Raspberry Pi, le module MOSFET, l'adaptateur secteur 12V et la bande LED comme indiqué dans le schéma de câblage ci-dessus. Laissez l'adaptateur 12V débranché pour le moment.
  2. Créez un fichier script Python MosfetModule.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi 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/raspberry-pi/raspberry-pi-mosfet-module import RPi.GPIO as GPIO import time MOSFET_PIN = 16 # GPIO16 (pin 36) connected to the PWM pin of the MOSFET module GPIO.setmode(GPIO.BCM) GPIO.setup(MOSFET_PIN, GPIO.OUT) pwm = GPIO.PWM(MOSFET_PIN, 500) # 500 Hz PWM, slow enough for the module's optocoupler pwm.start(0) # start with the load OFF def set_load(percent): pwm.ChangeDutyCycle(percent) print("Load power: {}%".format(percent)) try: while True: # turn the load fully ON, then fully OFF print("Load: ON") set_load(100) time.sleep(2) print("Load: OFF") set_load(0) time.sleep(2) # increase the power step by step (PWM) for percent in range(10, 101, 10): set_load(percent) time.sleep(0.5) # decrease the power step by step (PWM) for percent in range(90, -1, -10): set_load(percent) time.sleep(0.5) time.sleep(1) except KeyboardInterrupt: pass finally: pwm.stop() GPIO.cleanup()
  1. Branchez l'adaptateur secteur 12V.
  2. Exécutez le script avec cette commande :
python3 MosfetModule.py
  1. Observez la bande LED. Elle brille à pleine luminosité pendant 2 secondes et s'éteint pendant 2 secondes. Ensuite, elle devient lentement plus lumineuse, puis lentement plus faible.
  2. Vérifiez les résultats dans le terminal.
PuTTY - Raspberry Pi
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%

Le script répète ce cycle indéfiniment. Pendant la partie ON et OFF, une nouvelle ligne apparaît toutes les 2 secondes (à cause des lignes time.sleep(2)). Pendant la montée et la descente progressives, une nouvelle ligne apparaît toutes les 0,5 secondes (à cause des lignes time.sleep(0.5)). La sortie continue jusqu'à ce que vous arrêtiez le script en appuyant sur les touches Ctrl + C dans le terminal. Le script éteint alors la charge et nettoie la broche GPIO.

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

Connaissances Supplémentaires

AOD4184 vs LR7843 vs FR120N

Comparons les trois modules pour voir lequel convient à votre projet :

AOD4184 LR7843 FR120N
Tension de charge max 40V CC 30V CC 100V CC
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
  • Le LR7843 a la résistance la plus faible, il reste donc le plus froid à fort courant. Choisissez-le pour les bandes LED de forte puissance ou les gros moteurs en 12V ou 24V. Ne dépassez pas 30V.
  • L'AOD4184 est un bon module polyvalent. Il supporte jusqu'à 40V et laisse quand même passer un fort courant.
  • Le FR120N accepte la tension la plus élevée (jusqu'à 100V), mais sa résistance est bien plus grande. Il ne convient qu'aux petits courants, environ 2A sans dissipateur.

Gardez à l'esprit que 50A et 161A sont les limites de la puce MOSFET elle-même. Le petit module ne peut pas supporter autant. La vraie limite est la chaleur. Après quelques minutes de fonctionnement, touchez le MOSFET avec précaution. S'il est trop chaud pour être touché, réduisez le courant ou ajoutez un dissipateur.

Module MOSFET vs Relais

Comparons un module MOSFET avec un module relais pour commuter une charge :

Module MOSFET Module relais
Pièces mobiles aucune oui, un contact mécanique
Bruit silencieux fait un clic à chaque commutation
Vitesse de commutation très rapide lente
PWM (contrôle de la luminosité / de la vitesse) oui non
Durée de vie longue, pas d'usure des contacts limitée par l'usure des contacts
Type de charge CC uniquement CC ou CA (vérifiez la valeur du relais)

Évidemment, le module MOSFET est le meilleur choix pour les charges CC, surtout lorsque vous voulez contrôler la luminosité ou la vitesse. Pour les appareils sur le secteur (CA), un relais reste le bon outil.

Vidéo

※ 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 !