El servomotor SG90 de Tower Pro es un micro servo de 9 gramos diseñado para proyectos de robótica, automatización y aeromodelismo que requieren control preciso de posición con bajo consumo de energía. Con un rango de giro de 180° y control por señal PWM, puedes posicionarlo desde cualquier microcontrolador como Arduino sin necesitar componentes adicionales para empezar.
A diferencia de un motor DC convencional, un servomotor integra en un solo módulo un motor, un sistema de engranajes reductores y un circuito de control electrónico. Esto permite indicarle un ángulo exacto y el servo se mueve hacia esa posición y la mantiene de forma autónoma. Un potenciómetro interno le informa continuamente al circuito cuál es la posición real del eje, permitiendo corregir cualquier desviación automáticamente.
El SG90 es compatible con Arduino, ESP32, Raspberry Pi y cualquier microcontrolador con salida PWM de 5V. Su conector tipo JR calza en la mayoría de los receptores de radiocontrol del mercado, haciéndolo igual de útil en aeromodelismo que en electrónica educativa y proyectos DIY.
Ventajas
- Peso ultraligero de 9 gramos: ideal para aplicaciones donde el peso es crítico, como brazos robóticos, aeronaves de aeromodelismo y drones pequeños.
- Control de posición preciso mediante señal PWM con rango de 500 a 2400 microsegundos para ajuste fino del ángulo.
- Compatible con Arduino y la librería Servo.h incluida por defecto en el IDE de Arduino, sin necesidad de instalar librerías adicionales.
- Conector universal tipo JR compatible con receptores Futaba, JR y la mayoría de sistemas de radiocontrol del mercado.
- Voltaje de operación flexible entre 4.8V y 6V, compatible con baterías de 4 pilas AA y fuentes de 5V estándar.
- Incluye accesorios de montaje: trae brazos, cuernos y tornillos para instalarlo directamente en tu proyecto.
- Engranajes de POM (acetal), un plástico de ingeniería con buena resistencia al desgaste, ideal para uso educativo y prototipado.
Especificaciones
| Parámetro | Valor |
|---|---|
| Torque (a 4.8V) | 1.8 kg/cm |
| Velocidad (a 4.8V) | 0.10 seg / 60° |
| Voltaje de operación | 4.8V a 6V |
| Peso | 9 g |
| Dimensiones (L × An × Al) | 23 × 12.2 × 29 mm |
| Rango de giro | 180° |
| Rango de señal PWM | 500 a 2400 µs |
| Frecuencia de la señal | 50 Hz (período de 20 ms) |
| Material de engranajes | POM (acetal) |
| Tipo de conector | JR (compatible Futaba y similares) |
| Longitud del cable | 25 cm |
| Temperatura de operación | 0°C a 55°C |
Conexión y uso
El SG90 tiene tres cables con colores estándar:
- Café o negro (GND): conéctalo al pin GND de Arduino o al negativo de tu fuente de alimentación.
- Rojo (VCC): conéctalo al pin 5V de Arduino o a una fuente externa de 5V a 6V.
- Naranja o amarillo (Señal): conéctalo a cualquier pin digital PWM de Arduino (marcados con ~, como los pines 3, 5, 6, 9, 10 y 11 en Arduino Uno).
Para pruebas básicas con un solo servo y sin carga pesada, el pin de 5V de Arduino proporciona corriente suficiente. Si vas a conectar más de un servo, o si el servo va a trabajar bajo carga constante, usa una fuente externa de 5V capaz de entregar al menos 500 mA por servo. Conecta el GND de esa fuente al GND de Arduino para compartir la referencia de voltaje.
La señal PWM que controla la posición del servo es un tren de pulsos con período de 20 ms (50 Hz). La duración de cada pulso determina el ángulo de posición:
- 500 µs corresponde aproximadamente a 0°.
- 1500 µs corresponde aproximadamente a 90° (posición central).
- 2400 µs corresponde aproximadamente a 180°.
Con la librería Servo.h de Arduino no necesitas generar esos pulsos manualmente. Usa miServo.write(angulo) con el ángulo en grados y la librería se encarga del resto. Para mayor precisión, miServo.writeMicroseconds(us) permite especificar el pulso exacto en microsegundos y calibrar el rango real de tu servo.
Preguntas frecuentes
¿Qué es un servomotor y en qué se diferencia de un motor DC?
Un servomotor combina en un solo módulo un motor DC, un reductor de engranajes y un circuito de control electrónico con retroalimentación de posición. Mientras un motor DC simplemente gira mientras recibe voltaje, el servomotor recibe una señal PWM y se posiciona en el ángulo indicado, manteniéndolo de forma autónoma. Un potenciómetro interno compara constantemente la posición real con la deseada y corrige cualquier desviación, lo que entrega un control de posición preciso imposible de lograr con un motor DC solo.
¿Cómo conecto el servo motor SG90 a Arduino?
La conexión es de tres cables: el café o negro va a GND de Arduino, el rojo va a 5V de Arduino (o a una fuente externa de 5V a 6V), y el naranja va a un pin PWM de Arduino, como el pin 9. En tu sketch incluyes la librería Servo.h, declaras un objeto Servo miServo, llamas a miServo.attach(9) en el setup y ya puedes mover el servo con miServo.write(90) para ir a 90°. No necesitas instalar librerías adicionales porque Servo.h ya viene incluida en el IDE de Arduino.
¿Puedo alimentar el SG90 directamente desde el pin 5V de Arduino?
Para pruebas con un solo servo sin carga pesada, el pin 5V de Arduino puede ser suficiente. Sin embargo, bajo carga el SG90 puede consumir picos de corriente considerables, y si se atasca ese consumo aumenta significativamente. Para proyectos con más de un servo, o con carga constante, usa una fuente externa de 5V con capacidad suficiente y conecta su GND al GND de Arduino para tener referencia común. Así evitas reinicios inesperados del Arduino o daños en su regulador de voltaje.
¿En qué proyectos puedo usar el micro servo SG90?
El SG90 es ideal para brazos robóticos educativos, sistemas de dirección en mini vehículos, superficies de control en aeronaves de aeromodelismo liviano, mecanismos de apertura y cierre de compuertas o tapas, posicionamiento de sensores ligeros y cualquier proyecto donde necesites mover algo con precisión angular. Su torque de 1.8 kg/cm está pensado para cargas ligeras y no es adecuado para mover mecanismos pesados o resistir fuerzas externas grandes. Para eso existen servos de mayor torque con engranajes metálicos.
¿Qué diferencia hay entre el SG90 posicional y un servo de rotación continua?
Este SG90 es un servo posicional: se mueve a un ángulo específico dentro del rango de 0° a 180° y lo mantiene. Un servo de rotación continua, en cambio, ha sido modificado para girar indefinidamente, y la señal PWM controla la velocidad y dirección de giro en lugar del ángulo. Usa el SG90 posicional cuando necesites apuntar algo a un ángulo exacto, como un brazo robótico o una superficie de control, y un servo continuo cuando necesites rotación permanente, como en las ruedas de un robot móvil.
Código de ejemplo
// Servo SG90 con Arduino | MechatronicStore.cl
// Barrido continuo de 0 a 180 grados y vuelta
#include <Servo.h>
Servo miServo;
int angulo = 0;
void setup() {
miServo.attach(9); // pin PWM conectado al cable naranja del SG90
}
void loop() {
for (angulo = 0; angulo <= 180; angulo++) {
miServo.write(angulo);
delay(15);
}
for (angulo = 180; angulo >= 0; angulo--) {
miServo.write(angulo);
delay(15);
}
}




