Bird
Raised Fist0
Raspberry Piprogramming~7 mins

Multiple LED patterns in Raspberry Pi

Choose your learning style10 modes available
Introduction

We use multiple LED patterns to make lights blink in different ways. This helps show different signals or fun effects.

To show different alerts using lights on a Raspberry Pi.
To create simple light shows for decorations or learning.
To test if multiple LEDs are working correctly.
To make a game or project more interactive with light signals.
Syntax
Raspberry Pi
import RPi.GPIO as GPIO
import time

# Setup GPIO pins
GPIO.setmode(GPIO.BCM)
LED_PINS = [17, 27, 22]
for pin in LED_PINS:
    GPIO.setup(pin, GPIO.OUT)

# Turn on LEDs in a pattern
for pin in LED_PINS:
    GPIO.output(pin, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(pin, GPIO.LOW)

GPIO.cleanup()

Use GPIO.setmode(GPIO.BCM) to refer to pins by their Broadcom number.

Always clean up GPIO pins with GPIO.cleanup() to avoid warnings.

Examples
This turns on each LED one by one with a short delay, then turns it off.
Raspberry Pi
for pin in LED_PINS:
    GPIO.output(pin, GPIO.HIGH)
    time.sleep(0.3)
    GPIO.output(pin, GPIO.LOW)
This blinks all LEDs on and off together three times.
Raspberry Pi
for _ in range(3):
    for pin in LED_PINS:
        GPIO.output(pin, GPIO.HIGH)
    time.sleep(1)
    for pin in LED_PINS:
        GPIO.output(pin, GPIO.LOW)
    time.sleep(1)
This lights LEDs in order, then turns them off in reverse order.
Raspberry Pi
for pin in LED_PINS:
    GPIO.output(pin, GPIO.HIGH)
    time.sleep(0.2)
for pin in reversed(LED_PINS):
    GPIO.output(pin, GPIO.LOW)
    time.sleep(0.2)
Sample Program

This program runs three LED patterns repeatedly until you stop it with Ctrl+C. It safely cleans up the pins afterward.

Raspberry Pi
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
LED_PINS = [17, 27, 22]
for pin in LED_PINS:
    GPIO.setup(pin, GPIO.OUT)

try:
    while True:
        # Pattern 1: Turn on LEDs one by one
        for pin in LED_PINS:
            GPIO.output(pin, GPIO.HIGH)
            time.sleep(0.5)
            GPIO.output(pin, GPIO.LOW)

        # Pattern 2: Blink all LEDs together
        for _ in range(3):
            for pin in LED_PINS:
                GPIO.output(pin, GPIO.HIGH)
            time.sleep(0.5)
            for pin in LED_PINS:
                GPIO.output(pin, GPIO.LOW)
            time.sleep(0.5)

        # Pattern 3: Light up in order, turn off in reverse
        for pin in LED_PINS:
            GPIO.output(pin, GPIO.HIGH)
            time.sleep(0.3)
        for pin in reversed(LED_PINS):
            GPIO.output(pin, GPIO.LOW)
            time.sleep(0.3)

except KeyboardInterrupt:
    pass

finally:
    GPIO.cleanup()
OutputSuccess
Important Notes

Make sure your LEDs have proper resistors to avoid damage.

Use try-except-finally to handle stopping the program safely.

Delays control how fast the LEDs blink or change.

Summary

Multiple LED patterns help show different light effects on Raspberry Pi.

Use loops and delays to create patterns like blinking or chasing lights.

Always clean up GPIO pins to keep your Raspberry Pi safe.

Practice

(1/5)
1. What is the main purpose of using multiple LED patterns on a Raspberry Pi project?
easy
A. To slow down the Raspberry Pi processor
B. To increase the power consumption
C. To make the project more interactive and fun
D. To permanently turn on all LEDs

Solution

  1. Step 1: Understand the role of LED patterns

    LED patterns are used to create visual effects that make projects engaging.
  2. Step 2: Identify the correct purpose

    The main goal is to make the project interactive and fun, not to waste power or harm the device.
  3. Final Answer:

    To make the project more interactive and fun -> Option C
  4. Quick Check:

    LED patterns = fun and interactive [OK]
Hint: Think about user experience, not hardware damage [OK]
Common Mistakes:
  • Confusing LED patterns with hardware issues
  • Assuming LEDs always consume too much power
  • Thinking LEDs slow down the processor
2. Which of the following is the correct way to set up GPIO pins for multiple LEDs in Python on Raspberry Pi?
easy
A. GPIO.setup(17, 18, 27, GPIO.OUT)
B. GPIO.setup([17, 18, 27], GPIO.OUT)
C. GPIO.setup(17, GPIO.OUT); GPIO.setup(18, GPIO.OUT); GPIO.setup(27, GPIO.IN)
D. GPIO.setup([17, 18, 27], GPIO.IN)

Solution

  1. Step 1: Review GPIO setup syntax

    GPIO.setup can accept a list of pins and a mode like GPIO.OUT to set multiple pins at once.
  2. Step 2: Compare options

    GPIO.setup([17, 18, 27], GPIO.OUT) correctly uses a list and GPIO.OUT. GPIO.setup(17, 18, 27, GPIO.OUT) has wrong argument format. GPIO.setup(17, GPIO.OUT); GPIO.setup(18, GPIO.OUT); GPIO.setup(27, GPIO.IN) incorrectly sets pin 27 as input. GPIO.setup([17, 18, 27], GPIO.IN) sets pins as input, not output.
  3. Final Answer:

    GPIO.setup([17, 18, 27], GPIO.OUT) -> Option B
  4. Quick Check:

    List of pins + GPIO.OUT = correct setup [OK]
Hint: Use list for multiple pins in one setup call [OK]
Common Mistakes:
  • Passing multiple pins as separate arguments
  • Setting pins as input instead of output
  • Not using a list for multiple pins
3. What will be the output of this Python code controlling LEDs on Raspberry Pi?
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup([17, 18], GPIO.OUT)

for pin in [17, 18]:
    GPIO.output(pin, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(pin, GPIO.LOW)

GPIO.cleanup()
medium
A. LED on pin 17 turns on for 0.5s, then off; then LED on pin 18 turns on for 0.5s, then off
B. Both LEDs turn on and off together for 0.5s
C. Only LED on pin 18 blinks twice
D. Syntax error due to GPIO.output usage

Solution

  1. Step 1: Analyze the for loop behavior

    The loop turns on pin 17 LED, waits 0.5 seconds, then turns it off, then repeats for pin 18.
  2. Step 2: Understand timing and output

    LEDs blink one after another, not together, each for 0.5 seconds.
  3. Final Answer:

    LED on pin 17 turns on for 0.5s, then off; then LED on pin 18 turns on for 0.5s, then off -> Option A
  4. Quick Check:

    Sequential LED blinking = LED on pin 17 turns on for 0.5s, then off; then LED on pin 18 turns on for 0.5s, then off [OK]
Hint: Check loop order and sleep timing carefully [OK]
Common Mistakes:
  • Assuming LEDs blink simultaneously
  • Confusing pin numbers
  • Thinking code has syntax errors
4. Identify the error in this Raspberry Pi LED pattern code and choose the fix:
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup([17, 18], GPIO.OUT)

for pin in [17, 18]:
    GPIO.output(pin, GPIO.HIGH)
    time.sleep(1)
GPIO.cleanup()
medium
A. Use GPIO.output([17, 18], GPIO.HIGH) instead of loop
B. Change GPIO.setup to GPIO.IN for LEDs
C. Remove GPIO.cleanup() to keep LEDs on
D. Add GPIO.output(pin, GPIO.LOW) inside the loop after sleep

Solution

  1. Step 1: Check LED on/off control in loop

    The code turns LEDs on but never turns them off, so LEDs stay lit.
  2. Step 2: Fix by turning LEDs off after delay

    Adding GPIO.output(pin, GPIO.LOW) after sleep turns LEDs off properly.
  3. Final Answer:

    Add GPIO.output(pin, GPIO.LOW) inside the loop after sleep -> Option D
  4. Quick Check:

    Turn off LEDs after on + delay [OK]
Hint: Always turn LEDs off after turning them on [OK]
Common Mistakes:
  • Forgetting to turn off LEDs
  • Setting pins as input instead of output
  • Removing cleanup causing resource issues
5. You want to create a chase LED pattern on pins 17, 18, 27, 22 where each LED lights up one after another with 0.3 seconds delay, then all turn off together. Which code snippet correctly implements this?
hard
A. for pin in [17, 18, 27, 22]: GPIO.output(pin, GPIO.HIGH) time.sleep(0.3) for pin in [17, 18, 27, 22]: GPIO.output(pin, GPIO.LOW)
B. for pin in [17, 18, 27, 22]: GPIO.output(pin, GPIO.HIGH) time.sleep(0.3) GPIO.output(pin, GPIO.LOW)
C. GPIO.output([17, 18, 27, 22], GPIO.HIGH) time.sleep(0.3) GPIO.output([17, 18, 27, 22], GPIO.LOW)
D. for pin in [17, 18, 27, 22]: GPIO.output(pin, GPIO.LOW) time.sleep(0.3) GPIO.output([17, 18, 27, 22], GPIO.HIGH)

Solution

  1. Step 1: Understand chase pattern requirements

    Each LED lights up one by one with delay, then all turn off together.
  2. Step 2: Analyze options for correct sequence

    for pin in [17, 18, 27, 22]: GPIO.output(pin, GPIO.HIGH) time.sleep(0.3) for pin in [17, 18, 27, 22]: GPIO.output(pin, GPIO.LOW) lights LEDs one by one with delay, then turns all off together. for pin in [17, 18, 27, 22]: GPIO.output(pin, GPIO.HIGH) time.sleep(0.3) GPIO.output(pin, GPIO.LOW) turns each LED on and off immediately, no chase. GPIO.output([17, 18, 27, 22], GPIO.HIGH) time.sleep(0.3) GPIO.output([17, 18, 27, 22], GPIO.LOW) turns all on at once, no chase. for pin in [17, 18, 27, 22]: GPIO.output(pin, GPIO.LOW) time.sleep(0.3) GPIO.output([17, 18, 27, 22], GPIO.HIGH) turns LEDs off first, then all on, wrong order.
  3. Final Answer:

    for pin in [17, 18, 27, 22]: GPIO.output(pin, GPIO.HIGH) time.sleep(0.3) for pin in [17, 18, 27, 22]: GPIO.output(pin, GPIO.LOW) -> Option A
  4. Quick Check:

    Sequential on + delay, then all off [OK]
Hint: Turn all off after loop, not inside it [OK]
Common Mistakes:
  • Turning LEDs off immediately inside loop
  • Turning all LEDs on at once instead of sequentially
  • Reversing on/off order
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard