PR.FT5_15·Kit RPi›Servo MotorPróximo →
⬤ Intermédio · SG90 · PWM 50Hz

⚙️ Servo Motor SG90

Controlar posição angular do servo SG90 com PWM a 50Hz. Varredura de 0° a 180° e posicionamento preciso via Python.

Circuito

Fio Laranja (sinal) → GPIO 18
Fio Vermelho (VCC) → 5V (pino 2)
Fio Castanho/Preto (GND) → GND (pino 6)
⚠️
O servo precisa de 5V para funcionar corretamente. Nunca alimentar com 3.3V. O sinal de controlo no GPIO (3.3V) é suficiente — não ligar o 5V ao pino de sinal.

Como funciona o PWM no servo

Duty cycleÂnguloPosição
2.5%0°Extremo esquerdo
7.5%90°Centro
12.5%180°Extremo direito

Exercício 1 — Varredura automática

Python · servo_sweep.py
import RPi.GPIO as GPIO
import time

SERVO = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(SERVO, GPIO.OUT)

# PWM a 50Hz (período 20ms)
pwm = GPIO.PWM(SERVO, 50)
pwm.start(0)

def angulo(graus):
    # Converter graus para duty cycle (2.5% a 12.5%)
    dc = 2.5 + (graus / 180) * 10
    pwm.ChangeDutyCycle(dc)
    time.sleep(0.3)
    pwm.ChangeDutyCycle(0)  # evitar vibração

try:
    while True:
        for grau in range(0, 181, 10):
            angulo(grau)
        for grau in range(180, -1, -10):
            angulo(grau)
except KeyboardInterrupt:
    pwm.stop()
    GPIO.cleanup()