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