PrécédentIntroduction17 / 24SuivantLes transistors MOSFET
3. Les microcontrôleurs

Les transistors bipolaires

Les transistors bipolaires

Présentation

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

La représentation du transistor bipolaire
La représentation du transistor bipolaire

Conventions

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

Conventions du transistor bipolaire
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 :

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.

Transistors NPN et PNP
Transistors NPN et PNP

Les paramètres de sélection du transistor

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

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.

Le rôle du transistor
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.

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 [3]est sans dimension (unité) et est appelé $ h_fe$ dans les documentations} 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èdent 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.

💡

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

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} }$$

Courant de commande et de puissance
Courant de commande et de puissance

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$

On applique la formule précédent et on obtient :

$$ I_{B} = \frac{I_{C}}{\beta} = \frac{0.5}{30} = 16 mA $$

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.

💡

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 du microcontrôleur 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.

Branchement du transistor bipolaire
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$  [4]

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.

💡

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 $$

Notes

  1. Le nom de ces familles provient du type de jonction utilisé en interne. Pour plus de renseignements, consulter les diodes et semi-conducteurs

  2. Cette tension est indiquée dans les documentations techniques

  3. le gain \index{gain (transistor)

  4. On part de la loi de Ohm qui dit que MATH17

⚠️

On remarquera que la carte Arduino doit fournir un courant qui s'approche de la limite de courant pour une seule broche, à savoir 40 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 :

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.

C++

Code Arduino avec transistors NPN

#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

Exemple de programme ESP12 NodeMCU

Nous allons utiliser la broche D3 pour contrôler l'alimentation d'une LED.

Le branchement du transistor correspond à un transistor de la famille des BC337.

Câblage d'un transistor avec un ESP12
Câblage d'un transistor avec un ESP12
C++

Code ESP12 avec transistors NPN

void setup() 
  
    pinMode(D3, OUTPUT); //Mise en sortie de la broche
  
  //End setup
  
  void loop() 
  
    digitalWrite(D3, HIGH);     //Allume la LED
    delay(5000);                //Délai de 5s
    digitalWrite(D3, LOW);      //Éteint la LED
    delay(5000);                //Délai de 5s
  
  //End loop
💡

La carte CREPP.io ne comporte pas de transistor bipolaire, il n'y a qu'un transistor MOSFET avec un optocoupleur que nous allons aborder dans 2 sections suivantes

PrécédentIntroduction17 / 24SuivantLes transistors MOSFET