🛠 Variation d'intensité d'une LED en PWM

Fiche carte — Raspberry Pi Model B Revision 2 (2012) · intermediaire · Schéma : IMG-model-b-rev2-intermediaire-1-modelb2-pwm-led.svg — LED sur GPIO18 (broche PWM matériel du BCM2835) avec résistance, fondu lumineux en dégradé autour de la broche

Objectifs

Faire varier l'intensité d'une LED par MLI (PWM) sur le Model B Rev 2 : le GPIO18 (P1-12) est la broche PWM matérielle du BCM2835 ; on utilisera ici l'objet PWM de RPi.GPIO pour un fondu progressif.

Matériel

Code complet

#!/usr/bin/env python
# fondu.py - balayage PWM sur GPIO18 (broche PWM materielle du BCM2835)
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
p = GPIO.PWM(18, 1000)        # 1 kHz
p.start(0)
try:
    while True:
        for duty in list(range(0, 101, 5)) + list(range(95, -5, -5)):
            p.ChangeDutyCycle(duty)   # variation du rapport cyclique
            time.sleep(0.02)
except KeyboardInterrupt:
    pass
finally:
    p.stop
    GPIO.cleanup

Vérification attendue

La LED monte puis descend en luminosité en boucle (fondu « respiration »). À l'arrêt (Ctrl-C), elle s'éteint complètement. Un oscilloscope sur GPIO18 montrerait un créneau à 1 kHz dont le rapport cyclique évolue.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels