Le contrôle de moteur peut parfois nécessiter une grande quantité de courant mais se satisfaire d’un simple contrôle de vitesse sans précision, sans asservissement en position. C’est le cas par exemple pour des hélices, ou pour des moteurs de propulsion puissants dont l’asservissement sera externe (GPS, odométrie, balises).
Dans ce cas, le mosfet est tout indiqué : petit (boitier TO220 de transistor classique, économique et pourtant capable de couper un courant de plusieurs dizaines d’ampères pour les basses tensions continues que nous utilisons en robotique (jusqu’à 24 volts).
Pour choisir le bon mosfet, il faut bien sûr qu’il convienne aux tensions et intensités de votre alimentation et de votre moteur, mais aussi qu’il se pilote sur sa gachette avec une tension convenable pour votre circuit de commande, par exemple avec un micro-contrôleur TTL, la tension de seuil (Vgs) doit être entre 2 et 4 volts.
Nous avons choisi d’utiliser le IRFZ44N mais d’autres modèles existent. Il s’agit d’un mosfet "canal N" ce qui signifie qu’il coupe la masse (N = neutre = négatif) et la laisse passer lorsqu’il reçoit une tension supérieure à x volts sur sa patte G (gachette ou gate selon le vocabulaire de prédilection). On doit donc connecter le moteur directement sur une borne avec une tension positive (12 volts dans notre cas) et l’autre borne va sur la sortie (drain) du mosfet. La masse pilotée par le mosfet est connectée à l’entrée (source) du mosfet.
Voici sa documentation technique :
Premier montage : unidirectionnel
Le mosfet s’utilise comme un transistor classique. Il suffit de deux résistances quand on n’a pas besoin de changer le sens de rotation du moteur.
Avec Yenka, nous pouvons réaliser un circuit de base et vérifier qu’il fonctionne, notamment dans le choix de la résistance de pull-down (lorsque l’interrupteur est ouvert) et de la résistance de protection de la gâchette.
Dans notre projet, une carte à base de micro-contrôleur pilotera la gachette du mosfet, avec un signal PWM qui permettra de faire varier la différence de potentiel donc la vitesse du moteur. On ne va donc pas utiliser la résistance de pull-down.
La soudure des composants se fait assez vite avec une plaque à bande (stripboard) et quelques connecteurs avec détrompeur (griller un moteur, une carte ou une alimentation est très vite arrivé).
Et au final ça marche très bien :
Code source
Nous avons testé une variation de vitesse sur la patte 9 grâce à un PWM. La fonction pour obtenir un PWM sur une sortie numérique avec Arduino est "analogWrite". Seules certaines pattes peuvent utiliser cette fonction (3, 4, ...8, 9, 10, 13) selon votre carte.
void setup()
{
pinMode(9,OUTPUT);
}
void loop()
{
// on augmente progressivement la vitesse
for (int i = 0; i < 255; i++) {
analogWrite(9,i);
delay(20);
}
// on diminue progressivement la vitesse
for (int i = 255; i > 0; i--) {
analogWrite(9,i);
delay(20);
}
}
La prochaine fois, on testera le changement de sens avec un relais !
Vos commentaires
# Le 10 juillet 2016 à 12:27, par Samy
En réponse à : Mosfet pour moteur à courant continu
Bonjour,
Je suis grand débutant et vos explications sont les plus claires que j’ai trouvé après plusieurs jours de recherches acharnées... :) ça valait bien un petit mot et un grand MERCI.
# Le 18 août 2016 à 18:33, par Eric P.
En réponse à : Mosfet pour moteur à courant continu
Merci beaucoup pour ce merci chaleureux :)
Ca nous fait toujours plaisir de savoir qu’on a pu aider quelqu’un à avancer.
Cordialement
Eric
Répondre à ce message
# Le 12 mai 2013 à 12:17, par Fabien
En réponse à : Mosfet pour moteur à courant continu
Bonjour et joli montage,
vous pouvez mettre le code en ligne s’il vous plait ?
@ +
# Le 13 mai 2013 à 20:35, par Julien H.
En réponse à : Mosfet pour moteur à courant continu
C’est fait, le code est en ligne !
Répondre à ce message