Mini Kit Moteur Hobbyiste

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Introduction

Dans le précédent article Moteur Hobbyiste, nous avons abordé la problématique de commander un moteur à l'aide d'un transistor NPN P2N2222AG. Cet article va se concentrer sur l'usage des transistor MOFSET nettement plus performant mais aussi mieux adapté à la commande en puissance.

Avantages du MOFSET

Un transistor NPN est avant tout un amplificateur en courant (en fonction du courant de base). Les transistors MOFSET sont des amplificateurs en tension.

Du coup, ils sont aussi plus faciles à utiliser. Il suffit d'appliquer une différence de potentiel sur la Gate et HOP... le MOFSET commute :-) Rien avoir avec le transistor NPN ou il faut calculer le courant de base avec soin pour saturer le transistor (pour qu'il commute).

Un autre avantage du MOFSET, c'est qu'il a moins de perte... et qui dit moins de perte dit aussi moins de dissipation en chaleur et aussi moins de chute de tension :-).

Quel candidat!

Désavantage du MOFSET

Son seul désavantage est d'être beaucoup plus cher d'un simple transistor NPN.

Inconvénient du montage NPN

...et pourquoi il faut utiliser un MOFSET!

Si ce type de montage à base de transistor est fonctionnel, il présente un énorme désavantage... la perte de tension au borne du transistor (VCE).

Cette perte de tension est généralement assez importante (1.2 Volts en moyenne), ce qui est très élevé face à la tension d'alimentation d'un montage de type Arduino (souvent 5 Volts). Plus cette chute de tension est important et moins il en reste pour le matériel raccordé sur le transistor (relais ou moteur).

Cette chute de tension (VCE) à également tendance à augmenter avec le courant qui passe au travers du transistor. Dans le cadre d'un montage moteur c'est une véritable catastrophe.

En effet, lorsque l'on commute un transistor NPN pour alimenter le moteur, deux cas de figures se présentent:

  1. Sous l'impulsion, le moteur décolle (démarre) et se met à tourner. Le courant d'appel (assez grand au démarrage) diminue rapidement... et donc la chute de tension au transistor aussi (puisque le courant diminue dans le transistor). La tension disponible aux bornes du moteur augmente jusqu'à un maximum... et le moteur atteint aussi un régime maximale. Cool... tout ce passe bien.
  2. Malgré l'impulsion, le moteur ne décolle pas (cela arrive 1 à 2 fois sur 10). Le courant reste donc à son maximum (celui du démarrage). Comme ce courant passe aussi à travers le transistor, et que ce courant est assez important, chute de tension au borne du transistor NPN augmente rapidement. Résultat: la tension disponible aux bornes du moteur diminue... et le moteur n'a aucune chance de démarrer. HAARFF!

L'idéal serait que la tension reste stable aux bornes du moteur au moment du démarrage. Même s'il ne décolle pas immédiatement, maintenir la tension malgré le courant de démarrage assurerait le démarrage du moteur.

C'est là ou le transistor MOFSET nous sauve :-)

Le MOFSET

A quoi ressemble un MOFSET

Un MOFSET ressemble à un... "transistor".

Seul les caractéristiques sont vraiment différentes (comme le dessin et le nom des broches).

Tous comme les transistors, il y a des MOFSET de Type N (dit "N Channel") et de type P (P Channel).

MOFSET Channel N - En quelques mots

Pendant du transistor NPN, voici un Mofset Channel N.

Utiliser un Channel-N est pratique et fort courant... comme l'usage des transistor NPN est également plus courant que le l'usage du PNP.

Nous allons nous concentrer sur le STP16NF06... fort répandu et capable de supporter des courants vraiment très importants (pratique pour la commande de moteurs mais aussi de strip Led).

STP16NF06 - N Channel - Package.jpg

  • 1 = G = GATE : broche de commande
  • 2 = D = DRAIN : broche qui draine le courant (la charge quoi... comme le moteur)
  • 3 = S = SOURCE : broche source de courant (ou le courant est collecté pour être envoyé vers la charge... dans notre cas, il s'agit de la masse)

STP16NF06 - N Channel - Schema.jpg

Parmi les caractéristiques de bases du STP16NF06, nous relèverons:

  • Vds: 60 Volts!
    Drain-source Voltage est tension maximale supportée par le transistor.
  • Id : 16A
    Courant du Drain maximum... courant maximum supporté par le transistor.

MOFSET Channel N - Montage type

Le schéma-ci dessous présente un montage type du MOFSET Channel N.

STP16NF06 - N Channel - Montage Type.jpg

La résistance de 100 KOhms est une résistance pull-down. Elle permet de drainer les électrons vers la masse lorsque le bouton poussoir est relâché. Cette résistance est essentielle pour le MOFSET "décommute".

STP16NF06 - N Channel - Montage Type2.jpg

Ces deux graphiques proviennent de l'excellente référence de Basic Transistor Drivers for Micro-Controllers de Lewis Loflin

Mini Kit Moteur Hobbyiste

Le Mini Kit Moteur Hobbyiste proposé par MC Hobby est une application typique de MOFSET Channel N.

Le Mofset sélectionné est un STP16NF06, il est sur-calibré pour un moteur Hobbyiste mais vous pourrez sans mal l'utiliser avec un moteur plus puissant, un strip led, etc. Pas besoin de modifier le montage de base, il conviendra à de nombreux cas d'utilisation.

Plan de montage

Voici le schéma de montage pour un Arduino correspondant au schéma Channel-N présenté ci-dessus.

MKIT-MOTEUR schema.jpg

Montage en pratique

Voici le montage sur un platine de prototypage.

MKIT-MOTEUR montage.jpg

En guise d'alimentation externe, vous pouvez utiliser une pile de 9V pour alimenter votre Arduino et raccorder le (+) de l'alimentation externe sur la broche Vin d'Arduino.

Code d'exemple

Le plus simple des exemple est encore le BlinkWithoutDelay ( File > Examples > Digital > BlinkWithoutDelay ) qui active et désactive régulièrement la Pin 13.

Pour un résultat plus évident, changer la valeur de "interval" de 1000 à 5000 ms.

En guise d'exemple, voici l'exemple BlinkWithoutDelay avec la ligne modifiée...

/* Blink without Delay
 
 Turns on and off a light emitting diode(LED) connected to a digital  
 pin, without using the delay() function.  This means that other code
 can run at the same time without being interrupted by the LED code.
 
 The circuit:
 * LED attached from pin 13 to ground.
 * Note: on most Arduinos, there is already an LED on the board
 that's attached to pin 13, so no hardware is needed for this example.
 
 
 created 2005
 by David A. Mellis
 modified 8 Feb 2010
 by Paul Stoffregen
 
 This example code is in the public domain.

 
 http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
 */

// constants won't change. Used here to 
// set pin numbers:
const int ledPin =  13;      // the number of the LED pin

// Variables will change:
int ledState = LOW;             // ledState used to set the LED
long previousMillis = 0;        // will store last time LED was updated

// the follow variables is a long because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long interval = 5000;           // interval at which to blink (milliseconds)

void setup() {
  // set the digital pin as output:
  pinMode(ledPin, OUTPUT);      
}

void loop()
{
  // here is where you'd put code that needs to be running all the time.

  // check to see if it's time to blink the LED; that is, if the 
  // difference between the current time and last time you blinked 
  // the LED is bigger than the interval at which you want to 
  // blink the LED.
  unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis > interval) {
    // save the last time you blinked the LED 
    previousMillis = currentMillis;   

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);
  }
}

Sources

Cette section reprend quelques ressources vraiment utiles.

Où Acheter