📖 Scenario: You have a Raspberry Pi connected to a small LED light. You want to turn the LED on and off using your program. This is like flipping a switch to control a light bulb in your room.
🎯 Goal: Write a program that sets up the Raspberry Pi GPIO pin connected to the LED and turns the LED on.
📋 What You'll Learn
Use the RPi.GPIO library to control GPIO pins
Set up GPIO pin 18 as an output pin
Turn the LED on by setting GPIO pin 18 to HIGH
Print a message confirming the LED is on
💡 Why This Matters
🌍 Real World
Controlling lights, motors, or other devices connected to a Raspberry Pi in home automation or robotics.
💼 Career
Understanding GPIO output is essential for hardware programming roles involving embedded systems or IoT devices.
Progress0 / 4 steps
1
Set up GPIO and define the LED pin
Import the RPi.GPIO library as GPIO and set the GPIO mode to GPIO.BCM. Then create a variable called led_pin and set it to 18.
Raspberry Pi
Hint
Use import RPi.GPIO as GPIO to import the library. Use GPIO.setmode(GPIO.BCM) to set the pin numbering mode. Assign 18 to led_pin.
2
Configure the LED pin as output
Use GPIO.setup to set led_pin as an output pin.
Raspberry Pi
Hint
Use GPIO.setup(led_pin, GPIO.OUT) to tell the Raspberry Pi that this pin will send out signals.
3
Turn the LED on
Use GPIO.output to set led_pin to GPIO.HIGH, which turns the LED on.
Raspberry Pi
Hint
Use GPIO.output(led_pin, GPIO.HIGH) to send power to the LED and turn it on.
4
Print confirmation message
Write a print statement that outputs the text "LED is now ON".
Raspberry Pi
Hint
Use print("LED is now ON") to show the message on the screen.
Practice
(1/5)
1. What does GPIO.output(pin, GPIO.HIGH) do on a Raspberry Pi?
easy
A. It sets the pin mode to input.
B. It turns the specified pin ON by setting it to HIGH voltage.
C. It reads the current value from the specified pin.
D. It resets the Raspberry Pi GPIO pins.
Solution
Step 1: Understand GPIO.output function
The function GPIO.output(pin, value) sets the voltage level of the pin.
Step 2: Interpret GPIO.HIGH
GPIO.HIGH means turning the pin ON by applying a high voltage.
Final Answer:
It turns the specified pin ON by setting it to HIGH voltage. -> Option B
Quick Check:
GPIO.output with GPIO.HIGH = Pin ON [OK]
Hint: HIGH means ON, LOW means OFF for GPIO pins [OK]
Common Mistakes:
Confusing output with input reading
Thinking GPIO.HIGH reads pin value
Assuming it sets pin mode
2. Which of the following is the correct syntax to set GPIO pin 18 as an output pin?
easy
A. GPIO.setup(18, GPIO.INPUT)
B. GPIO.output(18, GPIO.HIGH)
C. GPIO.setup(18, GPIO.OUT)
D. GPIO.output(18, GPIO.OUT)
Solution
Step 1: Identify the function to set pin mode
GPIO.setup(pin, mode) is used to set pin mode.
Step 2: Choose correct mode for output
GPIO.OUT sets the pin as output, so GPIO.setup(18, GPIO.OUT) is correct.
Final Answer:
GPIO.setup(18, GPIO.OUT) -> Option C
Quick Check:
Pin mode output = GPIO.setup(pin, GPIO.OUT) [OK]
Hint: Use GPIO.setup(pin, GPIO.OUT) to set output mode [OK]
Common Mistakes:
Using GPIO.INPUT instead of GPIO.OUT
Trying to set output with GPIO.output before setup
Using GPIO.output to set pin mode
3. What will be the output state of pin 23 after running this code?
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.OUT)
GPIO.output(23, GPIO.LOW)
medium
A. Code will cause a runtime error.
B. Pin 23 will be ON (HIGH voltage).
C. Pin 23 will be set as input.
D. Pin 23 will be OFF (LOW voltage).
Solution
Step 1: Analyze pin setup
Pin 23 is set as output using GPIO.setup(23, GPIO.OUT).
Step 2: Check output command
GPIO.output(23, GPIO.LOW) sets pin 23 to LOW voltage, turning it OFF.
Final Answer:
Pin 23 will be OFF (LOW voltage). -> Option D
Quick Check:
GPIO.output(pin, GPIO.LOW) = Pin OFF [OK]
Hint: LOW means OFF, so pin is off after output LOW [OK]
Common Mistakes:
Assuming LOW means ON
Forgetting to set pin as output first
Confusing pin number with mode
4. Identify the error in this code snippet:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.output(17, GPIO.HIGH)
medium
A. Pin 17 is not set as output before using GPIO.output.
B. GPIO.HIGH is not a valid value for GPIO.output.
C. GPIO.setmode(GPIO.BCM) is incorrect syntax.
D. Missing import statement for GPIO.
Solution
Step 1: Check pin setup before output
The code calls GPIO.output without first setting pin 17 as output using GPIO.setup(17, GPIO.OUT).
Step 2: Confirm other parts are correct
GPIO.HIGH and GPIO.setmode(GPIO.BCM) are correct, and import is present.
Final Answer:
Pin 17 is not set as output before using GPIO.output. -> Option A
Quick Check:
Must setup pin as output before GPIO.output [OK]
Hint: Always setup pin as output before writing HIGH/LOW [OK]
Common Mistakes:
Skipping GPIO.setup for output pins
Confusing GPIO.HIGH with pin mode
Incorrect setmode usage
5. You want to blink an LED connected to pin 12 five times. Which code snippet correctly turns the LED ON and OFF using GPIO.output inside a loop?
hard
A. for i in range(5):
GPIO.output(12, GPIO.HIGH)
time.sleep(1)
GPIO.output(12, GPIO.LOW)
time.sleep(1)
B. for i in range(5):
GPIO.output(12, GPIO.LOW)
time.sleep(1)
GPIO.output(12, GPIO.HIGH)
time.sleep(1)
C. GPIO.output(12, GPIO.HIGH)
for i in range(5):
time.sleep(1)
GPIO.output(12, GPIO.LOW)
time.sleep(1)
D. for i in range(5):
GPIO.setup(12, GPIO.OUT)
GPIO.output(12, GPIO.HIGH)
GPIO.output(12, GPIO.LOW)
Solution
Step 1: Understand blinking logic
Blinking means turning LED ON (HIGH), waiting, then OFF (LOW), waiting, repeated 5 times.
Step 2: Analyze each option
for i in range(5):
GPIO.output(12, GPIO.HIGH)
time.sleep(1)
GPIO.output(12, GPIO.LOW)
time.sleep(1) correctly loops 5 times, sets pin HIGH, waits, sets LOW, waits. for i in range(5):
GPIO.output(12, GPIO.LOW)
time.sleep(1)
GPIO.output(12, GPIO.HIGH)
time.sleep(1) reverses ON/OFF order. GPIO.output(12, GPIO.HIGH)
for i in range(5):
time.sleep(1)
GPIO.output(12, GPIO.LOW)
time.sleep(1) turns ON once before loop. for i in range(5):
GPIO.setup(12, GPIO.OUT)
GPIO.output(12, GPIO.HIGH)
GPIO.output(12, GPIO.LOW) wrongly calls setup inside loop.
Final Answer:
for i in range(5):
GPIO.output(12, GPIO.HIGH)
time.sleep(1)
GPIO.output(12, GPIO.LOW)
time.sleep(1) -> Option A
Quick Check:
Blink = ON + wait + OFF + wait in loop [OK]
Hint: Turn ON then OFF with delays inside loop to blink [OK]
Common Mistakes:
Calling GPIO.setup inside loop repeatedly
Reversing ON/OFF order
Not including delays between ON and OFF
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.