PWMLED lets you control how bright a light is by turning it on and off very fast. This makes the light look dimmer or brighter without changing the bulb.
PWMLED for brightness in Raspberry Pi
from gpiozero import PWMLED led = PWMLED(pin_number) led.value = brightness_level # brightness_level is a number from 0 (off) to 1 (full brightness)
The pin_number is the GPIO pin connected to the LED.
The value property controls brightness: 0 means off, 1 means fully on, and numbers in between set dim levels.
from gpiozero import PWMLED led = PWMLED(17) led.value = 0.5
from gpiozero import PWMLED led = PWMLED(18) led.value = 1
from gpiozero import PWMLED led = PWMLED(22) led.value = 0
This program changes the LED brightness on GPIO 17 from off to full brightness in steps. It waits 1 second between each change and prints the current brightness level.
from gpiozero import PWMLED from time import sleep led = PWMLED(17) for brightness in [0, 0.25, 0.5, 0.75, 1]: led.value = brightness print(f"LED brightness set to {brightness}") sleep(1) led.off()
Make sure your LED is connected with a resistor to avoid damage.
Not all GPIO pins support PWM; check your Raspberry Pi model's pinout.
Using PWMLED is better than turning the LED on/off quickly yourself because it handles timing smoothly.
PWMLED controls LED brightness by changing how much time the LED is on versus off very fast.
You set brightness with a number from 0 (off) to 1 (full brightness).
This is useful for dimming lights or creating smooth light effects.
Practice
PWMLED class control on a Raspberry Pi?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 DQuick Check:
PWMLED controls brightness = A [OK]
- Confusing brightness with color control
- Thinking PWMLED controls temperature or fan speed
led to half brightness?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.5uses correct attribute assignment with 0.5 (half brightness). Others use wrong syntax or wrong value type.Final Answer:
led.brightness = 0.5 -> Option CQuick Check:
Set brightness by attribute = C [OK]
- Calling brightness like a function
- Using integer 50 instead of 0.5
- Trying to assign to a method
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()
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 AQuick Check:
Brightness changes 0.2 to 0.8 then off = A [OK]
- Mixing order of brightness values
- Thinking brightness values cause errors
- Assuming LED stays on after off()
from gpiozero import PWMLED led = PWMLED(18) led.brightness(0.7)
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 AQuick Check:
brightness is attribute, not method = D [OK]
- Calling brightness like a function
- Assuming pin number causes error
- Thinking time import is required here
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 BQuick Check:
Brightness from 0 to 1 in steps = B [OK]
- Using integer brightness values >1
- Trying to use float step in range (not allowed)
- Decreasing brightness instead of increasing
Ready to prove it?
Pass the test and this pattern moves unknown
