Dans ce cours on va voir un exemple simple d’utilisation des GPIOS de la Raspberry Pi avec le branchement d’une LED. On verra comment faire clignoter celle-ci et varier la luminosité de la LED grâce au PWM.  

Voici le circuit pour relier votre LED à la Raspberry Pi :

La carte à des GPIOS qui fonctionnent en +3.3V. On utilise donc une résistance de 220 ohms afin de limiter le courant en entrée de la LED.

Programmation

Voici le programme pour faire clignoter la LED :

import RPi.GPIO as GPIO
import time

# Configuration des broches
led_pin = 17

# Configuration initiale de la GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin, GPIO.OUT)

try:
    # Faire clignoter la LED pendant 10 secondes
    for _ in range(10):
        GPIO.output(led_pin, GPIO.HIGH)  # Allumer la LED
        time.sleep(0.5)  # Attendre 0.5 secondes
        GPIO.output(led_pin, GPIO.LOW)  # Éteindre la LED
        time.sleep(0.5)  # Attendre 0.5 secondes

finally:
    # Nettoyer les ressources GPIO
    GPIO.cleanup()

Voici le programme pour faire varier la luminosité de la LED :

import RPi.GPIO as GPIO
import time

# Configuration des broches
led_pin = 17

# Configuration initiale de la GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin, GPIO.OUT)

# Configuration du PWM
pwm_frequency = 1000  # Fréquence PWM en Hertz
pwm = GPIO.PWM(led_pin, pwm_frequency)

try:
    pwm.start(0)  # Démarre le PWM avec un rapport cyclique de 0%

    # Faire varier l'intensité de la LED pendant 10 secondes
    for duty_cycle in range(0, 101, 5):
        pwm.ChangeDutyCycle(duty_cycle)
        time.sleep(0.5)

    for duty_cycle in range(100, -1, -5):
        pwm.ChangeDutyCycle(duty_cycle)
        time.sleep(0.5)

finally:
    # Nettoyer les ressources GPIO
    pwm.stop()
    GPIO.cleanup()