🛠 Variation d'intensité d'une LED avec le PWM matériel (GPIO18)

Raspberry Pi Model B+ (2014) — Hoja de placa · intermediaire · Schéma : IMG-model-b-plus-intermediaire-1-modelbp-pwm-led.svg — LED avec résistance 330 Ω sur GPIO18 (broche 12), la broche PWM matérielle du BCM2835, GND en broche 14 ; le signal carré 200 Hz est dessiné en encart.

Objetivos

Domar la modulación de ancho de pulso (PWM): hacer «respirar» un LED variando el ciclo de trabajo. El BCM2835 del Model B+ expone una salida PWM por hardware en GPIO18 (pin 12) —la única del conector de 40 pines disponible por defecto— garantizada sin parpadeos incluso bajo carga de CPU.

Material

Código completo

sudo apt install -y python3-rpi.gpio
sudo python3 fade.py
#!/usr/bin/env python3
"""Respiration LED sur GPIO18 (PWM matérielle) — Model B+."""
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
p = GPIO.PWM(18, 200)                 # 200 Hz : inodore pour l'œil
p.start(0)
try:
    while True:
        up = range(0, 101, 5)         # rampe montante
        down = range(95, -1, -5)      # rampe descendante
        for dc in list(up) + list(down):
            p.ChangeDutyCycle(dc)     # 0 % = éteinte, 100 % = pleine
            time.sleep(0.05)
finally:
    p.stop
    GPIO.cleanup

Verificación esperada

El LED sube y baja de brillo en bucle, sin parpadeo perceptible. Un osciloscopio en GPIO18 muestra una señal cuadrada a 200 Hz cuyo ciclo de trabajo evoluciona. Ctrl+C detiene el programa correctamente.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales