Les interfaces de puissance

\partImg{Les interfaces de puissance}{\rootImages/power.jpg}{0.5}

Introduction

Pour certains projets plus évolués, on souhaite utiliser des composants tels que des moteurs ou des résistances (chauffage, ventilation).
Or, on constate rapidement que le branchement direct de ces éléments sur une carte Arduino va se révéler impossible.
En effet, la carte Arduino est prévu pour délivrer de faibles courants et faibles tensions. Nous allons donc créer un circuit où la puissance et la commande sont dissociés.

Présentation

Une des moyens pour créer notre circuit de puissance est le transistor bipolaire. . Ce composant possède trois broches :

  • Le collecteur (C)
  • la base (B)
  • l’émetteur (E)
Figure – La représentation du transistor bipolaire

Conventions

Afin de simplifier les calculs par la suite, posons les normes suivantes :

  • Le courant entrant dans le Collecteur est appelé \(I_{C}\)
  • Le courant entrant dans la Base est appelé \(I_{B}\)
  • Le courant sortant de l’émetteur est appelé \(I_{E}\)
  • La tension entre la Base et l’Émetteur est appelée \(V_{be}\)
  • La tension entre le Collecteur et l’Émetteur est appelée \(V_{ce}\)
Figure – Conventions du transistor bipolaire

Les flèches au sein du transistor indiquent le sens de déplacement du courant sur les broches.

Les familles de transistors bipolaires

Les transistors bipolaires sont classés en deux catégories :

  • Les transistors NPN[note]
  • Les transistors PNP

Le principe de fonctionnement est similaire entre ces deux familles, seul le branchement et le niveau de commande diffère. Dans ce document, nous utiliserons essentiellement des transistors NPN car ces derniers utilisent des grandeurs positives.

Figure – Transistors NPN et PNP

Les paramètres de sélection du transistor

Notre transistor doit dans un premier temps répondre à deux contraintes :

  • La tension admissible sur \(V_{ce}\)[note] doit être supérieure à la tension d’alimentation de notre circuit.
  • Concrètement, si notre circuit est alimenté en 48V mais que le transistor ne supporte pas plus de 30V, il va être détruit.

  • Le transistor doit supporter un courant plus élevé que le courant maximal transitant dans notre circuit.
  • Pour contrôler un moteur consommant 1 Ampère, je dois donc choisir un transistor pouvant contrôler au moins 2 Ampère.

Pour la suite de la présentation, on supposera que notre transistor a été dimensionné pour répondre à ces deux contraintes.

Le principe

Ce type de transistor fonctionne comme une vanne pour une canalisation. Il est possible de réguler le débit de la canalisation avec la vanne.
Le transistor bipolaire permet de contrôler un courant important avec un faible courant.

Figure – Le rôle du transistor

Ici, notre transistor joue le rôle de la vanne et permet de bloquer le courant (électrons) ou bien de les laisser passer.
Le courant de l’élément à contrôler (moteur, résistance de puissance) transite entre le collecteur et l’émetteur et le courant de commande passe par la base, comme l’illustre la figure suivante.

Figure – Courant de commande et de puissance

La relation fondamentale reliant le courant de puissance et de commande est la suivante :
\( \boxed{ I_{C} = \beta \cdot I_{B} }\)
Le paramètre \(\beta\), appelé gain du transistor[note] est une caractéristique interne de notre transistor, c’est à dire qu’il dépend du type de transistor que nous choisissons.
Les courants \(I_{C}, I_{B},I_{E}\) sont exprimés dans la même unité (Ampère, milliampères..) pour une formule homogène.
Les transistors de puissance possède des gains de l’ordre de la dizaine alors que les transistors de signal (faibles courants) ont un gain pouvant facilement atteindre 200 ou 300.

Remarque

Plus notre \(\beta\) est faible, plus il va falloir injecter un courant important dans notre base

Et que devient notre broche Émetteur » ?
\begin{reponse}

Notre émetteur est relié à la masse du circuit et permet de le fermer pour que les électrons puissent circuler.
Le courant circulant dans l’émetteur est simplement la somme des courants entrant dans le transistor.
d’où : \( \boxed{ I_{E} = I_{B} + I_{C} }\)
\end{reponse}

Exemple

On souhaite commander l’arrêt et la marche d’un moteur consommant au maximum 0.5A et alimenté avec une tension de 9V.
Nous choisissons un transistor permettant de commuter 1A (sécurité) avec \(\beta=30\)
Quel doit-être le courant injecté dans la base ?
\begin{reponse}
On applique la formule précédent et on obtient :
\( I_{B} = \frac{I_{C}}{\beta} = \frac{0.5}{30} = 16 mA \)
\end{reponse}

Mise en pratique

Branchements

Maintenant que nous connaissons les tensions et courants nécessaires à notre transistor et à notre moteur, nous allons le commander avec une carte Arduino.
Tout d’abord, il convient de placer le moteur entre notre alimentation et le collecteur.

Remarque

Toutes les charges à contrôler avec ce type de transistor se placent entre l’alimentation et le collecteur.

Enfin, il ne nous reste plus qu’à relier une sortie numérique de l’Arduino vers notre base par l’intermédiaire d’une résistance.
La résistance va servir à imposer le courant dans la base de notre transistor.
Nous obtenons donc le schéma suivant.

Figure – Branchement du transistor bipolaire

Dimensionnement de la résistance

On souhaite obtenir un courant de \(16 mA\) dans notre base et on sait que l’Arduino délivre du \(5V\) en sortie.
Nous somme donc tentés de dire que \(R_b = \frac{U_{arduino}}{ I_{B}} = \frac{5}{0.016} = 312 \Omega\) [note]
Hélas, il y a peu de chance que votre moteur tourne dans les conditions optimales.
Il convient d’avoir à l’esprit que notre \(\beta\) trouvé dans la documentation n’est que théorique et qu’il peut être en réalité inférieur.

Remarque

Une des conventions non officielles admet que pour de la commutation en Tout ou Rien, on divise la valeur théorique de notre \(\(\beta\)\) par 2. Nous allons donc prendre donc un \(\(\beta\)\) valant 15.

On refait donc les calculs.
\( I_{B} = \frac{I_{C}}{\beta} = \frac{0.5}{15} = 32 mA \)
Une dernière chose : les transistors bipolaires entraînent une chute de tension entre la base et l’émetteur (\(V_{be}\)).
Cette chute de tension dépend de la technologie des transistors bipolaires :

  • \(0.7V\) pour les transistors au silicium
  • \(0.3V\) pour les transistors au germanium

Dans l’extrême majorité des cas, on utilisera des transistors au silicium. La tension disponible aux bornes de la résistance est donc de \(4.3V\) (\(5-0.7\))
D’où :
\( \boxed{ R_{b} = \frac{U_{arduino}-V_{be}}{I_b} = \frac{4.3}{0.032} = 134 \Omega} \)

Exemple de programme Arduino

Voici un code permettant de faire tourner le moteur périodiquement pendant 5 secondes puis de l’arrêter pendant 5 secondes.


#define D8 8     //Broche 8 de l'Arduino
void setup() {
pinMode(D8, OUTPUT); //Mise en sortie de la broche
}//End setup
void loop() {
digitalWrite(D8, HIGH); //Déclencher la rotation du moteur
delay(5000); //Délai de 5s
digitalWrite(D8, LOW); //Fin de la rotation du moteur
delay(5000); //Délai de 5s
}//End loop

Les transistors MOSFET

Présentation

Nous avons vu l’utilisation des transistors bipolaires.
Ces derniers sont assez contraignants à mettre en oeuvre car ils sont commandés en courant.
Nous allons utiliser cette fois-ci la technologie des MOSFET [note] car ces derniers ont l’avantage d’être contrôlés en tension.
Ce composant possède trois broches :

  • Le drain (D)
  • la porte (G)[note]
  • la source (S)

Figure – La représentation du transistor MOSFET

Conventions

Afin de simplifier les calculs par la suite, posons également les normes suivantes :

  • Le courant entrant dans le Drain est appelé \(I_{D}\)
  • Le courant entrant dans la Porte est appelé \(I_{G}\)
  • Le courant sortant de la Source est appelé \(I_{S}\)
  • La tension entre la Porte et la Source est appelée \(V_{GS}\)
  • La tension entre le Drain et la Source est appelée \(V_{DS}\)

Les familles de transistors MOSFET

Les transistors MOSFET sont classés en deux catégories :

  • Les transistors MOSFET à canal N [note]
  • Les transistors MOSFET à canal P

Le principe de fonctionnement est similaire entre ces deux familles, seul le branchement et le niveau de commande diffère.
Dans ce document, nous utiliserons essentiellement des transistors MOSFET à canal N car ces derniers utilisent des grandeurs
positives.

Figure – Transistors à canal N et P

Les paramètres de sélection du transistor

Les paramètres de sélection de nos transistors MOSFET sont identiques aux transistors bipolaires, c’est à dire :

  • La tension admissible sur \(V_{DS}\) du transistor
  • Le courant admissible entre le Drain et la Source.

Pour la suite de la présentation, on supposera que notre transistor a été dimensionné pour répondre à ces deux contraintes.

Le principe

Ce type de transistor fonctionne comme les transistors bipolaires mais est commandé en tension et non en courant.
Par analogie, le drain joue le rôle du collecteur, la source celui de l’émetteur et la porte celui de la base.
Le courant de l’élément à contrôler (moteur, résistance de puissance) transite entre le drain et la source et la tension de commande est aux bornes de la porte.

Les transistors MOSFET deviennent passant[note] lorsque la tension sur la porte dépasse une tension de déclenchement appelée \(V_{GS_{th}}\).
Cette valeur est généralement comprise entre \(2\) et \(4\) Volts.
Lorsque cette tension \(V_{GS_{th}}\) est atteinte, notre transistor peut être remplacé d’un point de vue électrique entre le drain et la source par une résistance de très faible valeur, appelée \(R_{DS_{on}}\)

Comparaison avec les transistors bipolaires

Par nature, la porte du MOSFET est vue comme un condensateur. Le transistor ne consomme pas de courant, excepté pendant les commutations.
Ainsi, le courant est nul dans la porte pour maintenir le moteur en marche alors que pour un bipolaire, il faut maintenir un courant dans la base.
Les MOSFET sont donc plus économes en énergie que les bipolaires.
De plus, ils peuvent généralement supporter des courants plus importants que les bipolaires.
En revanche, en hautes fréquences, les MOSFET sont moins réactifs du fait de leur capacité en entrée.

Mise en pratique

Nous souhaitons faire tourner le même moteur que celui utilisé avec notre transistor bipolaire.
Nous allons le commander avec une carte Arduino.

Branchements

Tout d’abord, il convient de placer le moteur entre notre alimentation et le drain.

Remarque

Toutes les charges à contrôler avec ce type de transistor se placent entre l’alimentation et le drain.

Enfin, il ne nous reste plus qu’à relier une sortie numérique de l’Arduino vers notre porte sans résistance. Nous obtenons donc le schéma suivant.

Figure – Branchement du transistor MOSFET

Exemple de programme Arduino

Voici un code permettant de faire tourner le moteur périodiquement pendant 5 secondes puis de l’arrêter pendant 5 secondes.
Il s’agit du même code que pour le transistor bipolaire.


  #define PIN 11     //GATE du transistor

void setup() {

pinMode(PIN, OUTPUT); //Mise en sortie de la broche

}//Fin setup

void loop() {

digitalWrite(PIN, HIGH); //Mise en route du transistor
delay(5000); //Délai de 5s
digitalWrite(PIN, LOW); //Arret du transistor
delay(5000); //Délai de 5s

}//Fin loop


Conclusion

Ce qu’il faut retenir

Nous avons à notre disposition tout un ensemble de technologies pour contrôler la partie puissance.
Les transistors ne sont pas adaptés pour commuter une charge sur secteur (230V), cette partie sera donc réservée aux relais.
En revanche, pour toutes les tensions continues, les transistors sont adaptés et prennent moins de place en encombrement.

Les fiches techniques

L’intégralité des informations disponibles pour un transistor sont disponibles dans un document complet appelé Datasheet.
Ce document détaille les broches, les caractéristiques électriques, propose des schémas d’exemples….
Par exemple, voici quelques extraits de la documentation du transistors IRF520[note] :

Figure – Extrait n°1 du IRF520
Figure – Extrait n°2 du IRF520

On retrouve sur cette figure la valeur de \(R_{DS_{on}}\) et de \(V_{GS_{th}}\)