Table des matières:

Ventilateur régulé PWM basé sur la température du processeur pour Raspberry Pi : 4 étapes (avec photos)
Ventilateur régulé PWM basé sur la température du processeur pour Raspberry Pi : 4 étapes (avec photos)

Vidéo: Ventilateur régulé PWM basé sur la température du processeur pour Raspberry Pi : 4 étapes (avec photos)

Vidéo: Ventilateur régulé PWM basé sur la température du processeur pour Raspberry Pi : 4 étapes (avec photos)
Vidéo: Объяснение прошивки Marlin 2.0.x 2024, Juillet
Anonim
Ventilateur régulé PWM basé sur la température du processeur pour Raspberry Pi
Ventilateur régulé PWM basé sur la température du processeur pour Raspberry Pi

De nombreux boîtiers pour Raspberry Pi sont livrés avec un petit ventilateur 5V afin d'aider à refroidir le processeur. Cependant, ces ventilateurs sont généralement assez bruyants et de nombreuses personnes les branchent sur la broche 3V3 pour réduire le bruit. Ces ventilateurs sont généralement évalués à 200 mA, ce qui est assez élevé pour le régulateur 3V3 du RPi. Ce projet vous apprendra comment réguler la vitesse du ventilateur en fonction de la température du processeur. Contrairement à la plupart des tutoriels couvrant ce sujet, nous n'allons pas seulement allumer ou éteindre le ventilateur, mais nous contrôlerons sa vitesse comme cela se fait sur un PC grand public, en utilisant Python.

Étape 1: Pièces nécessaires

Pour ce projet, nous n'utiliserons que quelques composants qui sont généralement inclus dans les kits électroniques pour amateur que vous pouvez trouver sur Amazon, comme celui-ci.

  • Raspberry Pi exécutant Raspbian (mais devrait fonctionner avec d'autres distributions).
  • Ventilateur 5V (mais un ventilateur 12V peut être utilisé avec un transistor adapté et une alimentation 12V).
  • Transistor NPN qui prend en charge au moins 300mA, comme un 2N2222A.
  • Résistance 1K.
  • 1 diode.

Facultatif, pour mettre les composants à l'intérieur du boîtier (mais pas encore fait):

  • Un petit bout de protoboard, pour souder les composants.
  • Grand thermorétractable, pour protéger la planche.

Étape 2: Connexions électriques

Connections electriques
Connections electriques
Connections electriques
Connections electriques
Connections electriques
Connections electriques

La résistance peut être branchée dans les deux sens, mais faites attention au sens du transistor et de la diode. La cathode de la diode doit être connectée au fil +5V (rouge) et l'anode doit être connectée au fil GND (noir). Vérifiez votre doc de transistor pour les broches de l'émetteur, de la base et du collecteur. La terre du ventilateur doit être connectée au collecteur et la terre du Rpi doit être connectée à l'émetteur

Afin de contrôler le ventilateur, nous devons utiliser un transistor qui sera utilisé en configuration à collecteur ouvert. En faisant cela, nous avons un interrupteur qui va connecter ou déconnecter le fil de terre du ventilateur à la terre du raspberry pi.

Un transistor NPN BJT conduit en fonction du courant qui circule dans sa grille. Le courant qui pourra circuler du collecteur (C) à l'émetteur (E) est:

Ic = B * Ib

Ic est le courant qui traverse le collecteur l'émetteur, Ib est le courant qui traverse la base jusqu'à l'émetteur, et B (bêta) est une valeur dépendant de chaque transistor. Nous approximons B = 100.

Comme notre ventilateur est évalué à 200 mA, nous avons besoin d'au moins 2 mA à travers la base du transistor. La tension entre la base et l'émetteur (Vbe) est considérée comme constante et Vbe = 0,7V. Cela signifie que lorsque le GPIO est activé, nous avons 3,3 - 0,7 = 2,6 V à la résistance. Pour avoir 2mA à travers cette résistance, nous avons besoin d'une résistance maximale de 2,6 / 0,002 = 1300 ohms. Nous utilisons une résistance de 1000 ohm pour simplifier et garder une marge d'erreur. Nous aurons 2,6 mA via la broche GPIO, ce qui est totalement sûr.

Comme un ventilateur est essentiellement un moteur électrique, il s'agit d'une charge inductive. Cela signifie que lorsque le transistor cesse de conduire, le courant dans le ventilateur continuera à circuler alors qu'une charge inductive essaie de maintenir le courant constant. Cela entraînerait une haute tension sur la broche de masse du ventilateur et pourrait endommager le transistor. C'est pourquoi nous avons besoin d'une diode en parallèle avec le ventilateur qui fera circuler le courant en permanence à travers le moteur. Ce type de configuration de diode s'appelle une diode à volant

Étape 3: Programme pour contrôler la vitesse du ventilateur

Pour contrôler la vitesse du ventilateur, nous utilisons un signal PWM logiciel de la bibliothèque RPi. GPIO. Un signal PWM est bien adapté pour piloter des moteurs électriques, car leur temps de réaction est très élevé par rapport à la fréquence PWM.

Utilisez le programme calib_fan.py pour trouver la valeur FAN_MIN en exécutant dans le terminal:

python calib_fan.py

Vérifiez plusieurs valeurs entre 0 et 100% (devrait être autour de 20%) et voyez quelle est la valeur minimale pour que votre ventilateur s'allume.

Vous pouvez modifier la correspondance entre la température et la vitesse du ventilateur au début du code. Il doit y avoir autant de tempSteps que de valeurs speedSteps. C'est la méthode qui est généralement utilisée dans les cartes mères PC, en déplaçant des points sur un graphique Temp/Vitesse à 2 axes.

Étape 4: Exécutez le programme au démarrage

Pour exécuter le programme automatiquement au démarrage, j'ai fait un script bash où je mets tous les programmes que je veux lancer, puis je lance ce script bash au démarrage avec rc.locale

  1. Créez un répertoire /home/pi/Scripts/ et placez le fichier fan_ctrl.py dans ce répertoire.
  2. Dans le même répertoire, créez un fichier nommé launcher.sh et copiez le script ci-dessous.
  3. Editez le fichier /etc/rc.locale et ajoutez une nouvelle ligne avant le "exit 0": sudo sh '/home/pi/Scripts/launcher.sh'

script launcher.sh:

#!/bin/sh#launcher.sh # accédez au répertoire personnel, puis à ce répertoire, puis exécutez le script python, puis revenez à homelocalecd /cd /home/pi/Scripts/sudo python3./fan_ctrl.py &cd /

Si vous souhaitez l'utiliser avec OSMC par exemple, vous devez le démarrer en tant que service avec systemd.

  1. Téléchargez le fichier fanctrl.service.
  2. Vérifiez le chemin d'accès à votre fichier python.
  3. Placez fanctrl.service dans /lib/systemd/system.
  4. Enfin, activez le service avec sudo systemctl enable fanctrl.service.

Cette méthode est plus sûre, car le programme sera automatiquement redémarré s'il est tué par l'utilisateur ou le système.

Conseillé: