gpiozero makes it easy to control hardware parts on a Raspberry Pi using simple Python code. It hides complex details so you can focus on your project.
You want to turn on an LED without writing complicated code.
You need to read a button press to control something.
You want to control motors or sensors with easy commands.
You are learning Raspberry Pi hardware and want simple examples.
You want to build a project quickly without deep hardware knowledge.
Syntax
Raspberry Pi
from gpiozero import LED
led = LED(17)
led.on()
led.off()
Import the device class (like LED) from gpiozero.
Create an object with the GPIO pin number connected to the device.
Examples
Read a button state easily with gpiozero.
Raspberry Pi
from gpiozero import Button
button = Button(2)
if button.is_pressed:
print('Button pressed!')
Control a motor's direction with simple commands.
Raspberry Pi
from gpiozero import Motor
motor = Motor(forward=4, backward=14)
motor.forward()
Make an LED blink without writing loops.
Raspberry Pi
from gpiozero import LED
led = LED(17)
led.blink(on_time=1, off_time=1)
Sample Program
This program turns an LED on and off three times with a 1-second pause. It shows how simple it is to control hardware using gpiozero.
Raspberry Pi
from gpiozero import LED
from time import sleep
led = LED(17)
for _ inrange(3):
led.on()
print('LED is ON')
sleep(1)
led.off()
print('LED is OFF')
sleep(1)
OutputSuccess
Important Notes
gpiozero works with many devices like LEDs, buttons, motors, and sensors.
It uses simple Python objects and methods to control hardware easily.
It helps beginners avoid complex setup and focus on learning.
Summary
gpiozero simplifies hardware control on Raspberry Pi with easy Python code.
You can control devices like LEDs and buttons with just a few lines.
It is great for beginners and quick project building.
Practice
(1/5)
1. What is the main advantage of using gpiozero on a Raspberry Pi?
easy
A. It only works with LEDs and no other devices.
B. It requires writing complex C code for hardware control.
C. It allows easy control of hardware devices with simple Python code.
D. It replaces the need for any physical wiring.
Solution
Step 1: Understand gpiozero purpose
gpiozero is designed to simplify hardware control on Raspberry Pi using Python.
Step 2: Compare options
It allows easy control of hardware devices with simple Python code. correctly states it allows easy control with simple Python code. Other options are incorrect because gpiozero does not require complex C code, supports many devices beyond LEDs, and does not remove the need for wiring.
Final Answer:
It allows easy control of hardware devices with simple Python code. -> Option C
Quick Check:
gpiozero simplifies hardware control = It allows easy control of hardware devices with simple Python code. [OK]
Hint: Remember gpiozero means easy Python hardware control [OK]
Common Mistakes:
Thinking gpiozero only works with LEDs
Believing gpiozero replaces wiring
Assuming it needs complex code
2. Which of the following is the correct way to import the LED class from gpiozero in Python?
easy
A. import gpiozero.LED
B. import LED from gpiozero
C. from gpiozero import led
D. from gpiozero import LED
Solution
Step 1: Recall Python import syntax
The correct syntax to import a class from a module is: from module import ClassName.
Step 2: Check options
from gpiozero import LED matches this syntax exactly with correct capitalization. import gpiozero.LED is invalid syntax, import LED from gpiozero reverses the import order (JavaScript syntax), and from gpiozero import led uses lowercase 'led' which is incorrect.
Final Answer:
from gpiozero import LED -> Option D
Quick Check:
Correct Python import syntax = from gpiozero import LED [OK]
Hint: Use 'from module import Class' for classes [OK]
Common Mistakes:
Using wrong import syntax
Incorrect capitalization of class name
Trying to import with 'import Class from module'
3. What will be the output of this code snippet using gpiozero?
from gpiozero import LED
from time import sleep
led = LED(17)
led.on()
sleep(1)
print(led.is_lit)
medium
A. False
B. True
C. 1
D. None
Solution
Step 1: Understand the code actions
The code imports LED, creates an LED object on pin 17, turns it on, waits 1 second, then prints if the LED is lit.
Step 2: Determine the output of led.is_lit
Since led.on() was called, led.is_lit returns True, so the printed output is True.
Final Answer:
True -> Option B
Quick Check:
LED turned on means is_lit = True [OK]
Hint: led.on() sets is_lit True immediately [OK]
Common Mistakes:
Expecting False because of sleep
Thinking is_lit returns 1 or None
Confusing method names
4. Identify the error in this gpiozero code snippet:
A. button.pressed is an event, not a property to assign.
B. Button pin number 2 is invalid.
C. print(button.is_pressed) should be print(button.pressed)
D. You cannot assign True to button.pressed; it's a method.
Solution
Step 1: Understand gpiozero Button attributes
In gpiozero, button.pressed is an event handler property, not a boolean you can assign.
Step 2: Identify the error
Assigning True to button.pressed is incorrect; it should be used to assign a function callback. The correct property to check button state is button.is_pressed.
Final Answer:
button.pressed is an event, not a property to assign. -> Option A
Quick Check:
pressed is event handler, not assignable boolean [OK]
Hint: pressed is event, is_pressed is state boolean [OK]
Common Mistakes:
Assigning boolean to event handler
Confusing is_pressed and pressed
Assuming pin 2 is invalid
5. You want to control two LEDs connected to pins 17 and 27 using gpiozero. Which code snippet correctly turns on both LEDs for 2 seconds, then turns them off?
hard
A. from gpiozero import LED
from time import sleep
led1 = LED(17)
led2 = LED(27)
led1.on()
led2.on()
sleep(2)
led1.off()
led2.off()
B. from gpiozero import LED
from time import sleep
led1 = LED(17)
led2 = LED(27)
led1.on()
sleep(2)
led2.on()
led1.off()
led2.off()
C. from gpiozero import LED
from time import sleep
led1 = LED(17)
led2 = LED(27)
led1.off()
led2.off()
sleep(2)
led1.on()
led2.on()
D. from gpiozero import LED
from time import sleep
led1 = LED(17)
led2 = LED(27)
led1.on()
led2.off()
sleep(2)
led1.off()
led2.on()
Solution
Step 1: Analyze the goal
We want both LEDs on at the same time for 2 seconds, then both off.
Step 2: Check each option's sequence
from gpiozero import LED
from time import sleep
led1 = LED(17)
led2 = LED(27)
led1.on()
led2.on()
sleep(2)
led1.off()
led2.off() turns both LEDs on, waits 2 seconds, then turns both off. from gpiozero import LED
from time import sleep
led1 = LED(17)
led2 = LED(27)
led1.on()
sleep(2)
led2.on()
led1.off()
led2.off() turns on led1, waits, then led2 on (not simultaneous). from gpiozero import LED
from time import sleep
led1 = LED(17)
led2 = LED(27)
led1.off()
led2.off()
sleep(2)
led1.on()
led2.on() turns LEDs off first, then on after sleep (wrong order). from gpiozero import LED
from time import sleep
led1 = LED(17)
led2 = LED(27)
led1.on()
led2.off()
sleep(2)
led1.off()
led2.on() turns one LED on and the other off, then switches after sleep (not both on together).
Final Answer:
Code that turns both LEDs on together, waits, then turns both off. -> Option A
Quick Check:
Both LEDs on simultaneously for 2 seconds = from gpiozero import LED
from time import sleep
led1 = LED(17)
led2 = LED(27)
led1.on()
led2.on()
sleep(2)
led1.off()
led2.off() [OK]
Hint: Turn both on before sleep, then off after sleep [OK]
Common Mistakes:
Turning LEDs on/off at different times
Switching off before turning on
Not waiting with both LEDs on
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.