Lección 1.8: Servomotor
Un servo no gira sin fin: va a un ángulo y se queda ahí, haciendo fuerza para mantenerlo. Es el actuador de las barreras, los brazos robóticos y los timones del aeromodelismo.
Material
Librerías
- Servo — incluida con el IDE
Cómo funciona
Dentro hay un motor DC, una reductora, un potenciómetro unido al eje y un circuito de control. El circuito compara la posición del potenciómetro con la que le pides y mueve el motor hasta que coinciden.
La posición se indica con un pulso que se repite cada 20 ms (50 Hz): en torno a 1 ms es un extremo, 1,5 ms el centro y 2 ms el otro extremo. La librería Servo genera esos pulsos y te deja hablar en grados.
En el Uno, la librería Servo usa el temporizador 1, así que mientras haya un servo conectado analogWrite() deja de funcionar en los pines 9 y 10.
Datos técnicos
- Recorrido
- unos 180°
- Par
- 1,8 kg·cm
- Velocidad
- 0,1 s cada 60°
- Alimentación
- 4,8–6 V
Conexiones
| Componente | Se conecta a | Nota |
|---|---|---|
| Servo, cable marrón | GND | |
| Servo, cable rojo | 5V | |
| Servo, cable naranja (señal) | Pin 9 |
Código
// Barre el servo de 0 a 180 grados y vuelve.
#include <Servo.h>
const int SERVO_PIN = 9;
Servo servo;
void setup() {
servo.attach(SERVO_PIN);
}
void loop() {
for (int angle = 0; angle <= 180; angle++) {
servo.write(angle);
delay(15); // tiempo para llegar a cada grado
}
for (int angle = 180; angle >= 0; angle--) {
servo.write(angle);
delay(15);
}
}Qué hace el código
- Servo servo; crea el objeto y attach() lo asocia a un pin. En el Uno se pueden manejar hasta 12 servos.
- write(angle) envía el ángulo en grados; la librería lo traduce a la anchura del pulso.
- Cada delay(15) da tiempo al servo a alcanzar el grado siguiente: un barrido completo tarda unos 2,7 s.
Paso a paso
- Conecta el servo con tres cables según la tabla.
- Sube el código.
- Coloca uno de los brazos en el eje para ver mejor el movimiento.
Resultado
El servo gira despacio hasta un extremo, vuelve al otro y repite sin parar.
Si no funciona
- Si el servo tiembla o la placa se reinicia, pide más corriente de la que da el USB: aliméntalo con una fuente aparte y une los GND.
- Si zumba en los extremos, está haciendo tope: limita el barrido, por ejemplo de 10 a 170 grados.
- Si no se mueve, revisa el orden de los cables: el naranja es la señal.