⚙️ 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 | Ângulo | Posiçã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()