Qu'est ce qu'un Transistor ? Quand l'utiliser dans vos circuits ? Comment le choisir ?

Introduction

Le transistor permet de commander un composant lorsque que la carte Arduino n’a pas la puissance nécessaire.

 Le transistor permet donc d’amplifier un signal pwm de votre carte arduino.  Avec celui-ci, vous pouvez faire fonctionner un moteur 12V à l’aide d’une alimentation externe et d’un transistor par exemple.

Deux types de transistor : Mosfet et Bipolaire

Il existe deux types de transistor : Mosfet et bipolaire.

 

Le transistor Mosfet permet de contrôler la tension de votre composant. C’est à dire que vous pourrez faire varier la tension mais pas l’intensité de celui-ci. Voici une référence de transistor Mosfet pour arduino : IRF520.

Le transistor bipolaire permet de contrôler l’intensité de votre composant. C’est à dire que vous pourrez faire varier l’intensité mais pas la tension de celui-ci. Voici une référence de transistor Bipolaire pour arduino : BC547B.

Si vous ne savez pas si votre composant doit se contrôler en tension ou en courant, vous pouvez regarder la fiche technique de celui-ci ou vous aurez surement des graphiques qui vous montrerons si c’est la tension qui fait varier la valeur de votre composant ou l’intensité.

Comment fonctionne t'il ?

 Le transistor est un semi-conducteur composé d’une jonction PN. Celle-ci est aussi utilisé pour faire des diodes. On vous conseille d’ailleurs d’utiliser une diode de protection avec le transistor afin de ne pas griller celui-ci. 

Les broches du transistor

Le transistor possède trois broches : 

Emettteur : Corresponds au Vcc de votre alimentation externe

Collecteur : Correspond au GND de votre alimentation externe

Base : C’est la broche de signal qui vient de la carte arduino

Quand est-ce que l'on utilise un transistor ?

Comme on l’a dit précédemment, le transistor permet de faire le relais entre la carte Arduino et votre composant si l’Arduino n’est pas assez puissante pour la fonctionner. 

La carte Arduino peut alimenter des composants allant jusqu’à 5V et 0,4 ampère. Si on veut contrôler un moteur qui fait 12V il va donc falloir une alimentation externe pour alimenter le moteur et d’un relay ou d’un transistor pour contrôler celui-ci. 

Quelle est la différence entre un relay et un transistor ?

Les deux composants permettent de contrôler un composant qui nécessite plus de puissance que la carte arduino en utilisant une alimentation externe.

Néanmoins le relay permet juste d’allumer le composant et de l’eteindre sans pouvoir faire varier la tension. Celui-ci est donc très utile pour allumer une lampe par exemple.

Transistor avec un moteur

On va maintenant voir comment contrôler un moteur avec une alimentation externe de 9 :

La broche 3 de la carte arduino doit être programmée pour envoyer un signal au transistor. Voici le code ci-dessou qui permet d’allumer et éteindre le moteur de façon alternatif :

int moteur =3; // Broche utilisé pour le moteur
void setup(){
  pinMode(moteur, OUTPUT); // On déclare le moteur en sortie
}

void loop(){
  digitalWrite(moteur, HIGH); // On allume le moteur
  delay(1000); // On attends une seconde
  digitalWrite(moteur, LOW);
  delay(1000); // On attends une seconde
}

Controler une led avec un transistor

On va maintenant voir comment faire varier la puissance d’une led avec un transistor. En effet, comme on l’a dit précédement ce qui différencie un transistor d’un relay c’est que le transistor permet de faire varier la tension à ses bornes. C’est ce que l’on va voir avec une led :

Voici le code pour faire varier la tension aux bornes de la led :

int led = 6;// Broche de la led
void setup() {
  pinMode(led, OUTPUT); // On initialise la led en sortie
}
void loop() {
  for(int i=0; i<255; i++){ // On allume la led progressivement avec une boucle for
    analogWrite(led, i); // On assigne ça à la led
    delay(5);// Pause de 5 milliseconde
  }
  for(int i=255; i>0; i--){ // On éteint la led progressivement avec la boucle for
    analogWrite(led, i);// On assigne ça à la led
    delay(5); // Pause de 5 milliseconde
  }
}