Controler un moteur DC avec la plateforme arduino et un transistor MOSFET

Logo de la plateforme Arduino
Désolé pour ce long temps d’absence, j’étais assez occupé.

Pour continuer dans la série arduino, ce petit tutoriel va aborder le sujet du controle de moteur à courant continu DC avec une carte Arduinotm. En effet, les cartes Arduino ont des limites à respecter : les sorties (au nombre de 14 sur les Arduino Uno), tout comme les entrées, ne peuvent délivrer que 5V et 40mA chacunes. Si vous branchez directement un appareil consommant plus sur une de ces sorties, vous pouvez griller la carte Arduino et même votre port USB si c’est votre source d’alimentation !!! Ne branchez donc pas directement d’appareil ou de composant dépassant ces limites. D’accord, les cartes arduino sont assez bon marché, mais si vous en grillez une tous les trois jours, ça va finir par vous coûter cher !

C’est là qu’on peut se poser la question : mais à quoi bon acheter une carte arduino si l’on ne peut rien d’intéressant avec ?

C’est là que vous allez comprendre l’utilité du MOSFET dont je parle dans le titre de l’article. Les cartes Arduino, Freeduino, Robotduino et autres consoeurs sont des circuits de commande qui peuvent diriger des circuits de puissances (entendez par là tous les circuits dans lesquels véhiculent des courants électriques assez important : moteurs, ampoules de 100W, hauts-parleurs , etc). Il faut donc des composants capables de jouer les « interprêtes » entre les deux circuits.
MOSFET Les transistors MOSFET (pour Metal-Oxide-Semiconductor field-effect transistor, soit Transistor à effet de champ à grille métal-oxyde en français : pas tellement potable, n’est-ce-pas ?) sont des transistors (mais ça, je crois que vous aviez pigé !) qui permettent de diriger des courants électriques forts à l’aide de courants bien plus faibles. Sans rentrez dans les détails (pour en avoir plein les yeux, c’est par ici), le courant de votre carte arduino permet de diriger des composants consommant bien plus que 5 V et quelques dizaines de mA. Toutefois, il y a quelques limites :

  • Bien connaître les branchements nécessaires (pas d’inquiétude, on va regarder ça);
  • Choisir le bon transistor MOSFET : inutile de réver, il existe des milliers de transistors différents et il faut faire un choix en fonction de leurs caractéristiques techniques (descendez en dessous pour savoir comment choisir);

Mais avant d’étudier cela, il faut que vous sachiez que bien que le mosfet coûte bien plus cher (à peut près 1€~1.5€) qu’un simple transistor, il est plus avantageux car il perd moins de puissance électrique, ce qui permet d’avoir un meilleur rendement et de payer moins en électricité (bon, d’accord… J’exagère peut-être un peu !). Voilà donc pourquoi on utilise un MOSFET et pas autre chose (à savoir : il y a d’autres solutions dont je parlerais peut-être à l’avenir).

1 – Prérequis

Pour réaliser ce tuto, vous allez avoir besoin de :
composants nécessaires pour l'exercice

  1. Une carte Arduino officielle ou compatible (celle d’un autre développeur qui utilise le même language pour fonctionner);
  2. Un breadboard (aussi appelé « Platine d’expérimentation »);
  3. Des fils (wires en anglais)  pour relier les composants;
  4. Un MOSFET (nous allons voir plus ça tout de suite);
  5. Une diode (1N4001 jusqu’à 1N4007 de préférence) pour protéger le mosfet des retours de courants lors de la coupure du moteur;
  6. Un bouton poussoir;
  7. Une résistance comprise entre 2 et 15 kiloOhms;
  8. Un moteur courant continu (DC) ou une lampe;
  9. Une alimentation externe pour votre moteur ou votre lampe;
  10. Et le plus important : une bonne dose de courage !!!

2 – Le choix du mosfet

Un MOSFET se choisit en fonction de ses caractéristiques techniques, regardons ce qu’il est nécesssaire de vérifier :

Je part du principe qu’une image vaut mille mots, donc rien ne vaut mieux qu’un exemple :

MOSFET caractéristiques techniquesns

Eh oui, les caractéristiques techniques sont très souvent en anglais, dans un document nommé datasheet (littéralement feuille de données en français), mais bon : un peu de pratique ne vous fera pas de mal !

Bref, dans le tableau que j’ai entouré en rouge, Vds signifie Drain-Source Voltage (vous allez bientôt comprendre), c’est-à-dire le voltage maximum que votre transistor pourra supporter, soit ici 60Volts.

Id signifie Drain Current, c’est-à-dire l’intensité maximale que vous pourrez soumettre à la petite bête, ici 16A ou 11A selon les versions.

A vous de choisir, il en existe beaucoup. Petit conseil : n’hésitez pas à choisir un MOSFET supportant un courant plus important que votre application initiale, comme ça il pourra resservir pour d’autres projets plus énergivores.

3 – La technique

Maintenant passons à une partie plus complexe encore : ça veut dire quoi, Drain ?
schema d'un MOSFET
Regardons le schéma ci-contre :  les lettres ont une signification , G pour Gate, D pour Drain et S pour Source. En fait, ces lettres reprèsentent chacunes une des trois pattes du transitor. La patte 1 est le Gate, la patte n°2 le Drain et la 3 le Source. Si on déchiffre ce schéma, en clair le courant arrivant par le Gate ne peut aller à la Source, reliée à la masse, que si un courant électrique arrive par le Drain.
Petit tableau récapitulatif :

Valeur de Gate (0 ou 1) Valeur de Drain (0 ou 1) Valeur de Source (0 ou 1)
0 0 0
1 0 0
0 1 0
1 1 1

La valeur 0 veut dire qu’aucun courant ne passe et la valeur 1 que le courant passe;
Pour ceux qui s’y connaissent bien en électronique, on peut dire que ça ressemble à s’y méprendre à une porte logique ET.

Toutefois, pour que votre montage marche, il faut que la sortie Source soit reliée à la masse de votre arduino et à la masse de votre alim externe.

4 – Le montage

Enfin de l’action !!! Votre circuit doit être monté comme cela :

mosfet_schema
mosfet_bb
Et voilà, le tour est joué coté assemblage : vous avez un montage avec un transistor MOSFET ! Problème : il ne marche pas !!! Normal : aucun code n’a été programmé pour l’Arduino !

5 – le code

Vous devez lancer votre logiciel arduino, ou l’installer si ce n’est pas déja fait,  puis rentrez le code suivant : https://docs.google.com/document/d/1fZp62acyHglD1eOio0vLeKp3jULvmqdTwKeHcWaiU4g/edit?usp=sharing avant de téléverser ce code vers votre arduino. Libre à vous de modifier ce code, voire de l’améliorer…

Publicités

17 réflexions sur “Controler un moteur DC avec la plateforme arduino et un transistor MOSFET

  1. Merci de le dire, au moins c’est clair. Je ferai de mon mieux pour m’améliorer sur les prochains articles. Je préfère qu’on me dise la vérité plutôt que l’on ne me dise rien.

  2. Bonsoir. Peut etre ai-je tort mais il me semble qu’il y a un problème de câblage sur la platine au niveau du transistor. Compte tenu de la data sheet et du dessin du transistor la pin 1 a gauche est la gate et celle du centre le drain. Il me semble qu’en fonction du mode cablage des bread board , l’anode de la 1n4007 est ici branchee sur le drain et sa cathode au moteur en contradiction avec le shema. A titre de reflexion personnelle pour proteger l’arduino ne serait-il pas preferable d’utiliser un optocoupleur ?
    Merci ppur l’article et bon c ourage

    1. Oui, vous avez raison il y a une erreur sur le schéma, je vais corriger cela le plus vite possible. Quand à l’optocoupleur, il permet comme le relais de garantir une excellente isolation des deux circuits. C’est pourquoi il est recommandé pour des circuits de commande dirigeant des circuits de fortes puissances de prendre des relais. Peut-être sera-ce d’ailleurs le sujet d’un prochain post ? Malgré ces avantages, le faible cout d’un mosfet et l’intérêt de connaitre bien les transistors m’ont semblé intéressants. Merci de ces conseils et à la revoyure.
      —-
      Edit: Document modifié, est-ce l’erreur que vous avez signalé ?

  3. Bonsoir Tobinux,
    Merci pour votre réponse . La diode est maintenant dans le bon sens mais sur le bread board elle est toujours connectée à la pinoche centrale du FET Nr 2 soit le drain alors quelle devrait l’être à la 1 correspondant à la gate.
    Amitiés et bonne continuation
    Gérard

    1. J’ai corrigé les schéma; quand au breadboard la diode est désormais corrigée aussi je crois. Quel idiot je fais de ne pas avoir remarqué une telle coquille. Merci infiniment de m’en avoir prévenu. Désolé pour la lenteur de ma réponse, j’étais assez occupé.
      Merci à vous.
      T0b1nux

      1. Tout est maintenant ok.
        Bon courage dans la réalisations de vos « bidouilles ».
        Gérard

    1. Merci de ta proposition mais non merci. Tout d’abord parce que je préfères écrire mes articles moi-mêmes mais aussi parce que tu as un site très intéressant et que je ne comprends pas ton intérêt à écrire pour un autre au lieu d’ajouter des informations au tien (très intéressant cela soit dit en passant). Donc désolé mais non. A moins d’avoir une bonne raison de délaisser ton site pour le mien ?

      1. Merci de m’avoir répondu, je comprend tout à fait ta décision.
        « A moins d’avoir une bonne raison de délaisser ton site pour le mien » non c’est vrai je n’ai pas de raison de délaisser mon site pour un autre.
        Merci quand même
        CNSinvention

  4. Bonjour,

    J’aimerai savoir s’il est possible de remplacer dans ce schéma la pile 9v par du 220v, et le moteur par une ampoule par exemple.

    Merci

    1. Il est peu probable que ton mosfet soit capable de supporter 220V. De plus, avec une mauvaise isolation, tu risque de griller ta carte arduino.
      Je te conseille plutôt de tourner vers un relai.
      Pour l’ampoule, là encore tout dépends de la puissance requise par l’ampoule.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s