GPIO stands for General Purpose Input/Output. It is a set of pins on the Raspberry Pi that can be programmed to control electronic components like LEDs or read sensors.
Click to reveal answer
beginner
Why do we need to set the GPIO pin mode before using it?
Setting the GPIO pin mode tells the Raspberry Pi if the pin will be used to send signals (output) or receive signals (input). For blinking an LED, we set it as output.
Click to reveal answer
beginner
What does the following Python code do?
GPIO.output(18, GPIO.HIGH)
This code turns on the device connected to GPIO pin 18 by sending a HIGH signal (3.3V), which can light up an LED.
Click to reveal answer
beginner
Why do we use a delay (like time.sleep) in an LED blink program?
The delay pauses the program so the LED stays on or off long enough for us to see the blinking effect clearly.
Click to reveal answer
beginner
What is the purpose of cleaning up GPIO pins at the end of a program?
Cleaning up resets the GPIO pins to a safe state, preventing unexpected behavior or damage when the program finishes.
Click to reveal answer
Which GPIO pin mode should you set to blink an LED?
AAnalog
BInput
CPWM
DOutput
✗ Incorrect
To control an LED, the pin must send signals, so it should be set as Output.
What does GPIO.HIGH mean in a Raspberry Pi program?
APin is disconnected
BPin is off
CPin is on (3.3V)
DPin is set to input
✗ Incorrect
GPIO.HIGH means the pin outputs a high voltage (3.3V), turning on connected devices like LEDs.
Why do we use time.sleep() in an LED blink program?
ATo speed up the blinking
BTo pause so the LED stays on/off visibly
CTo reset the GPIO pins
DTo read input from the LED
✗ Incorrect
time.sleep() pauses the program so the LED's on or off state is visible to our eyes.
What Python library is commonly used to control GPIO pins on Raspberry Pi?
ARPi.GPIO
Bnumpy
Cmatplotlib
Dpandas
✗ Incorrect
RPi.GPIO is the standard library to control GPIO pins on Raspberry Pi.
What should you do at the end of a GPIO program to avoid issues?
ACall GPIO.cleanup()
BDisconnect the power
CRestart the Raspberry Pi
DLeave pins as they are
✗ Incorrect
Calling GPIO.cleanup() resets pins to safe states and prevents problems in future programs.
Explain step-by-step how to write a simple program to blink an LED using Raspberry Pi GPIO pins.
Think about what you need to do to make the LED turn on and off repeatedly.
You got /9 concepts.
Why is it important to use GPIO.cleanup() in your Raspberry Pi GPIO programs?
Consider what happens if pins stay set after your program ends.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of the GPIO.setup(pin, GPIO.OUT) command in a Raspberry Pi LED blink program?
easy
A. It cleans up the GPIO pins after use.
B. It reads the input from the LED.
C. It turns the LED on immediately.
D. It sets the specified pin as an output to control the LED.
Solution
Step 1: Understand GPIO pin modes
The Raspberry Pi GPIO pins can be set as input or output. To control an LED, the pin must send signals, so it needs to be an output.
Step 2: Role of GPIO.setup
The command GPIO.setup(pin, GPIO.OUT) configures the pin as an output pin, allowing the program to turn the LED on or off.
Final Answer:
It sets the specified pin as an output to control the LED. -> Option D
Quick Check:
GPIO.setup with GPIO.OUT means output pin [OK]
Hint: Remember: setup with GPIO.OUT means output pin [OK]
Common Mistakes:
Confusing input and output pin setup
Thinking setup turns LED on
Mixing cleanup with setup
2. Which of the following is the correct way to import the GPIO library and set the pin numbering mode for a Raspberry Pi LED blink program?
easy
A. import RPi.GPIO as GPIO\nGPIO.setupmode(GPIO.BCM)
B. import RPi.GPIO as GPIO\nGPIO.setmode(GPIO.BOARD)
C. import RPi.GPIO as GPIO\nGPIO.setmode(GPIO.OUT)
D. import gpiozero\ngpiozero.setmode(GPIO.BCM)
Solution
Step 1: Importing the GPIO library
The standard library to control GPIO pins on Raspberry Pi is RPi.GPIO, imported as GPIO.
Step 2: Setting pin numbering mode
We use GPIO.setmode() to choose pin numbering style. GPIO.BOARD uses physical pin numbers, which is common for beginners.
Final Answer:
import RPi.GPIO as GPIO\nGPIO.setmode(GPIO.BOARD) -> Option B
Quick Check:
Import RPi.GPIO and setmode BOARD [OK]
Hint: Use 'import RPi.GPIO as GPIO' and 'GPIO.setmode(GPIO.BOARD)' [OK]
Common Mistakes:
Using gpiozero instead of RPi.GPIO
Wrong method names like setupmode
Setting mode to GPIO.OUT instead of BOARD or BCM
3. What will be the output behavior of this code snippet controlling an LED on pin 11?
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
for i in range(3):
GPIO.output(11, GPIO.HIGH)
time.sleep(1)
GPIO.output(11, GPIO.LOW)
time.sleep(1)
GPIO.cleanup()
medium
A. The LED will blink on and off 3 times with 1 second intervals.
B. The LED will stay on continuously for 3 seconds.
C. The LED will blink rapidly without delay.
D. The program will raise an error due to missing setup.
Solution
Step 1: Analyze the loop and GPIO output commands
The loop runs 3 times. Each time, the LED pin is set HIGH (on), waits 1 second, then set LOW (off), waits 1 second.
Step 2: Understand the LED blinking pattern
This means the LED turns on for 1 second, off for 1 second, repeated 3 times, resulting in 3 blinks.
Final Answer:
The LED will blink on and off 3 times with 1 second intervals. -> Option A
Quick Check:
Loop with sleep controls blink count and duration [OK]
Hint: Loop with sleep(1) toggles LED on/off 3 times [OK]
Common Mistakes:
Thinking LED stays on continuously
Ignoring sleep delays causing rapid blinking
Assuming missing setup causes error here
4. Identify the error in this Raspberry Pi LED blink code:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.output(18, GPIO.HIGH)
time.sleep(1)
GPIO.output(18, GPIO.LOW)
GPIO.cleanup()
medium
A. Pin 18 is not set up as output before use.
B. Missing import of time module.
C. GPIO.setmode(GPIO.BCM) conflicts with pin numbering 18 if BOARD mode expected.
D. GPIO.cleanup() should be called before output commands.
Solution
Step 1: Check pin numbering mode and pin number
The code uses GPIO.setmode(GPIO.BCM), which means pin numbers refer to Broadcom chip pins. Pin 18 is valid in BCM mode, but if the user expects physical pin numbering (BOARD), this causes confusion.
Step 2: Understand the mismatch impact
If the user wired the LED to physical pin 18 (BOARD), but code uses BCM mode, the LED won't work as expected. This is a common error mixing modes and pin numbers.
Final Answer:
GPIO.setmode(GPIO.BCM) conflicts with pin numbering 18 if BOARD mode expected. -> Option C
Quick Check:
Pin numbering mode must match wiring [OK]
Hint: Match setmode with pin numbering used [OK]
Common Mistakes:
Confusing BOARD and BCM pin numbers
Calling cleanup too early
Forgetting to import time module
5. You want to blink two LEDs connected to pins 7 and 11 alternately for 5 cycles using Raspberry Pi GPIO. Which code snippet correctly implements this behavior?
hard
A. import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
GPIO.setup(11, GPIO.OUT)
for _ in range(5):
GPIO.output(7, GPIO.HIGH)
GPIO.output(11, GPIO.LOW)
time.sleep(0.5)
GPIO.output(7, GPIO.LOW)
GPIO.output(11, GPIO.HIGH)
time.sleep(0.5)
GPIO.cleanup()
B. import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
for _ in range(5):
GPIO.output(7, GPIO.HIGH)
GPIO.output(11, GPIO.LOW)
time.sleep(1)
GPIO.cleanup()
C. import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
GPIO.setup(11, GPIO.OUT)
GPIO.output(7, GPIO.HIGH)
GPIO.output(11, GPIO.HIGH)
GPIO.cleanup()
D. import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.IN)
GPIO.setup(11, GPIO.IN)
for _ in range(5):
GPIO.output(7, GPIO.HIGH)
GPIO.output(11, GPIO.LOW)
time.sleep(0.5)
GPIO.cleanup()
Solution
Step 1: Setup pins as output and initialize GPIO
Both pins 7 and 11 are set as outputs using GPIO.setup(pin, GPIO.OUT). The mode is set to BOARD to match physical pin numbers.
Step 2: Alternate LEDs in a loop with delays
The loop runs 5 times. Inside each cycle, pin 7 is turned on and pin 11 off, then after 0.5 seconds, pin 7 is off and pin 11 on, creating alternate blinking.
Step 3: Cleanup GPIO pins after use
Calling GPIO.cleanup() resets the pins safely after blinking finishes.
Final Answer:
Code in option A correctly blinks two LEDs alternately for 5 cycles. -> Option A
Quick Check:
Alternate output with sleep and cleanup [OK]
Hint: Use two outputs toggled alternately with sleep [OK]
Common Mistakes:
Setting pins as input instead of output
Not toggling both pins alternately
Missing time delays causing no visible blink
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.