To connect an LED to a Raspberry Pi using PWM (Pulse Width Modulation), you’ll need to connect the LED to one of the Pi’s GPIO (General Purpose Input/Output) pins and control its brightness with PWM. Here’s a step-by-step guide:
Materials Needed
- Raspberry Pi (any model with GPIO support)
- Breadboard
- LED (any color)
- Resistor (typically 220Ω for a standard LED)
- Jumper wires
Steps to Set Up LED with PWM on Raspberry Pi
- Set Up Hardware Connections
- Connect the longer leg (anode) of the LED to a GPIO pin on the Raspberry Pi (GPIO18 is commonly used for PWM).
- Connect the shorter leg (cathode) of the LED to the resistor and then to the GND pin on the Raspberry Pi.
- Enable PWM on the Pi
- Start your Raspberry Pi and open a terminal window.
- Ensure that you have the latest Python and RPi.GPIO library installed (or you can use the
pigpio
library for more advanced PWM).
Write Python Code for PWM
Open a new Python script (e.g., pwm_led.py
), and enter the following code:
import RPi.GPIO as GPIO
import time
# Set up GPIO
LED_PIN = 18 # Choose GPIO18 for PWM
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
# Initialize PWM
pwm_led = GPIO.PWM(LED_PIN, 1000) # Set frequency to 1kHz
pwm_led.start(0) # Start with LED off (0% duty cycle)
try:
while True:
# Gradually increase brightness
for brightness in range(0, 101, 5): # 0 to 100 percent
pwm_led.ChangeDutyCycle(brightness)
time.sleep(0.1)
# Gradually decrease brightness
for brightness in range(100, -1, -5):
pwm_led.ChangeDutyCycle(brightness)
time.sleep(0.1)
except KeyboardInterrupt:
pass # Exit gracefully on Ctrl+C
pwm_led.stop()
GPIO.cleanup()
This script sets up the LED to fade in and out by adjusting the PWM duty cycle, which controls the brightness of the LED.
- Run the Script
- Save the script and run it by typing:
- You should see the LED gradually brighten and then dim as the PWM signal changes.
Explanation of Key Parts
- PWM Frequency: Set to 1kHz, which works well for LEDs.
- Duty Cycle: Controls the brightness, where 0% is off and 100% is full brightness.
- GPIO.cleanup(): Ensures that all GPIO pins are reset when the script exits.
This setup will allow you to control the LED brightness on a Raspberry Pi using PWM.
Read more about Geekee cg6 fd vs cg6