🛠 Variateur de lumière : PWM sur une LED

Raspberry Pi 2 Model B (2015) — Ficha de la placa · 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

Objetivos

Comprender la modulación de ancho de pulso (PWM): variar la luminosidad de un LED cambiando el ciclo de trabajo. El conector J8 del Pi 2 expone una salida PWM por hardware en GPIO18; primero utilizarás el PWM por software de RPi.GPIO (simple y flexible), y luego activarás el PWM por hardware mediante config.txt.

Material

Código completo

#!/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)  # frequence 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

Verificación esperada

El LED se intensifica y luego se atenúa en un bucle continuo (efecto respiración). Al 0 % está apagado, al 100 % a plena intensidad. Para el PWM por hardware, añade dtoverlay=pwm (o pwm-2chan) en /boot/config.txt, reinicia y luego controla /sys/class/pwm: la señal permanece exacta incluso bajo carga, a diferencia del PWM por software.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales