In this course, we’ll look at a simple example of how to use the Raspberry Pi’s GPIOS by connecting a
LED. We’ll see how to make it flash and vary its brightness using PWM.
Here’s the circuit for connecting your LED to the Raspberry Pi:
The board has GPIOS which operate at +3.3V. We therefore use a 220 ohm resistor to limit the LED input current.
Here is the program to make the LED blink:
import RPi.GPIO as GPIO
import time
# Pin configuration
led_pin = 17
# Initial GPIO configuration
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin, GPIO.OUT)
try:
# Flash LED for 10 seconds
for j in range(10):
GPIO.output(led_pin, GPIO.HIGH) # Turn on LED
time.sleep(0.5) # Wait 0.5 seconds
GPIO.output(led_pin, GPIO.LOW) # Turn off LED
time.sleep(0.5) # Wait 0.5 seconds
finally:
# Clean GPIO resources
GPIO.cleanup()
Here is the program to vary the brightness of the LED:
import RPi.GPIO as GPIO
import time
# Pin configuration
led_pin = 17
# Initial GPIO configuration
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin, GPIO.OUT)
# PWM configuration
pwm_frequency = 1000 # PWM frequency in Hertz
pwm = GPIO.PWM(led_pin, pwm_frequency)
try:
pwm.start(0) # Start PWM with 0% duty cycle
# Dim the LED for 10 seconds
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:
# Clean GPIO resources
pwm.stop()
GPIO.cleanup()