¡Oferta!

Micro servo 9g SG90 Motor para RC, helicópteros, aviones, robótica y Arduino

El precio original era: 6,46 €.El precio actual es: 4,00 €. Excluido IVA

Micro servo 9g SG90 Motor para modelismo RC helicópteros aviones robótica amateur arduino

31 disponibles (puede reservarse)

Domande su questo prodotto? Scrivi a Lana su WhatsApp

Categoría:

🎬 El producto en vídeo

Descripción


🛠 Descripción Completa del Micro Servo 9g SG90

El Micro Servo SG90 9g es un pequeño motor servo utilizado comúnmente en modelismo RC (helicópteros, aviones), robótica amateur, proyectos con Arduino y automatización DIY. Es apreciado por su ligereza, bajo costo y simplicidad de uso.

✅ Características Técnicas:

Especificación Valor
Modelo SG90 Micro Servo
Peso 9g
Par 1.8 kg/cm (a 4.8V)
Tensión operativa 4.8V – 6V
Ángulo de rotación Aproximadamente 180° (limitado mecánicamente)
Velocidad 0,12 seg/60° (a 4,8V)
Tipo de control PWM (modulación por ancho de pulso)
Conectores 3 pines: GND (marrón), VCC (rojo), señal (naranja)
Material de engranajes Nylon

📦 Contenido típico de la caja:

  • 1x Micro Servo SG90
  • 3x Brazos (horns)
  • 3x Tornillos

🔌 Conexión del Micro Servo SG90 con Arduino

Servo Arduino UNO
GND (marrón) GND
VCC (rojo) 5V
Señal (naranja) Pin digital (ej. D9)

⚠️ Nota: Para múltiples servomotores o cargas pesadas, usa una fuente de alimentación externa (5V) para evitar sobrecargar el Arduino.


🔧 Biblioteca Necesaria

Arduino tiene una biblioteca oficial llamada Servo.h que simplifica mucho el uso de los servos.

📦 Instalación (si no está presente):

  • Abre el IDE de Arduino
  • Ve a: Sketch > Incluir Biblioteca > Administrar bibliotecas…
  • Busca “Servo” e instala la oficial de Arduino

🧪 Ejemplo de Código Básico

🎯 Objetivo: Hacer girar el servo de 0° a 180° y viceversa

#include <Servo.h>

Servo mioServo; // Crea un oggetto servo

void setup() {
  mioServo.attach(9); // Collega il servo al pin 9
}

void loop() {
  for (int angolo = 0; angolo <= 180; angolo++) {
    mioServo.write(angolo);      // Imposta l'angolo
    delay(15);                   // Attendi che il servo si muova
  }
  delay(500);
  for (int angolo = 180; angolo >= 0; angolo--) {
    mioServo.write(angolo);
    delay(15);
  }
  delay(500);
}

💡 Ejemplos Avanzados de Uso

📍 Control mediante potenciómetro

#include <Servo.h>

Servo mioServo;
int potPin = A0; // Potenziometro collegato ad A0

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

void loop() {
  int lettura = analogRead(potPin);          // Legge il valore (0–1023)
  int angolo = map(lettura, 0, 1023, 0, 180); // Lo converte in gradi
  mioServo.write(angolo);
  delay(10);
}

🎮 Control por serial

#include <Servo.h>

Servo mioServo;

void setup() {
  Serial.begin(9600);
  mioServo.attach(9);
  Serial.println("Inserisci un angolo tra 0 e 180:");
}

void loop() {
  if (Serial.available() > 0) {
    int angolo = Serial.parseInt();
    if (angolo >= 0 && angolo <= 180) {
      mioServo.write(angolo);
      Serial.print("Angolo impostato a: ");
      Serial.println(angolo);
    } else {
      Serial.println("Valore non valido. Inserisci 0-180.");
    }
  }
}

📚 Consejos de Uso

  • No forzar el servo más allá de sus límites mecánicos (generalmente 0°–180°).
  • Evita alimentar más servos directamente desde la 5V de Arduino, usa una fuente de alimentación externa de 5V/2A para estabilidad.
  • I Los servos SG90 no son adecuados para rotación continua: si necesitas un motor que gire libremente, considera los servos de rotación continua o los motores con engranajes.

⚙️ Aplicaciones Comunes

  • Control de timón/aletas en modelos RC
  • Movimiento de brazos robóticos
  • Cerraduras electrónicas
  • Mecanismos animatrónicos
  • Puntado de sensores o cámaras (pan/tilt)

¡Perfecto! Ampliemos la guía para incluir:

  1. ✅ Control por Bluetooth (HC-05)
  2. ✅ Control por Wi-Fi con ESP8266/ESP32
  3. ✅ Control de múltiples servos simultáneamente
  4. ✅ Integración con sensores (por ejemplo, sensor de distancia ultrasónico HC-SR04)

🟦 1. Control por Bluetooth con módulo HC-05

🎯 Objetivo:

Controlar el servo SG90 a través de Bluetooth desde una aplicación en el teléfono inteligente (por ejemplo, una aplicación como Serial Bluetooth Terminal en Android).

🔌 Conexión HC-05:

HC-05 Arduino UNO
VCC 5V
GND GND
TXD Pin 10
RXD Pin 11 (⚠️ con un divisor de tensión de 3.3V)

⚠️ Usa un divisor resistivo (1kΩ + 2kΩ) para reducir la señal de 5V a 3.3V hacia el RXD del módulo HC-05.

🔧 Código Arduino con SoftwareSerial:

#include <Servo.h>
#include <SoftwareSerial.h>

Servo mioServo;
SoftwareSerial BT(10, 11); // RX, TX

void setup() {
  mioServo.attach(9);
  BT.begin(9600);
}

void loop() {
  if (BT.available()) {
    int angolo = BT.parseInt();
    if (angolo >= 0 && angolo <= 180) {
      mioServo.write(angolo);
    }
  }
}

🔄 Prueba: Envía desde la aplicación móvil un número entre 0 y 180.


🌐 2. Control Servo a través de Wi-Fi (ESP8266 o ESP32)

⚠️ Si usas ESP8266 o ESP32, NO uses Arduino UNO. Los pines son diferentes y el servo debe ser alimentado con cuidado.

🧠 Ejemplo con ESP8266 (NodeMCU):

  • Servo → alimentado con fuente externa 5V y GND compartido
  • Señal → conectado a D1 (GPIO 5)

🔧 Código base para un servidor web que controla el servo:

#include <ESP8266WiFi.h>
#include <Servo.h>

Servo mioServo;
const char* ssid = "TuaReteWiFi";
const char* password = "PasswordWiFi";

WiFiServer server(80);

void setup() {
  mioServo.attach(D1); // GPIO 5
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  server.begin();
}

void loop() {
  WiFiClient client = server.available();
  if (client) {
    String req = client.readStringUntil('r');
    client.flush();

    if (req.indexOf("/angle=") != -1) {
      int angolo = req.substring(req.indexOf("=")+1).toInt();
      if (angolo >= 0 && angolo <= 180) {
        mioServo.write(angolo);
      }
    }

    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<html><body>");
    client.println("<h1>Controllo Servo</h1>");
    client.println("<form>Angolo (0-180): <input type='number' name='angle'><input type='submit'></form>");
    client.println("</body></html>");
  }
}

💻 Ve al dirección IP asignada (ej. 192.168.1.42) en el navegador.


⚙️ 3. Controlar Múltiples Servos Simultáneamente

#include <Servo.h>

Servo servo1, servo2, servo3;

void setup() {
  servo1.attach(9);
  servo2.attach(10);
  servo3.attach(11);
}

void loop() {
  for (int ang = 0; ang <= 180; ang++) {
    servo1.write(ang);
    servo2.write(180 - ang);
    servo3.write(ang / 2);
    delay(15);
  }
}

✅ Cada Servo se conecta a un pin diferente. Arduino UNO puede manejar hasta 12 servos, pero con limitaciones de alimentación!


📏 4. Control Servo con Sensor de Distancia HC-SR04

🎯 Objetivo:

Mover el servo en función de la distancia leída por el sensor ultrasónico.

🔌 Conexiones:

Sensor HC-SR04 Arduino
VCC 5V
GND GND
Trig D7
Echo D6

🔧 Código:

#include <Servo.h>

Servo mioServo;
const int trigPin = 7;
const int echoPin = 6;

void setup() {
  Serial.begin(9600);
  mioServo.attach(9);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  // Invio impulso
  digitalWrite(trigPin, LOW); delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long durata = pulseIn(echoPin, HIGH);
  float distanza = durata * 0.034 / 2;

  int angolo = map(distanza, 5, 100, 0, 180); // Da 5 cm a 100 cm
  angolo = constrain(angolo, 0, 180);

  mioServo.write(angolo);
  delay(100);
}

🔚 Conclusión y Posibles Extensiones

✅ Ahora puedes:

  • Controlar el servo por Bluetooth, Wi-Fi o sensores
  • Gestionar múltiples servos para robótica o brazos articulados
  • Integrar entradas remotas o del entorno (por ejemplo, distancia, potenciómetro)

¡Perfecto! Profundicemos en los dos aspectos para un robot con brazo articulado controlado por servo SG90:


🦾 1. Sincronización de movimientos servo (Brazo Robótico)

🎯 Objetivo:

Coordinar múltiples servos (por ejemplo, hombro, codo, muñeca) para que un brazo robótico realice movimientos fluidos y sincronizados.

🎮 Ejemplo: 3 DOF (grados de libertad)

🔌 Conexiones:

Parte del brazo Servo Pin Arduino
Hombro servo1 9
Codo servo2 10
Muñeca servo3 11

🔧 Código sincronizado:

#include <Servo.h>

Servo servoSpalla;
Servo servoGomito;
Servo servoPolso;

void setup() {
  servoSpalla.attach(9);
  servoGomito.attach(10);
  servoPolso.attach(11);
}

void loop() {
  // Esegui una sequenza sincrona
  for (int ang = 0; ang <= 90; ang++) {
    servoSpalla.write(ang);
    servoGomito.write(90 - ang);
    servoPolso.write(ang / 2);
    delay(20); // Tempo per il movimento fluido
  }

  delay(1000); // Pausa

  for (int ang = 90; ang >= 0; ang--) {
    servoSpalla.write(ang);
    servoGomito.write(90 - ang);
    servoPolso.write(ang / 2);
    delay(20);
  }

  delay(1000);
}

✅ Todos los servomotores se mueven de manera coordinada y se pueden modificar las relaciones para crear movimientos articulados.


💾 2. Memorización de posiciones servo

🧠 Objetivo:

Guardar las «posturas» del brazo robótico en memoria (EEPROM) o enviarlas por serial para luego llamarlas con un comando.


📦 Solución 1: Guardar en EEPROM (persistente después de reiniciar)

#include <Servo.h>
#include <EEPROM.h>

Servo s1, s2, s3;

void setup() {
  s1.attach(9);
  s2.attach(10);
  s3.attach(11);

  // Carica posizione salvata all'avvio
  int a1 = EEPROM.read(0);
  int a2 = EEPROM.read(1);
  int a3 = EEPROM.read(2);

  s1.write(a1);
  s2.write(a2);
  s3.write(a3);
  delay(1000);
}

void loop() {
  // Sposta braccio in nuova posizione
  s1.write(60);
  s2.write(120);
  s3.write(90);
  delay(2000);

  // Salva questa "pose" nella EEPROM
  EEPROM.write(0, 60);  // s1
  EEPROM.write(1, 120); // s2
  EEPROM.write(2, 90);  // s3

  while (1); // Ferma il loop
}

💾 Cuando reinicies Arduino, el brazo volverá a la posición guardada.


📦 Solución 2: Enviar posturas desde Serial Monitor y guardarlas en RAM

#include <Servo.h>

Servo s1, s2, s3;
int pos[3];

void setup() {
  Serial.begin(9600);
  s1.attach(9);
  s2.attach(10);
  s3.attach(11);

  Serial.println("Invia tre valori separati da virgole (es. 30,90,120):");
}

void loop() {
  if (Serial.available()) {
    String input = Serial.readStringUntil('n');
    input.trim();

    int idx1 = input.indexOf(',');
    int idx2 = input.lastIndexOf(',');

    if (idx1 > 0 && idx2 > idx1) {
      pos[0] = input.substring(0, idx1).toInt();
      pos[1] = input.substring(idx1 + 1, idx2).toInt();
      pos[2] = input.substring(idx2 + 1).toInt();

      s1.write(pos[0]);
      s2.write(pos[1]);
      s3.write(pos[2]);

      Serial.println("Posizione eseguita.");
    } else {
      Serial.println("Formato errato. Usa: ang1,ang2,ang3");
    }
  }
}

📱 Puedes enviar posturas desde PC o Bluetooth. Ejemplo: 45,90,135


➕ Extensión Avanzada (Opcional)

✅ Guardar más posturas en EEPROM con botones para llamarlas
✅ Guardar secuencias animadas para playback
✅ Interfaz web (ESP32) para programar movimientos desde navegador
✅ Joystick para controlar el brazo en tiempo real y luego «grabar»


🔚 Conclusión

Con estas soluciones puedes:

  • Haz mover el brazo como un sistema articulado
  • Memoriza posiciones o secuencias personalizadas
  • Integra con comandos de control remoto (Bluetooth, Wi-Fi o serie)

Tutorial: Cómo usar el micro servo SG90

El micro servo SG90 es un pequeño motor ideal para proyectos de robótica y modelismo RC como helicópteros, aviones y automodelos. Con una masa de solo 9g, este servo es perfecto para makers principiantes que desean comenzar con Arduino.

Qué necesitas

  • Arduino Uno o compatible
  • Cable USB
  • Conexión de 5V
  • Conexión GND
  • Conexión de datos

Pasos

  1. Conecta el servo SG90 al Arduino utilizando los cables especificados.
  2. Carga el sketch Arduino proporcionado para controlar el servo.
  3. Modifica el ángulo de movimiento del servo modificando las líneas del sketch.
  4. Prueba la rotación completa del servo de 0° a 180°.

Código de ejemplo

void setup() {
  pinMode(9, OUTPUT);
}

void loop() {
  for(int pos = 0; pos <= 180; pos += 1) {
    servos.write(pos);
    delay(15);
  }
}

Miniproyecto

Crear un brazo robótico con dos SG90 que se mueven en sincronía para tomar objetos.

Errores comunes

  • No verifiques la tensión de alimentación del servo.
  • Conectar el servo sin protección contra las corrientes inducidas.
  • Usar un ángulo de movimiento no conforme a las especificaciones del datasheet.
  • Omitir la instalación de la biblioteca Servo para Arduino.

Accesorios recomendados

  • Conector JST
  • Fuente de alimentación RC 5V-6V
  • Batería LiPo 3S
  • Tarjeta de protección contra las corrientes inducidas

Preguntas frecuentes

¿Cuál es la tensión de alimentación del servo SG90?
Verifica en el datasheet.

¿Cuánto pesa el servo SG90?
El peso es de 9g.

¿Necesito una biblioteca especial para controlar este servo con Arduino?
Sí, usa la biblioteca Servo.

Valoraciones

No hay valoraciones aún.

Sé el primero en valorar “Micro servo 9g SG90 Motor para RC, helicópteros, aviones, robótica y Arduino”

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *