📖 Scenario: You have a Raspberry Pi and want to control an LED light using the GPIO pins. To do this, you need to set up the RPi.GPIO library in your Python program.
🎯 Goal: Learn how to import and configure the RPi.GPIO library to prepare your Raspberry Pi for controlling hardware pins.
📋 What You'll Learn
Import the RPi.GPIO library with the alias GPIO
Set the GPIO mode to BCM
Set up GPIO pin number 18 as an output pin
💡 Why This Matters
🌍 Real World
Setting up the RPi.GPIO library is the first step to control hardware components like LEDs, buttons, and sensors on a Raspberry Pi.
💼 Career
Understanding GPIO setup is essential for roles in embedded systems, IoT development, and hardware prototyping using Raspberry Pi.
Progress0 / 4 steps
1
Import the RPi.GPIO library
Write the code to import the RPi.GPIO library as GPIO.
Raspberry Pi
Hint
Use the import statement to bring in the RPi.GPIO library with the name GPIO.
2
Set GPIO mode to BCM
Add a line to set the GPIO mode to GPIO.BCM using GPIO.setmode().
Raspberry Pi
Hint
Use GPIO.setmode(GPIO.BCM) to select the pin numbering system.
3
Set up GPIO pin 18 as output
Write a line to set up GPIO pin number 18 as an output pin using GPIO.setup().
Raspberry Pi
Hint
Use GPIO.setup(18, GPIO.OUT) to prepare pin 18 for output.
4
Print confirmation message
Write a print statement to display the message "GPIO setup complete".
Raspberry Pi
Hint
Use print("GPIO setup complete") to show the message.
Practice
(1/5)
1. What is the purpose of the GPIO.setmode() function in the RPi.GPIO library?
easy
A. It sets the pin numbering system to use (BOARD or BCM).
B. It cleans up all GPIO pins after use.
C. It sets the direction of a specific pin (input or output).
D. It reads the current value of a GPIO pin.
Solution
Step 1: Understand the role of GPIO.setmode()
This function tells the Raspberry Pi how to number the pins, either by physical board numbers (BOARD) or by Broadcom chip numbers (BCM).
Step 2: Differentiate from other functions
Cleaning pins is done by GPIO.cleanup(), setting pin direction is GPIO.setup(), and reading pin value is done by GPIO.input().
Final Answer:
It sets the pin numbering system to use (BOARD or BCM). -> Option A
2. Which of the following is the correct way to import the RPi.GPIO library and set the pin numbering mode to BCM?
easy
A. import RPi.GPIO as GPIO\nGPIO.setmode(GPIO.BCM)
B. import RPi.GPIO as GPIO\nGPIO.setmode(GPIO.BOARD)
C. import GPIO\nGPIO.setmode(GPIO.BCM)
D. import RPi.GPIO\nGPIO.setmode(GPIO.BCM)
Solution
Step 1: Check the correct import syntax
The standard way is to import RPi.GPIO as GPIO to use GPIO functions easily.
Step 2: Verify the setmode argument
To set pin numbering to BCM, use GPIO.setmode(GPIO.BCM). import RPi.GPIO as GPIO\nGPIO.setmode(GPIO.BCM) matches both correct import and setmode usage.
Final Answer:
import RPi.GPIO as GPIO\nGPIO.setmode(GPIO.BCM) -> Option A
Quick Check:
Import as GPIO + setmode BCM = import RPi.GPIO as GPIO\nGPIO.setmode(GPIO.BCM) [OK]
Hint: Import as GPIO and use GPIO.BCM for BCM mode [OK]
Common Mistakes:
Forgetting 'as GPIO' in import
Using BOARD instead of BCM when BCM is asked
Importing just GPIO without RPi
3. What will be the output of this code snippet?
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
print(GPIO.gpio_function(7))
Assuming pin 7 is set as output.
medium
A. 0
B. 3
C. 2
D. 1
Solution
Step 1: Understand GPIO.gpio_function()
This function returns a number representing the pin's current function. For output pins, it returns 1.
Step 2: Check pin setup
Pin 7 is set as GPIO.OUT, so gpio_function(7) returns 1.
Final Answer:
1 -> Option D
Quick Check:
Output pin function code = 1 [OK]
Hint: Output pins return 1 from gpio_function() [OK]
Common Mistakes:
Assuming gpio_function returns pin number
Confusing output code with input code
Not setting pin mode before calling gpio_function
4. Identify the error in this code snippet:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, "OUT")
GPIO.output(11, True)
GPIO.cleanup()
medium
A. Calling GPIO.cleanup() before output.
B. Using string "OUT" instead of GPIO.OUT in setup.
C. Missing GPIO.setwarnings(False) before setup.
D. Not importing time module for delays.
Solution
Step 1: Check GPIO.setup() syntax
The direction argument must be GPIO.OUT or GPIO.IN, not a string like "OUT".
Step 2: Verify other lines
GPIO.setwarnings() is optional, cleanup is correctly called last, and time module is not needed here.
Final Answer:
Using string "OUT" instead of GPIO.OUT in setup. -> Option B
Quick Check:
Pin direction must be GPIO.OUT, not "OUT" [OK]
Hint: Use GPIO.OUT constant, not string "OUT" [OK]
Common Mistakes:
Passing pin direction as string
Calling cleanup too early
Forgetting to import GPIO properly
5. You want to control an LED connected to pin 12 using BCM numbering. Which sequence of commands correctly sets up the pin and turns the LED on, then cleans up properly?
hard
A. GPIO.setmode(GPIO.BCM)\nGPIO.setup(18, GPIO.OUT)\nGPIO.output(18, True)\nGPIO.cleanup()
B. GPIO.setmode(GPIO.BOARD)\nGPIO.setup(12, GPIO.OUT)\nGPIO.output(12, True)\nGPIO.cleanup()
C. GPIO.setmode(GPIO.BCM)\nGPIO.setup(12, GPIO.OUT)\nGPIO.output(12, True)\nGPIO.cleanup()
D. GPIO.setmode(GPIO.BOARD)\nGPIO.setup(18, GPIO.OUT)\nGPIO.output(18, True)\nGPIO.cleanup()
Solution
Step 1: Match numbering mode with pin number
Pin 12 in BCM mode corresponds to GPIO12, so setmode(GPIO.BCM) and setup(12) is correct.
Step 2: Confirm output setup and cleanup
Pin is set as output, turned on with True, and cleanup is called last to reset pins.
Final Answer:
GPIO.setmode(GPIO.BCM)\nGPIO.setup(12, GPIO.OUT)\nGPIO.output(12, True)\nGPIO.cleanup() -> Option C