Início › Componentes › Servo Motor
⬤ Intermédio

⚙️ Servo Motor SG90

Controlar a posição angular de 0° a 180° com a biblioteca Servo.

⏱️ Duração: 30 min
🧩 Componentes: Servo SG90

Como Funciona o Servo SG90?

Um servo motor combina motor DC, redução e circuito de controlo. Recebe um sinal PWM e posiciona o eixo no ângulo correspondente (0° a 180°).

📌 Pinagem (fios)

FioCor típicaLigação
SinalLaranja / AmareloPino Digital (ex: 9)
VCCVermelho5V
GNDCastanho / PretoGND
⚠️O servo pode consumir até 500mA sob carga. Se o Arduino reiniciar ao mover o servo, alimenta-o pelo pino Vin ou por uma fonte externa de 5V.

Exercício 1 — Posição Fixa

ex1_servo_posicao.ino
#include <Servo.h>

Servo meuServo;

void setup() {
  meuServo.attach(9);    // Pino do servo
}

void loop() {
  meuServo.write(0);     // Vai para 0°
  delay(1000);
  meuServo.write(90);    // Vai para 90°
  delay(1000);
  meuServo.write(180);   // Vai para 180°
  delay(1000);
}

Exercício 2 — Varredura Suave

ex2_servo_sweep.ino
#include <Servo.h>

Servo meuServo;

void setup() {
  meuServo.attach(9);
}

void loop() {
  // 0° → 180°
  for (int pos = 0; pos <= 180; pos++) {
    meuServo.write(pos);
    delay(10);            // Mais lento = mais suave
  }
  // 180° → 0°
  for (int pos = 180; pos >= 0; pos--) {
    meuServo.write(pos);
    delay(10);
  }
}

Exercício 3 — Controlo com Potenciómetro

ex3_servo_pot.ino
#include <Servo.h>

Servo meuServo;
const int POT = A0;

void setup() {
  meuServo.attach(9);
}

void loop() {
  int leitura = analogRead(POT);          // 0–1023
  int angulo  = map(leitura, 0, 1023, 0, 180); // 0–180°
  meuServo.write(angulo);
  delay(15);
}
Próximo: Temperatura →