Tabla de contenido:

Ventilador regulado por PWM basado en la temperatura de la CPU para Raspberry Pi: 4 pasos (con imágenes)
Ventilador regulado por PWM basado en la temperatura de la CPU para Raspberry Pi: 4 pasos (con imágenes)

Video: Ventilador regulado por PWM basado en la temperatura de la CPU para Raspberry Pi: 4 pasos (con imágenes)

Video: Ventilador regulado por PWM basado en la temperatura de la CPU para Raspberry Pi: 4 pasos (con imágenes)
Video: 🖥️La PASTA TÉRMICA en los PROCESADORES!✅ | Objetivo Gaming 2024, Noviembre
Anonim
Ventilador regulado por PWM basado en la temperatura de la CPU para Raspberry Pi
Ventilador regulado por PWM basado en la temperatura de la CPU para Raspberry Pi

Muchos casos para Raspberry Pi vienen con un pequeño ventilador de 5V para ayudar a enfriar la CPU. Sin embargo, estos ventiladores suelen ser bastante ruidosos y muchas personas los conectan al pin 3V3 para reducir el ruido. Estos ventiladores suelen tener una potencia nominal de 200 mA, que es bastante alta para el regulador 3V3 del RPi. Este proyecto le enseñará cómo regular la velocidad del ventilador en función de la temperatura de la CPU. A diferencia de la mayoría de los tutoriales que cubren este tema, no solo encenderemos o apagaremos el ventilador, sino que controlaremos su velocidad como se hace en una PC convencional, usando Python.

Paso 1: Piezas necesarias

Para este proyecto, usaremos solo algunos componentes que generalmente se incluyen en los kits de electrónica para aficionados que puedes encontrar en Amazon, como este.

  • Raspberry Pi con Raspbian (pero debería funcionar con otras distribuciones).
  • Ventilador de 5 V (pero se puede utilizar un ventilador de 12 V con un transistor adaptado y una fuente de alimentación de 12 V).
  • Transistor NPN que admita al menos 300 mA, como un 2N2222A.
  • Resistencia de 1K.
  • 1 diodo.

Opcional, para poner los componentes dentro de la caja (pero aún no hecho):

  • Un pedacito de protoboard, para soldar los componentes.
  • Gran termorretráctil, para proteger el tablero.

Paso 2: Conexiones eléctricas

Conexiones eléctricas
Conexiones eléctricas
Conexiones eléctricas
Conexiones eléctricas
Conexiones eléctricas
Conexiones eléctricas

La resistencia se puede conectar de cualquier manera, pero tenga cuidado con la dirección del transistor y del diodo. El cátodo del diodo debe estar conectado al cable + 5V (rojo) y el ánodo debe estar conectado al cable GND (negro). Verifique su documento de transistor para los pines del emisor, la base y el colector. La tierra del ventilador debe estar conectada al colector y la tierra de Rpi debe estar conectada al emisor

Para controlar el ventilador, necesitamos utilizar un transistor que se utilizará en la configuración de colector abierto. Al hacer esto, tenemos un interruptor que conectará o desconectará el cable de tierra del ventilador a la tierra de la frambuesa pi.

Un transistor NPN BJT conduce dependiendo de la corriente que fluye en su puerta. La corriente que se permitirá fluir desde el colector (C) al emisor (E) es:

Ic = B * Ib

Ic es la corriente que fluye a través del colector del emisor, Ib es la corriente que fluye a través de la base hacia el emisor y B (beta) es un valor que depende de cada transistor. Aproximamos B = 100.

Como nuestro ventilador tiene una potencia nominal de 200 mA, necesitamos al menos 2 mA a través de la base del transistor. La tensión entre la base y el emisor (Vbe) se considera constante y Vbe = 0, 7V. Esto significa que cuando el GPIO está encendido, tenemos 3.3 - 0.7 = 2.6V en la resistencia. Para tener 2 mA a través de esa resistencia, necesitamos una resistencia de, como máximo, 2.6 / 0.002 = 1300 ohmios. Usamos una resistencia de 1000 ohmios para simplificar y mantener un margen de error. Tendremos 2.6mA a través del pin GPIO que es totalmente seguro.

Como un ventilador es básicamente un motor eléctrico, es una carga inductiva. Esto significa que cuando el transistor deja de conducir, la corriente en el ventilador seguirá fluyendo mientras una carga inductiva intenta mantener la corriente constante. Esto daría como resultado un alto voltaje en el pin de tierra del ventilador y podría dañar el transistor. Por eso necesitamos un diodo en paralelo con el ventilador que hará que la corriente fluya constantemente por el motor. Este tipo de configuración de diodo se llama diodo de volante.

Paso 3: programa para controlar la velocidad del ventilador

Para controlar la velocidad del ventilador, utilizamos una señal PWM de software de la biblioteca RPi. GPIO. Una señal PWM está bien adaptada para impulsar motores eléctricos, ya que su tiempo de reacción es muy alto en comparación con la frecuencia PWM.

Utilice el programa calib_fan.py para encontrar el valor FAN_MIN ejecutando en la terminal:

python calib_fan.py

Verifique varios valores entre 0 y 100% (debe estar alrededor del 20%) y vea cuál es el valor mínimo para que su ventilador se encienda.

Puede cambiar la correspondencia entre la temperatura y la velocidad del ventilador al comienzo del código. Debe haber tantos tempSteps como valores de speedSteps. Este es el método que se usa generalmente en las placas base de PC, moviendo puntos en un gráfico de 2 ejes Temp / Speed.

Paso 4: Ejecute el programa al inicio

Para ejecutar el programa automáticamente al inicio, hice un script bash donde coloco todos los programas que quiero iniciar, y luego lanzo este script bash al inicio con rc.locale

  1. Cree un directorio / home / pi / Scripts / y coloque el archivo fan_ctrl.py dentro de ese directorio.
  2. En el mismo directorio, cree un archivo llamado launcher.sh y copie el siguiente script.
  3. Edite el archivo /etc/rc.locale y agregue una nueva línea antes de la "salida 0": sudo sh '/home/pi/Scripts/launcher.sh'

secuencia de comandos launcher.sh:

#! / bin / sh # launcher.sh # navegue al directorio de inicio, luego a este directorio, luego ejecute el script de Python, luego vuelva a homelocalecd / cd / home / pi / Scripts / sudo python3./fan_ctrl.py & cd /

Si desea usarlo con OSMC, por ejemplo, debe iniciarlo como un servicio con systemd.

  1. Descargue el archivo fanctrl.service.
  2. Verifique la ruta a su archivo de Python.
  3. Coloque fanctrl.service en / lib / systemd / system.
  4. Finalmente, habilite el servicio con sudo systemctl enable fanctrl.service.

Este método es más seguro, ya que el programa se reiniciará automáticamente si el usuario o el sistema lo matan.

Recomendado: