Bird
Raised Fist0
Raspberry Piprogramming~5 mins

Servo motor control with PWM in Raspberry Pi - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does PWM stand for and why is it used to control servo motors?
PWM stands for Pulse Width Modulation. It controls servo motors by sending pulses of varying lengths to set the motor's angle.
Click to reveal answer
beginner
How does changing the pulse width affect a servo motor's position?
Changing the pulse width changes the servo's shaft angle. Short pulses move it to one end, longer pulses move it to the other end.
Click to reveal answer
beginner
Which Raspberry Pi library is commonly used for PWM control of servos?
The RPi.GPIO library is commonly used to generate PWM signals to control servo motors on Raspberry Pi.
Click to reveal answer
intermediate
What is the typical PWM frequency used for controlling standard hobby servos?
The typical PWM frequency for hobby servos is about 50 Hz, meaning 20 milliseconds per pulse cycle.
Click to reveal answer
beginner
Why is it important to clean up GPIO settings after controlling a servo on Raspberry Pi?
Cleaning up GPIO settings frees the pins and prevents conflicts or unexpected behavior when running other programs.
Click to reveal answer
What does the pulse width in PWM control for a servo motor?
AThe angle of the servo shaft
BThe speed of the servo motor
CThe voltage supplied to the servo
DThe temperature of the servo
What is the typical PWM frequency used to control a hobby servo motor?
A100 Hz
B1 kHz
C10 Hz
D50 Hz
Which Raspberry Pi library is often used to generate PWM signals for servo control?
ARPi.GPIO
BPandas
CMatplotlib
DFlask
Why should you call GPIO.cleanup() after running a servo control program?
ATo increase the servo speed
BTo reset the GPIO pins and avoid conflicts
CTo save power
DTo change the PWM frequency
If you want the servo to move to its maximum angle, what should you do with the PWM pulse width?
ASend no pulse
BSend the shortest pulse width
CSend the longest pulse width within the servo's range
DSend a pulse at 1000 Hz frequency
Explain how PWM controls the position of a servo motor on a Raspberry Pi.
Think about how changing the length of the pulse changes the servo's angle.
You got /4 concepts.
    Describe the steps to safely control a servo motor using PWM on a Raspberry Pi.
    Consider the full process from setup to cleanup.
    You got /5 concepts.

      Practice

      (1/5)
      1. What does PWM control in a servo motor connected to a Raspberry Pi?
      easy
      A. The temperature of the servo motor
      B. The angle position of the servo arm
      C. The brightness of an LED
      D. The speed of the Raspberry Pi processor

      Solution

      1. Step 1: Understand PWM role in servo control

        PWM (Pulse Width Modulation) sends signals to set the servo arm's angle by changing the pulse width.
      2. Step 2: Identify what PWM affects

        It does not control speed, brightness, or temperature but the position of the servo arm.
      3. Final Answer:

        The angle position of the servo arm -> Option B
      4. Quick Check:

        PWM controls servo angle = D [OK]
      Hint: PWM changes pulse width to set servo angle [OK]
      Common Mistakes:
      • Confusing PWM with speed control
      • Thinking PWM controls LED brightness here
      • Assuming PWM changes temperature
      2. Which of the following is the correct way to start PWM on GPIO pin 18 at 50 Hz in Python using RPi.GPIO?
      easy
      A. pwm = GPIO.PWM(18, 50); pwm.start(7.5)
      B. pwm = GPIO.PWM(50, 18); pwm.start(7.5)
      C. pwm = GPIO.PWM(18); pwm.start(50)
      D. pwm = GPIO.PWM(7.5, 18); pwm.start(50)

      Solution

      1. Step 1: Check PWM initialization syntax

        GPIO.PWM(pin, frequency) initializes PWM on the specified pin and frequency.
      2. Step 2: Verify correct parameters

        Pin 18 and frequency 50 Hz are correct; start() takes duty cycle like 7.5.
      3. Final Answer:

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

        GPIO.PWM(pin, freq) with start(duty) = B [OK]
      Hint: Remember GPIO.PWM(pin, freq) then start(duty) [OK]
      Common Mistakes:
      • Swapping pin and frequency order
      • Missing frequency argument
      • Passing duty cycle in PWM() instead of start()
      3. What will be the output angle of the servo if the duty cycle is set to 12.5% using PWM at 50 Hz?
      medium
      A. 0 degrees
      B. 90 degrees
      C. 270 degrees
      D. 180 degrees

      Solution

      1. Step 1: Understand duty cycle to angle mapping

        At 50 Hz, about 2.5% duty cycle corresponds to 0°, 7.5% to 90°, and 12.5% to 180°.
      2. Step 2: Match 12.5% duty cycle to angle

        12.5% duty cycle sets the servo to its maximum angle, 180°.
      3. Final Answer:

        180 degrees -> Option D
      4. Quick Check:

        12.5% duty cycle = 180° [OK]
      Hint: Max duty cycle ~12.5% means 180° angle [OK]
      Common Mistakes:
      • Confusing duty cycle values with angles
      • Assuming 12.5% is 90 degrees
      • Thinking servo can rotate beyond 180 degrees
      4. Given this code snippet, what is the error?
      import RPi.GPIO as GPIO
      GPIO.setmode(GPIO.BCM)
      GPIO.setup(18, GPIO.OUT)
      pwm = GPIO.PWM(18, 50)
      pwm.start(7.5)
      # Missing cleanup
      
      medium
      A. GPIO pins are not cleaned up after use
      B. PWM frequency is incorrect
      C. Duty cycle value is out of range
      D. GPIO mode is not set

      Solution

      1. Step 1: Review code for setup and cleanup

        The code sets mode, pin, and starts PWM correctly but does not call GPIO.cleanup().
      2. Step 2: Identify missing cleanup importance

        Not cleaning up GPIO pins can cause warnings or errors on next runs.
      3. Final Answer:

        GPIO pins are not cleaned up after use -> Option A
      4. Quick Check:

        Missing GPIO.cleanup() = A [OK]
      Hint: Always call GPIO.cleanup() after PWM use [OK]
      Common Mistakes:
      • Ignoring GPIO.cleanup()
      • Thinking frequency or duty cycle is wrong here
      • Forgetting to set GPIO mode
      5. You want to sweep a servo motor from 0° to 180° smoothly using PWM on Raspberry Pi. Which approach is best?
      hard
      A. Use a fixed duty cycle of 12.5% without delay
      B. Set duty cycle to 7.5% and wait for 5 seconds
      C. Change duty cycle gradually from 2.5% to 12.5% in small steps with delays
      D. Change frequency from 50 Hz to 100 Hz rapidly

      Solution

      1. Step 1: Understand servo sweeping method

        Sweeping means moving smoothly from 0° to 180°, which requires changing duty cycle gradually.
      2. Step 2: Identify correct PWM control

        Duty cycle must change from about 2.5% (0°) to 12.5% (180%) in small steps with short delays for smooth motion.
      3. Final Answer:

        Change duty cycle gradually from 2.5% to 12.5% in small steps with delays -> Option C
      4. Quick Check:

        Smooth sweep = gradual duty cycle change [OK]
      Hint: Sweep by small duty cycle steps with delays [OK]
      Common Mistakes:
      • Using fixed duty cycle for sweeping
      • Changing frequency instead of duty cycle
      • Skipping delays causing jerky motion
      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