🛠 Refroidir le CM5 : ventilateur PWM sur le connecteur JST-SH et tachymétrie

Raspberry Pi Compute Module 5 (compute-module-5) · intermediaire · Schéma : IMG-compute-module-5-intermediaire-2-ventilateur-pwm-cm5io.svg — CM5IO Board vue de dessus avec le connecteur ventilateur JST-SH 4 broches (5 V, PWM, tachy, GND) branché à un petit ventilateur ; la ligne Fan_Tacho (GPIO29) remonte vers RP1 ; un graphique température/rotation relie le contrôle PWM à la consigne thermique.

Objetivos

La CM5 ofrece un rendimiento muy superior al de la CM4 y se calienta más (limitación térmica a 85 °C de carcasa); la placa CM5IO proporciona un conector de ventilador JST-SH de 4 pines (5 V, Fan_PWM, taquímetro, GND) y el firmware controla la PWM igual que en el Pi 5. Este tutorial: cablear el ventilador, leer el taquímetro en Fan_Tacho (GPIO29) y entender la trampa documentada: Fan_PWM se detiene al apagar, pero un ventilador alimentado por separado con 5 V puede seguir girando si la placa base no corta su alimentación.

Material

Código completo

#!/usr/bin/env python3
# rpm-ventilateur.py — lit Fan_Tacho (GPIO29) du connecteur ventilateur CM5IO.
from gpiozero import DigitalInputDevice
from time import sleep

compte = 0
def tick(_):
    global compte
    compte += 1

tach = DigitalInputDevice(29, pull_up=True, bounce_time=0.0005)
tach.when_activated = tick
sleep(5)
rpm = compte / 5 / 2 * 60          # 5 s, 2 impulsions par tour (typique)
print(f"~ {rpm:.0f} tr/min")
tach.close
# Température et état de throttle pendant la montée en charge
vcgencmd measure_temp && vcgencmd get_throttled
sudo apt install -y stress-ng && stress-ng --cpu 4 --timeout 90 &
sleep 45; python3 rpm-ventilateur.py; vcgencmd measure_temp

Verificación esperada

El script muestra una velocidad estable (p. ej. ~2000 rpm); bajo estrés, la temperatura sube y el firmware acelera el ventilador (la velocidad mostrada aumenta, get_throttled permanece en 0x0). Al apagar (sudo systemctl poweroff), el ventilador conectado al conector de la placa IO debe detenerse — si sigue girando, su placa portadora no corta los 5 V del ventilador.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales