PWM stands for Pulse Width Modulation. It is a technique to control the brightness of an LED by switching it on and off very quickly with varying durations.
Click to reveal answer
beginner
How does PWM control LED brightness?
PWM controls brightness by changing the ratio of ON time to OFF time in each cycle. More ON time means brighter LED; less ON time means dimmer LED.
Click to reveal answer
beginner
In Raspberry Pi, which library is commonly used to control PWMLED?
The gpiozero library is commonly used in Raspberry Pi to control PWMLED easily with simple commands.
Click to reveal answer
beginner
What is the range of brightness values you can set for PWMLED in gpiozero?
Brightness values range from 0 (LED off) to 1 (LED fully on). You can set any decimal value in between for different brightness levels.
Click to reveal answer
beginner
Write a simple Python code snippet to set a PWMLED on GPIO pin 17 to half brightness.
from gpiozero import PWMLED
led = PWMLED(17)
led.value = 0.5 # Sets brightness to 50%
Click to reveal answer
What does PWM control in an LED?
ABrightness by changing ON/OFF time ratio
BColor of the LED
CTemperature of the LED
DVoltage supplied to the LED
✗ Incorrect
PWM controls brightness by adjusting how long the LED is ON versus OFF in each cycle.
Which Python library is used to control PWMLED on Raspberry Pi?
Anumpy
Bmatplotlib
Cgpiozero
Dpandas
✗ Incorrect
gpiozero is designed for easy control of Raspberry Pi hardware including PWMLED.
What value sets the PWMLED to full brightness?
A1
B0.5
C0
D255
✗ Incorrect
A value of 1 means the LED is fully on at 100% brightness.
If you want the LED to be off using PWMLED, what value should you set?
A-1
B1
C0.5
D0
✗ Incorrect
Setting the value to 0 turns the LED off completely.
What does a PWM cycle consist of?
AOnly ON time
BON time and OFF time
COnly OFF time
DVoltage and current
✗ Incorrect
A PWM cycle has both ON and OFF times that determine brightness.
Explain how PWM controls the brightness of an LED on a Raspberry Pi.
Think about how fast switching affects how bright the LED looks.
You got /4 concepts.
Write a short Python code example to set an LED connected to GPIO 17 to 75% brightness using PWMLED.
Use the gpiozero PWMLED class and set the value property.
You got /3 concepts.
Practice
(1/5)
1. What does the PWMLED class control on a Raspberry Pi?
easy
A. The speed of the Raspberry Pi fan
B. The color of an LED by mixing red, green, and blue lights
C. The temperature of the Raspberry Pi CPU
D. The brightness of an LED by changing how long it is on and off quickly
Solution
Step 1: Understand PWMLED purpose
PWMLED is used to control LED brightness by adjusting the time it stays on and off rapidly.
Step 2: Compare options
Only The brightness of an LED by changing how long it is on and off quickly describes brightness control using on/off timing, which matches PWMLED's function.
Final Answer:
The brightness of an LED by changing how long it is on and off quickly -> Option D
Quick Check:
PWMLED controls brightness = A [OK]
Hint: PWM means brightness by fast on/off timing [OK]
Common Mistakes:
Confusing brightness with color control
Thinking PWMLED controls temperature or fan speed
2. Which of the following is the correct way to set the brightness of a PWMLED named led to half brightness?
easy
A. led.set_brightness = 0.5
B. led.brightness(0.5)
C. led.brightness = 0.5
D. led.brightness = 50
Solution
Step 1: Recall PWMLED brightness syntax
Brightness is set by assigning a float between 0 and 1 to the brightness attribute.
Step 2: Check each option
led.brightness = 0.5 uses correct attribute assignment with 0.5 (half brightness). Others use wrong syntax or wrong value type.
Final Answer:
led.brightness = 0.5 -> Option C
Quick Check:
Set brightness by attribute = C [OK]
Hint: Use led.brightness = value between 0 and 1 [OK]
Common Mistakes:
Calling brightness like a function
Using integer 50 instead of 0.5
Trying to assign to a method
3. What will be the output behavior of this code snippet?
from gpiozero import PWMLED
import time
led = PWMLED(17)
led.brightness = 0.2
time.sleep(2)
led.brightness = 0.8
time.sleep(2)
led.off()
medium
A. LED glows dimly for 2 seconds, then brightly for 2 seconds, then turns off
B. LED glows brightly for 2 seconds, then dimly for 2 seconds, then turns off
C. LED stays off the whole time
D. Code causes an error because brightness is set incorrectly
Solution
Step 1: Analyze brightness settings
First brightness is 0.2 (dim), then after 2 seconds it changes to 0.8 (bright).
Step 2: Understand timing and off command
Each brightness level lasts 2 seconds, then LED is turned off.
Final Answer:
LED glows dimly for 2 seconds, then brightly for 2 seconds, then turns off -> Option A
Quick Check:
Brightness changes 0.2 to 0.8 then off = A [OK]
Hint: Brightness values control glow level over time [OK]
Common Mistakes:
Mixing order of brightness values
Thinking brightness values cause errors
Assuming LED stays on after off()
4. Identify the error in this code that tries to set LED brightness:
from gpiozero import PWMLED
led = PWMLED(18)
led.brightness(0.7)
medium
A. Using parentheses after brightness instead of assignment
B. Wrong pin number for PWMLED
C. Missing import for time module
D. PWMLED does not support brightness control
Solution
Step 1: Check how brightness is set
Brightness is an attribute, so it should be assigned a value, not called like a function.
Step 2: Verify other options
Pin 18 is valid, time module is not needed here, and PWMLED supports brightness.
Final Answer:
Using parentheses after brightness instead of assignment -> Option A
Quick Check:
brightness is attribute, not method = D [OK]
Hint: Set brightness with =, not parentheses [OK]
Common Mistakes:
Calling brightness like a function
Assuming pin number causes error
Thinking time import is required here
5. You want to smoothly increase an LED's brightness from off to full over 5 seconds using PWMLED. Which code snippet correctly achieves this?
hard
A.
from gpiozero import PWMLED
import time
led = PWMLED(21)
for i in range(5):
led.brightness = i
time.sleep(1)
led.off()
B.
from gpiozero import PWMLED
import time
led = PWMLED(21)
for i in range(6):
led.brightness = i / 5
time.sleep(1)
led.off()
C.
from gpiozero import PWMLED
import time
led = PWMLED(21)
for i in range(0, 1, 0.2):
led.brightness = i
time.sleep(1)
led.off()
D.
from gpiozero import PWMLED
import time
led = PWMLED(21)
for i in range(5):
led.brightness = 1 - i / 5
time.sleep(1)
led.off()
Solution
Step 1: Understand brightness range and timing
Brightness must go from 0 to 1 in steps over 5 seconds, so dividing i by 5 in 6 steps (0 to 5) works.
Step 2: Check each code snippet
from gpiozero import PWMLED
import time
led = PWMLED(21)
for i in range(6):
led.brightness = i / 5
time.sleep(1)
led.off()
correctly uses i/5 for brightness from 0 to 1 in 1-second steps.
from gpiozero import PWMLED
import time
led = PWMLED(21)
for i in range(5):
led.brightness = i
time.sleep(1)
led.off()
sets brightness to integers >1 (invalid).
from gpiozero import PWMLED
import time
led = PWMLED(21)
for i in range(0, 1, 0.2):
led.brightness = i
time.sleep(1)
led.off()
uses range with float step (invalid syntax).
from gpiozero import PWMLED
import time
led = PWMLED(21)
for i in range(5):
led.brightness = 1 - i / 5
time.sleep(1)
led.off()
decreases brightness instead of increasing.
Final Answer:
Code that increases brightness smoothly from 0 to 1 over 5 seconds using i/5 steps -> Option B
Quick Check:
Brightness from 0 to 1 in steps = B [OK]
Hint: Divide loop index by max steps for smooth brightness [OK]
Common Mistakes:
Using integer brightness values >1
Trying to use float step in range (not allowed)
Decreasing brightness instead of increasing
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.