El SG90 es uno de los servomotores más populares en proyectos educativos y prototipos con Arduino. Es un servo de pequeña escala, ligero y económico, que integra:
- Un motor DC interno.
- Una caja reductora de engranajes.
- Un potenciómetro para retroalimentación de posición.
- Una electrónica de control que interpreta señales PWM estándar.
A diferencia de un motor DC tradicional, el servo no da vueltas libremente: se mueve a una posición angular específica dentro de su rango mecánico.
¿Cómo funciona el SG90?
El SG90 se controla mediante una señal PWM especial llamada Pulse Position Modulation (PPM), donde el ancho del pulso determina el ángulo:
- 1 ms ≈ 0°
- 1.5 ms ≈ 90° (centro)
- 2 ms ≈ 180°
El servo recibe pulsos aproximadamente cada 20 ms (50 Hz). Con esa referencia, un microcontrolador como Arduino envía la señal y el SG90 se posiciona internamente gracias a:
- Un potenciómetro que mide la posición real.
- Un controlador integrado que compara la posición deseada con la real.
- Un sistema de corrección automática (PID interno) que mueve el motor hasta alcanzar el ángulo ordenado.
Este proceso ocurre dentro del propio servo, así que el Arduino no necesita controlar el motor directamente, solo generar la señal.
Características principales
- Rango típico: 0° a 180° (algunos llegan un poco antes o después según la unidad).
- Torque: alrededor de 1.8–2.5 kg·cm (dependiendo del fabricante).
- Voltaje de operación: 4.8 V a 6 V.
- Corriente en carga: entre 200 y 500 mA por movimientos bruscos.
- Consumo en reposo: muy bajo, pero nunca cero.
- Incluye horns (brazos) intercambiables y tornillo.
Conexiones y alimentación
El SG90 tiene tres cables:
| Cable | Color típico | Función |
|---|---|---|
| Marrón / Negro | GND | Tierra |
| Rojo | +Vcc | Alimentación 5 V |
| Naranja / Amarillo | Signal | Señal PWM |
Recomendaciones importantes:
- Evita alimentar el servo directamente desde el 5V del Arduino, especialmente si tu proyecto usa más de un servo o aplica cargas. Preferir fuente externa de 5 V.
- Conecta GND común entre Arduino y la fuente externa.
- Si hay vibraciones o ruidos eléctricos, añade un condensador de 100 µF a 470 µF entre Vcc y GND cerca del servo.
Alcances del SG90
- Ideal para aplicaciones mecánicas ligeras.
- Excelente para enseñanza debido a su facilidad de uso y autocontrol interno.
- Permite posicionamiento preciso sin necesidad de controladores externos.
- Suficiente para mecanismos de bajo torque, articulaciones simples y sistemas prototipados.
Limitaciones
- Torque limitado:
No adecuado para mover cargas pesadas, brazos robóticos robustos o mecanismos con fricción alta. - No es continuo (a menos que sea modificado):
El SG90 estándar no sirve para movimiento circular infinito. - No es muy estable bajo vibración o grandes cargas laterales:
La caja plástica se desgasta si se somete a fuerzas excesivas. - Puede producir ruido eléctrico:
Especialmente si trabaja con frecuencia. Recomendable fuente dedicada si usas varios. - Diferencias entre fabricantes:
El rango real puede variar entre unidades. Algunos no alcanzan exactamente 0° o 180°.
3 aplicaciones reales con Arduino
1) Mecanismo de apertura/cierre de compuerta o puerta pequeña
Ideal para dispensadores de comida, compuertas ligeras o mecanismos de riego.
Arduino controla el ángulo para abrir o cerrar, añadiendo sensores si se quiere seguridad.
2) Cabeceo y giro de cámara ligera (pan/tilt)
Combinando dos SG90 se crea un soporte pan-tilt para cámaras pequeñas.
Perfecto para proyectos de visión artificial o seguimiento de objetos.
3) Brazo robótico educativo de bajo costo
Muchos kits de robótica educativa usan 4–6 servos SG90 para articulaciones pequeñas.
El Arduino controla cada articulación vía PWM y se enseña cinemática básica.
3 fuentes confiables para profundizar
- Documentación oficial de Arduino (Servo Library):
Explica cómo usar la librería Servo.h, ejemplos incluidos. - Adafruit Learn – Servomotors Guide:
Excelente para aprender el funcionamiento interno y diferencias entre tipos de servos. - SparkFun Servo Motor Basics:
Guía clara sobre señales PWM, torque, rango de movimiento y alimentación.
(Puedo convertir estas referencias en enlaces listos para WordPress si lo deseas.)
Prompt para que el lector genere su propio código con IA
«Quiero un código Arduino para controlar un micro servo SG90 usando la librería Servo.h.
Indica ángulos específicos a los que quiero moverlo: <lista de ángulos>.
Deseo que el movimiento sea suave con una velocidad de transición de .
Estoy usando el servo conectado al pin .
Especifica la fuente de alimentación recomendada y añade recomendaciones de seguridad.
Incluye un ejemplo de rutina de prueba y explica cómo modificar los tiempos y ángulos.»
