Un servomotor es un motor pequeño cuyo eje gira hasta un ángulo determinado y se queda ahí. Un motor de corriente continua normal gira sin parar; un servo va exactamente a 90 grados cuando le pides 90 grados y mantiene la carga en esa posición. Los brazos robóticos, los soportes pan-tilt de cámaras, las cerraduras automáticas y los alerones de los aviones de modelismo se mueven con servos.



Dentro de un servo hay cuatro piezas: un pequeño motor de corriente continua, una caja reductora que baja la velocidad y aumenta la fuerza, un potenciómetro que mide la posición del eje y un circuito de control que lo gestiona todo. El circuito compara continuamente el ángulo pedido con el que lee el potenciómetro y hace girar el motor hasta que la diferencia es cero. Gracias a este lazo cerrado, el servo mantiene su posición incluso con carga.
El ángulo se envía al servo con una señal PWM: cada 20 ms (50 Hz) llega un pulso y su anchura fija el ángulo. Unos 1 ms equivalen a 0°, 1,5 ms a 90° y 2 ms a 180°. La mayoría de los servos aceptan de 0,5 a 2,5 ms; los valores exactos varían un poco según el modelo.
Aprende cómo un servo se coloca en un ángulo, para qué sirven sus cables, cómo controlarlo con Arduino y por qué a menudo necesita una fuente aparte.
¿Qué es un servomotor, cómo funciona y cómo se conecta a Arduino? Comparativa de SG90, MG90S y MG996R, la librería Servo, la alimentación y los errores más comunes.
| Color del cable | Función | Dónde se conecta en el Arduino |
|---|---|---|
| Marrón / negro | GND (tierra) | GND |
| Rojo | Alimentación (+4,8–6 V) | 5V o una fuente externa de 5–6 V |
| Naranja / amarillo / blanco | Señal (PWM) | Cualquier pin digital (p. ej. el 9) |

| Modelo | Par (aprox.) | Engranajes | ¿Para qué? |
|---|---|---|---|
| SG90 | 1,8 kg·cm | Plástico | Tareas ligeras, primeras pruebas, pan-tilt |
| MG90S | 2,2 kg·cm | Metal | Mismo tamaño que el SG90, más resistente |
| MG996R | 9–11 kg·cm | Metal | Brazos robóticos, tapas y mecanismos pesados |
| FS90R | 1,5 kg·cm | Plástico | Rotación continua: robots pequeños con ruedas |


#include <Servo.h>
Servo servo; // servo nesnesi / servo object
const int POT_PIN = A0; // potansiyometre / potentiometer
void setup() {
servo.attach(9); // sinyal 9. pinde / signal on pin 9
}
void loop() {
int value = analogRead(POT_PIN); // 0–1023 oku / read 0–1023
int angle = map(value, 0, 1023, 0, 180); // açıya çevir / convert to angle
servo.write(angle); // servoyu döndür / move the servo
delay(15); // servo yetişsin / let the servo settle
}servo.write(ángulo) recibe un ángulo de 0 a 180. Para un control más fino, usa servo.writeMicroseconds(1500) y da directamente la anchura del pulso en microsegundos. Puedes ver qué pines de tu placa son PWM y digitales en la herramienta de pinout.
Para ver qué puedes construir con servos, echa un vistazo a los proyectos de robots y motores de BlueGrays. Si estás empezando con Arduino, lee primero ¿Qué es Arduino? y, para montar el circuito, ¿Qué es una protoboard?.
Los servos estándar giran unos 180°; algunos modelos, 90° o 270°. Los servos de rotación continua giran sin límite, pero no mantienen un ángulo.
Puedes alimentar un único SG90 con poca carga para hacer pruebas. Para varios servos, modelos potentes como el MG996R o proyectos con carga, usa una fuente externa de 5–6 V y une las tierras.
La librería Servo admite hasta 12 servos en el Arduino Uno y 48 en el Mega. Para muchos servos son más prácticas las placas controladoras I2C de 16 canales como la PCA9685.
Las causas más habituales son una alimentación insuficiente, la falta de tierra común y los cables de señal largos. Usa una fuente potente, añade un condensador a la alimentación del servo y usa cables cortos.
El servo, gracias a la realimentación, va a un ángulo concreto y se queda ahí, normalmente limitado a 180°. El motor paso a paso gira paso a paso sin límite; para posicionarlo con precisión necesita un driver y no mide su propia posición.