🛠 Variateur d'intensité : faire varier une LED en PWM matériel

Raspberry Pi 4 Model B (2019) — Ficha de placa · intermediaire · Schéma : IMG-model-4b-intermediaire-1-model4b-pwm-led.svg — Signal PWM sur GPIO18 (broche 12) vers LED avec résistance, courbe de rapport cyclique 0 à 100 %

Objetivos

Utilizar la salida PWM por hardware del BCM2711 (el SoC dispone de un PWM por hardware) para variar la luminosidad de un LED: ciclo de trabajo, frecuencia, respiración (breathing). Activarás el overlay de device tree y luego lo controlarás desde la línea de comandos y en Python.

Material

Código completo

# 1) Activer le PWM : sudo raspi-config -> Interface Options -> PWM
#    ou ajouter dtoverlay=pwm-2chan dans /boot/firmware/config.txt
sudo reboot
gpioset --pwm gpiochip0 18=100=0     # 0 % de rapport cyclique
for d in 100 75 50 25 0; do echo "Duty $d %"; gpioset --pwm gpiochip0 18=$d=0; sleep 1; done
# breathing.py - respiration de la LED via gpiozero
from gpiozero import PWMLED
from signal import pause
led = PWMLED(18)          # GPIO18, PWM materiel
led.pwm_frequency = 1000  # Hz
led.source = "pulse"      # oscillation continue du rapport cyclique
pause

Verificación esperada

El LED se atenúa progresivamente en cada paso del shell, y luego respira continuamente con el script de Python. Al 0 % está apagado, al 100 % a plena potencia; el ojo percibe la variación gracias a una frecuencia de varios cientos de Hz.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales