Contrôler un petit ventilateur Brushless DC (BLDC) avec un Arduino

4.2
(37)

Dans ce tuto nous allons contrôler un petit ventilateur à moteur sans balais (brushless). C’est le type de ventilateur qui est souvent utilisé pour le refroidissement des ordinateurs. Ce type de ventilateur est alimenté en courant continu, mais il incorpore un petit système électronique qui assure la commutation du courant dans les enroulements du stator du moteur (un moteur brushless est un moteur synchrone à courant alternatif).

Que peut-on alimenter par une sortie d’un Arduino ?

Il faut tout d’abord comprendre qu’une sortie numérique d’un Arduino est une sortie binaire “tout ou rien”. Elle peut avoir deux états : 0 ou 1 (ou encore vrai / faux, allumé / éteint, haut / bas) . La tension correspondant à un état 0 est de 0 V. La tension correspondant à un état 1 est de 5 V (ou 3.3 V en fonction de l’Arduino utilisé).

Il parait donc parfait de contrôler la mise en marche et l’arrêt du ventilateur en l’alimentant directement par une sortie numérique de l’Arduino !

Mais peut-on relier le ventilateur directement sur une sortie numérique ? La réponse est simple : NON. Il faut en effet savoir que le courant que peut délivrer une sortie est limité. Les sorties sont en effet destinées à contrôler mais pas à alimenter des périphériques.

Exemple de courant maximal généré par une sortie de l’ATmega328P

On voit dans l’extrait de la documentation technique de l’ATmega328P ci-dessus que le courant maximal délivré par une sortie est de 40 mA. Je vous conseille cet excellent article qui entre plus en profondeur dans ce sujet.

Donc si il est donc possible d’alimenter une LED qui consomme 10 mA avec une sortie d’un Arduino Uno, il n’est pas possible d’alimenter des équipements qui consomment plus de 40 mA.

Le ventilateur ci-dessous nécessite un courant d’environ 80 mA (P = U x I -> I = P / U = 0.38 / 5 = 76 mA).

ventilateur DC brushless

Il n’est donc pas possible de l’alimenter directement en le reliant à une sortie de l’Arduino.

Mais comment faire alors pour contrôler notre ventilateur ? La réponse est simple, il va falloir utiliser un système qui puisse à la fois délivrer suffisamment de courant et être contrôlé par une sortie de l’Arduino. Il existe plusieurs solutions à ce problème. Je vais en détailler 2 qui sont souvent utilisées, le relais et le transistor.

Contrôle par relais

Un relais électromécanique permet l’ouverture ou la fermeture d’un circuit électrique de puissance à partir d’un ordre émis par une partie commande. Les 2 circuits, puissance et information, sont complètement isolés et peuvent avoir des caractéristiques d’alimentation électrique différentes (par exemple ouverture ou fermeture d’un circuit alimenté en 220 V par une commande en 5 V de l’Arduino).

Il est souvent utilisé sous forme de module, qui permet la commutation d’un relais à partir d’une sortie digitale de Arduino. Il est utilisé pour la commande par l’Arduino d’appareils nécessitant une puissance importante.

Module relais 5V couramment utilisé avec des Arduino

Description des broches du module :

CMD = Signal de commande (relié à une sortie numérique de l’Arduino)
+ = +5 V
– = GND
NO = Normalement Ouvert (contact avec la broche COM lorsque le signal de commande est à HIGH)
NC = Normalement Fermé (contact avec la broche COM lorsque le signal de commande est à LOW)

Dans notre cas, le module relais est uniquement utilisé pour ouvrir ou fermer l’alimentation 5 V du ventilateur. La commande du module relais est faite par la sortie numérique 2 de l’Arduino.

Voici une petite vidéo du montage en utilisant le module relais 5 V :

Le code Arduino correspondant :

// Test relais
// https://tutoduino.fr/
// Copyleft 2020
void setup() {
  pinMode(2,OUTPUT);
  
}
void loop() {
  digitalWrite(2, HIGH);  
  delay(2000);
  digitalWrite(2, LOW);  
  delay(3000);                     
}

Contrôle par transistor bipolaire NPN

Un transistor bipolaire NPN se comporte comme un interrupteur dans son régime de saturation. Dans ce régime, le transistor est en effet soit dans son état bloqué (le courant ne circule pas entre son collecteur et son émetteur) soit dans son état passant (le courant circule entre son collecteur et son émetteur). Voir les bases de l’électronique.

La base du transistor bipolaire NPN (un BD139 ici) est reliée à la sortie D2 de l’Arduino au travers d’une résistance. Il faut en effet commander ce type de transistor en appliquant un courant sur sa base. Le courant doit être assez important pour le faire entrer dans son régime de saturation. Une résistance de de 1 kΩ convient parfaitement à l’Arduino Uno dont les sorties fournissent une tension de 5 V.

Broches du transistor NPN BD139

L’avantage par rapport au relais : pas de “clic” lors du basculement et pas d’usure mécanique dans la durée. Le fait que le transistor soit plus rapide à commuter n’est pas important ici.

Le programme reste le même que pour le contrôle avec un relais, il suffit de positionner la sortie 2 à HIGH pour que le ventilateur tourne.

Contrôle par transistor MOSFET

Un transistor MOSFET permet de faire passer plus de courant, il est recommandé d’utiliser ce type de transistor pour contrôler un équipement qui nécessite un courant de plus de 500mA.

Un transistor MOSFET se pilote en tension et non en courant, il ne faut donc pas mettre de résistance entre la sortie de l’Arduino et la grille du transistor.

Voici un exemple de schéma utilisant le transistor MOSFET à canal N IRF830.

IRF830 pinout

Si vous utilisez un microcontrôleur alimenté à 3.3V, la tension de sortie des broches pourrait ne pas être suffisante pour faire basculer le transistor MOSFET. Dans ce cas, vous pouvez utiliser deux transistors comme sur le schéma ci-dessous. Notez que le ventilateur fonctionnera lorsque la sortie numérique de l’Arduino sera à l’état BAS (sortie à 0V).

Circuit de commande d’un ventilateur utilisant 1 transistor bipolaire NPN et un transistor MOSFET à canal N – Cliquer sur l’image pour ouvrir la simulation du circuit sous Flastad

Votre avis compte !

Note moyenne : 4.2 / 5. Nombre de votes : 37

Pas encore de vote pour ce tutoriel

Désolé si cet article ne vous a pas intéressé

Merci de commenter afin que je puisse l’améliorer.

Dites-moi comment améliorer cette page.