What is a duty cycle in the context of controlling a motor or LED?
Duty cycle is the percentage of time a signal is ON compared to the total time of one cycle. It controls how much power the motor or LED receives.
Click to reveal answer
beginner
How does changing the duty cycle affect an LED's brightness?
Increasing the duty cycle makes the LED brighter because it is ON for a longer time in each cycle. Decreasing it makes the LED dimmer.
Click to reveal answer
intermediate
What is PWM and why is it used for motor and LED control?
PWM (Pulse Width Modulation) is a technique that switches power ON and OFF rapidly. It controls power by adjusting the duty cycle, allowing smooth speed or brightness control.
Click to reveal answer
intermediate
In embedded C, which hardware feature is commonly used to generate PWM signals?
Timers or timer modules in microcontrollers are used to generate PWM signals by toggling output pins at set intervals.
Click to reveal answer
intermediate
Why is it better to use PWM for motor speed control instead of just changing voltage?
PWM efficiently controls motor speed without wasting power as heat, unlike changing voltage which can cause energy loss and unstable motor behavior.
Click to reveal answer
What does a 50% duty cycle mean for an LED?
ALED is ON half the time and OFF half the time
BLED is always ON
CLED is always OFF
DLED blinks twice as fast
✗ Incorrect
A 50% duty cycle means the LED is ON for half the cycle and OFF for the other half.
Which embedded C feature is typically used to create PWM signals?
ATimers
BInterrupts
CSerial communication
DADC (Analog to Digital Converter)
✗ Incorrect
Timers generate PWM by switching output pins ON and OFF at precise intervals.
What happens to motor speed if you increase the PWM duty cycle?
AMotor speed decreases
BMotor speed increases
CMotor stops
DMotor speed stays the same
✗ Incorrect
Increasing duty cycle means more power to the motor, so it spins faster.
Why is PWM preferred over varying voltage for LED brightness control?
AVarying voltage is faster
BVarying voltage is easier and better
CPWM is more energy efficient and provides smooth control
DPWM damages LEDs
✗ Incorrect
PWM saves energy and allows precise brightness control without damaging the LED.
If a PWM signal has a period of 10 ms and the ON time is 2 ms, what is the duty cycle?
A50%
B2%
C80%
D20%
✗ Incorrect
Duty cycle = (ON time / Period) * 100 = (2 ms / 10 ms) * 100 = 20%
Explain how PWM controls the brightness of an LED or the speed of a motor using duty cycle.
Think about how turning power ON and OFF quickly changes the average power.
You got /4 concepts.
Describe how you would implement duty cycle control for a motor in embedded C using a timer.
Consider how timers toggle output pins and how changing ON time affects the motor.
You got /4 concepts.
Practice
(1/5)
1. What does the duty cycle control in a motor or LED?
easy
A. The percentage of time the device is ON during each cycle
B. The voltage supplied to the device
C. The frequency of the power supply
D. The temperature of the device
Solution
Step 1: Understand duty cycle meaning
The duty cycle is the fraction of one period in which a signal or system is active.
Step 2: Relate to motor/LED control
For motors or LEDs, it controls how long the device is ON in each cycle, affecting speed or brightness.
Final Answer:
The percentage of time the device is ON during each cycle -> Option A
Quick Check:
Duty cycle = ON time percentage [OK]
Hint: Duty cycle means ON time percentage per cycle [OK]
Common Mistakes:
Confusing duty cycle with voltage
Thinking it controls frequency
Assuming it controls temperature
2. Which of the following is the correct way to set a 50% duty cycle using a timer compare register in embedded C?
easy
A. OCR0 = 0; // Full OFF
B. OCR0 = 255; // Full ON
C. OCR0 = 128; // Assuming 8-bit timer with max 255
D. OCR0 = 64; // 25% duty cycle
Solution
Step 1: Understand timer resolution
An 8-bit timer counts from 0 to 255, so max value is 255.
Step 2: Calculate 50% duty cycle value
50% of 255 is approximately 128, so setting OCR0 to 128 sets 50% duty cycle.
Final Answer:
OCR0 = 128; // Assuming 8-bit timer with max 255 -> Option C
Quick Check:
50% of 255 = 128 [OK]
Hint: Half of max timer value sets 50% duty cycle [OK]
Common Mistakes:
Using max value for 50% duty cycle
Using zero for 50% duty cycle
Confusing 25% with 50%
3. Given the code snippet below, what will be the duty cycle percentage set for the LED?
Divide duty (64) by max (255): 64 / 255 ≈ 0.25098.
Step 2: Convert ratio to percentage
Multiply by 100: 0.25098 * 100 ≈ 25.1%.
Final Answer:
25% -> Option A
Quick Check:
(64/255)*100 ≈ 25% [OK]
Hint: Divide duty by max, multiply by 100 for percentage [OK]
Common Mistakes:
Using integer division without casting
Confusing duty value with percentage
Rounding incorrectly
4. Identify the error in the following code that attempts to set a 75% duty cycle on an 8-bit timer:
unsigned char duty = 75;
unsigned char max = 255;
OCR0 = duty / max * 255;
medium
A. OCR0 register cannot be assigned directly
B. Integer division causes duty/max to be zero
C. max value should be 100, not 255
D. Duty cycle calculation is correct
Solution
Step 1: Analyze division operation
Both duty and max are unsigned char, so duty/max does integer division: 75/255 = 0 (integer).
Step 2: Effect on OCR0 assignment
Multiplying 0 by 255 results in 0, so OCR0 is set to 0, not 75% duty cycle.
Final Answer:
Integer division causes duty/max to be zero -> Option B
Quick Check:
Integer division truncates to zero [OK]
Hint: Cast to float before division to avoid zero result [OK]
Common Mistakes:
Ignoring integer division rules
Assuming OCR0 cannot be assigned
Using wrong max value
5. You want to smoothly increase the brightness of an LED from 0% to 100% duty cycle using PWM on an 8-bit timer. Which approach is best to implement this in embedded C?
hard
A. Use a fixed OCR0 value of 128 for half brightness
B. Set OCR0 to 255 once and leave it
C. Toggle the LED pin ON and OFF manually without PWM
D. Use a loop to increment OCR0 from 0 to 255 with a delay between steps
Solution
Step 1: Understand smooth brightness control
Smooth brightness change requires gradually changing the duty cycle from 0 to max.
Step 2: Implement gradual PWM change
Increment OCR0 from 0 to 255 in a loop with delays to create smooth brightness ramp.
Final Answer:
Use a loop to increment OCR0 from 0 to 255 with a delay between steps -> Option D
Quick Check:
Gradual OCR0 change = smooth brightness [OK]
Hint: Increment OCR0 gradually with delay for smooth fade [OK]
Common Mistakes:
Setting OCR0 once for full brightness only
Using fixed mid value for all brightness
Not using PWM for brightness control
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.