🛠 Variateur de lumière : PWM sur une LED

Raspberry Pi 2 Model B (2015) — Fiche carte · intermediaire · Schéma : IMG-model-2b-intermediaire-1-model2b-pwm-led.svg — LED sur GPIO18 (sortie PWM matérielle du Pi 2), oscillogramme de rapport cyclique variable et rampe d'intensité lumineuse

Objectifs

Comprendre la modulation de largeur d'impulsion (PWM) : varier la luminosité d'une LED en faisant varier le rapport cyclique. Le connecteur J8 du Pi 2 expose une sortie PWM matérielle sur GPIO18 ; tu vas d'abord utiliser le PWM logiciel de RPi.GPIO (simple et flexible), puis activer le PWM matériel via config.txt.

Matériel

Code complet

#!/usr/bin/env python3
"""pwm_led.py — rampe d'intensite PWM (logiciel) sur GPIO18."""
import RPi.GPIO as GPIO
from time import sleep

PIN = 18  # aussi la sortie PWM materielle du J8
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN, GPIO.OUT)
pwm = GPIO.PWM(PIN, 1000)  # fréquence 1 kHz
pwm.start(0)
try:
    while True:
        for dc in range(0, 101, 5):    # monte doucement
            pwm.ChangeDutyCycle(dc)
            sleep(0.05)
        for dc in range(100, -1, -5):  # descend doucement
            pwm.ChangeDutyCycle(dc)
            sleep(0.05)
except KeyboardInterrupt:
    pass
pwm.stop
GPIO.cleanup

Vérification attendue

La LED s'intensifie puis faiblit en boucle continue (respiration). À 0 % elle est éteinte, à 100 % pleine intensité. Pour le PWM matériel, ajoute dtoverlay=pwm (ou pwm-2chan) dans /boot/config.txt, redémarre, puis pilote /sys/class/pwm : le signal reste exact même sous charge, contrairement au PWM logiciel.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels