Bird
Raised Fist0
Raspberry Piprogramming~5 mins

LED brightness control in Raspberry Pi - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is PWM and why is it used for LED brightness control?
PWM stands for Pulse Width Modulation. It controls LED brightness by switching the LED on and off very fast. The longer the LED is on compared to off, the brighter it looks.
Click to reveal answer
beginner
How do you set up a GPIO pin on Raspberry Pi for PWM to control an LED?
You first import the GPIO library, set the pin mode to BCM or BOARD, then set the pin as output. After that, you create a PWM instance on that pin with a frequency, and start it with a duty cycle.
Click to reveal answer
beginner
What does the duty cycle in PWM represent?
The duty cycle is the percentage of time the signal is ON during one cycle. For example, 50% means the LED is on half the time and off half the time, making it appear half as bright.
Click to reveal answer
intermediate
Why can't we just use a resistor to change LED brightness instead of PWM?
Using a resistor changes current but wastes power as heat and is less efficient. PWM controls brightness by switching on/off quickly, saving power and allowing smooth brightness control.
Click to reveal answer
beginner
What Python library is commonly used on Raspberry Pi to control GPIO pins for LED brightness?
The RPi.GPIO library is commonly used. It allows you to set up pins, create PWM signals, and control LED brightness easily.
Click to reveal answer
What does PWM stand for in LED brightness control?
APulse Width Modulation
BPower Wave Management
CPulse Wave Measurement
DPower Width Modulation
In PWM, what happens if the duty cycle is 100%?
ALED is fully on
BLED is off
CLED blinks slowly
DLED is half bright
Which Raspberry Pi pin mode can be used to refer to pins by their physical location?
ABCM
BBOARD
CPWM
DGPIO
Why is PWM preferred over using a resistor to control LED brightness?
APWM wastes more power
BResistor is more efficient
CPWM allows smooth brightness control and saves power
DResistor changes color
Which Python command starts PWM on a GPIO pin with a duty cycle of 75%?
AGPIO.output(75)
BGPIO.setup(75)
Cpwm.start(75)
Dpwm.ChangeDutyCycle(75)
Explain how PWM controls LED brightness on a Raspberry Pi.
Think about how turning the LED on and off quickly changes how bright it looks.
You got /3 concepts.
    Describe the steps to set up PWM on a Raspberry Pi GPIO pin to control an LED.
    Remember the order of commands to prepare the pin and start PWM.
    You got /5 concepts.

      Practice

      (1/5)
      1. What does PWM stand for in the context of controlling LED brightness on a Raspberry Pi?
      easy
      A. Pulse Wire Mode
      B. Power Wave Management
      C. Pin Wiring Method
      D. Pulse Width Modulation

      Solution

      1. Step 1: Understand PWM meaning

        PWM is a technique used to control power by switching it on and off quickly.
      2. Step 2: Match PWM to full form

        Pulse Width Modulation means changing the width of the pulse to control power, which fits LED brightness control.
      3. Final Answer:

        Pulse Width Modulation -> Option D
      4. Quick Check:

        PWM = Pulse Width Modulation [OK]
      Hint: PWM controls brightness by changing pulse width [OK]
      Common Mistakes:
      • Confusing PWM with power management
      • Thinking PWM is a wiring method
      • Mixing up acronyms
      2. Which of the following is the correct way to start PWM on GPIO pin 18 with a frequency of 1000 Hz using RPi.GPIO?
      easy
      A. pwm = GPIO.PWM(18, 1000); pwm.start(0)
      B. pwm = GPIO.PWM(18); pwm.start(1000)
      C. pwm = GPIO.PWM(1000, 18); pwm.start(0)
      D. pwm = GPIO.PWM(18, 0); pwm.start(1000)

      Solution

      1. Step 1: Check PWM constructor parameters

        RPi.GPIO PWM takes pin number first, then frequency in Hz.
      2. Step 2: Verify start method usage

        start() takes initial duty cycle (0-100), so start(0) is correct for off initially.
      3. Final Answer:

        pwm = GPIO.PWM(18, 1000); pwm.start(0) -> Option A
      4. Quick Check:

        GPIO.PWM(pin, freq) then start(duty) [OK]
      Hint: PWM(pin, frequency) then start(duty cycle) [OK]
      Common Mistakes:
      • Swapping frequency and pin
      • Starting PWM with frequency instead of duty
      • Using zero frequency
      3. What will be the output brightness level of the LED after running this code snippet?
      import RPi.GPIO as GPIO
      GPIO.setmode(GPIO.BCM)
      GPIO.setup(18, GPIO.OUT)
      pwm = GPIO.PWM(18, 500)
      pwm.start(0)
      pwm.ChangeDutyCycle(75)
      medium
      A. LED will be at 25% brightness
      B. LED will be off
      C. LED will be at 75% brightness
      D. Code will cause an error

      Solution

      1. Step 1: Understand duty cycle effect

        Duty cycle 75 means LED receives power 75% of the time, so brightness is 75%.
      2. Step 2: Check code correctness

        Code sets up PWM on pin 18 at 500 Hz, starts at 0, then changes duty cycle to 75 correctly.
      3. Final Answer:

        LED will be at 75% brightness -> Option C
      4. Quick Check:

        ChangeDutyCycle(75) = 75% brightness [OK]
      Hint: Duty cycle % equals brightness % [OK]
      Common Mistakes:
      • Confusing duty cycle with frequency
      • Thinking 0 means full brightness
      • Forgetting to start PWM before changing duty
      4. Identify the error in this code that controls LED brightness and fix it:
      import RPi.GPIO as GPIO
      GPIO.setmode(GPIO.BCM)
      GPIO.setup(18, GPIO.OUT)
      pwm = GPIO.PWM(18, 1000)
      pwm.ChangeDutyCycle(50)
      pwm.start(50)
      GPIO.cleanup()
      medium
      A. Frequency 1000 is too high, use 100
      B. ChangeDutyCycle called before start; swap their order
      C. GPIO.cleanup() should be before pwm.start()
      D. Missing GPIO.setwarnings(False)

      Solution

      1. Step 1: Check PWM start and ChangeDutyCycle order

        ChangeDutyCycle must be called after pwm.start(), not before.
      2. Step 2: Correct the order

        Swap lines so pwm.start(50) comes before pwm.ChangeDutyCycle(50).
      3. Final Answer:

        ChangeDutyCycle called before start; swap their order -> Option B
      4. Quick Check:

        start() must come before ChangeDutyCycle() [OK]
      Hint: Always start PWM before changing duty cycle [OK]
      Common Mistakes:
      • Calling ChangeDutyCycle before start
      • Cleaning up GPIO too early
      • Incorrect frequency assumptions
      5. You want to smoothly increase LED brightness from 0% to 100% over 5 seconds using PWM on pin 18. Which code snippet correctly implements this?
      hard
      A. import time for dc in range(0, 101): pwm.ChangeDutyCycle(dc) time.sleep(0.05)
      B. import time for dc in range(0, 101, 10): pwm.ChangeDutyCycle(dc) time.sleep(0.5)
      C. import time for dc in range(0, 101, 20): pwm.ChangeDutyCycle(dc) time.sleep(1)
      D. import time for dc in range(0, 51): pwm.ChangeDutyCycle(dc*2) time.sleep(0.1)

      Solution

      1. Step 1: Calculate total steps and delay

        To increase from 0 to 100 in 5 seconds smoothly, small steps with short delay are needed.
      2. Step 2: Analyze each option timing

        import time for dc in range(0, 101): pwm.ChangeDutyCycle(dc) time.sleep(0.05) uses 101 steps with 0.05s delay = 5.05s total, smooth increase.
      3. Final Answer:

        import time for dc in range(0, 101): pwm.ChangeDutyCycle(dc) time.sleep(0.05) -> Option A
      4. Quick Check:

        101 steps * 0.05s = ~5 seconds smooth ramp [OK]
      Hint: Use small steps with short delay for smooth brightness [OK]
      Common Mistakes:
      • Using too few steps causing jumps
      • Incorrect total time calculation
      • Multiplying duty cycle incorrectly
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard