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

Raspberry Pi 4 Model B (2019) — Fiche carte · 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 %

Objectifs

Utiliser la sortie PWM materielle du BCM2711 (le SoC dispose d'un PWM materielle) pour faire varier la luminosité d'une LED : rapport cyclique, fréquence, respiration (breathing). Vous activerez le overlay device tree puis piloterez en ligne de commande et en Python.

Materiel

Code complet

# 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 matériel
led.pwm_frequency = 1000  # Hz
led.source = "pulse"      # oscillation continue du rapport cyclique
pause

Verification attendue

La LED s'estompe progressivement a chaque etape du shell, puis respire en continu avec le script Python. A 0 % elle est eteinte, a 100 % pleine ; l'oeil percoit la variation grâce à une fréquence de quelques centaines de Hz.

Erreurs frequentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels