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…