les vencimos · offline
L22. Servo
Maestro
Un servo de modelismo gira a un ángulo y se queda. Tres cables: señal, alimentación y masa. La señal sale de un pin. La corriente no. Si enchufas el rojo del servo al pin, estás pidiendo amperios a una patilla que no los tiene. Un servo pequeño puede probarse con el 5V de la placa. Si la placa se reinicia, come aparte, y la masa sigue siendo común.
El cable de señal, casi siempre naranja o amarillo, va al pin 9. El marrón o negro va a GND. El rojo va a 5V de la placa solo para un servo pequeño y un rato de prueba. Varios servos, o uno que al moverse apaga el USB, piden 5 voltios externos y la masa unida a la de la placa. Sin masa común el servo tiembla o no obedece. En el catálogo Hardware la ficha es modulo-servo.
La biblioteca Servo.h viene con el entorno. s.attach(9) une el objeto al pin. s.write(90) pide el centro, en grados de 0 a 180, según el servo. No todos llegan a los extremos sin hacer ruido: si zumba forzado en 0 o en 180, quédate en 20 y 160.
delay entre dos ángulos vuelve a bloquear. Aquí es aceptable porque el servo es la única tarea. Cuando combine con un botón, habrá que quitar esa espera. El pin 9 deja de servir como PWM normal mientras el servo está attached: la biblioteca usa ese temporizador. No pongas un LED regulado en el 9 a la vez.
Placa de 3,3 voltios: un servo pensado a 5 voltios no se alimenta del pin de 3,3 ni se le manda una señal que el fabricante no admita. El curso lo prueba en el Uno.
Montaje
Pines de esta lección
Por qué
El servo de modelismo espera pulsos, no una tensión continua de ángulo. La librería Servo.h los fabrica en el pin que enganchas con attach. Tú escribes grados. El pin 9 es el de esta lección. Si lo compartes con analogWrite, los dos se pisan. Una lección, un uso del pin.
Los extremos 0 y 180 fuerzan el mecanizado barato y a veces zumban, calientan y gastan de más. Este curso se queda cerca de 20 y 160. Si tu servo golpea un tope físico antes, no insistas: baja el número. El tope no es un fallo del programa.
Un servo pequeño puede probarse desde el 5 V de la placa. Si al moverse el Uno se reinicia o el USB se cae, la placa no da para ese pico. Se pasa la alimentación del servo a una fuente de 5 V externa y se une la masa de esa fuente con la GND de la placa. Sin masa común, la señal del pin 9 no tiene referencia y el servo tiembla o se va a un extremo.
Varios servos no se negocian: de entrada, fuente externa. El pin solo lleva la señal, un hilo que casi no da corriente. El rojo del servo nunca se clava en el pin 9.
Práctica
- Quita el LED del pin 9 si sigue ahí. El 9 queda para la señal del servo.
- Rojo o el hilo de alimentación del servo a 5 V de la placa. Marrón o negro a GND. El de señal, a menudo naranja o amarillo, al 9.
- Carga el sketch que va de 20 a 160 y vuelve.
- Mira si el movimiento es limpio o si la placa se reinicia. Si se reinicia, para y lee el párrafo de la fuente externa.
- No pidas 0 ni 180. Si oyes un zumbido continuo en un extremo, aléjate de ese número.
- Toca el servo un segundo: calor fuerte significa tope o alimentación mala. Corta y revisa.
- Deja el barrido de la lección funcionando una vez, y desenchufa si no vas a seguir.
Práctica en la página
El brazo barre de 20 a 160 grados mientras la simulación está encendida. La simulación arranca encendida.
Ejemplos resueltos
Se reinicia al moverse
Un solo servo, alimentado del 5 V del Uno, tira un pico al arrancar. El USB se cae y el programa vuelve a empezar, así que el servo repite el golpe.
Se saca el rojo del servo del 5 V de la placa y se lleva a una fuente de 5 V. El GND de esa fuente se une al GND del Uno. La señal sigue en el 9. El programa no se toca.
Tiembla en un ángulo
La masa del servo no está en la masa de la placa, aunque la fuente externa enciende el motor. La señal no tiene cero común y el servo busca un pulso que no entiende.
Un cable de GND a GND. En cuanto hay cero común, el ángulo se quieta. No se sube el delay para disimular el temblor.
Soldadura y seguridad
Los servos vienen con conector. No sueldes el conector a la protoboard. Si alargas hilos, suelda empalme a empalme, aísla cada uno, y no dejes el rojo y la señal en el mismo pegote.
No sueldes con el servo alimentado: un estaño que salta entre rojo y señal mete 5 V en el pin 9. Placa apagada, fuente apagada, ventana abierta.
En la mesa
Con el servo en 5 V, GND y señal en el 9, carga y aparta la mano del eje. Tiene que ir de un lado a otro sin que tú lo acompañes. Si la placa se reinicia, lo verás porque el movimiento vuelve a empezar justo cuando el USB suena. Para. No insistas cinco veces: cada arranque es un pico. Pasa la alimentación fuera y une las masas antes de la siguiente prueba.
Si zumban en el extremo, no busques un delay más largo. Baja de 160 o sube de 20 hasta que calle en la pausa. El zumbido continuo es el motor empujando un tope. Se calienta. Un servo caliente no se educa con software.
Cuando el barrido sea limpio, quita el USB un segundo y vuelve. Debe seguir, si la alimentación del servo no era lo único que sostenía la placa. Si solo comía del USB, se para, y es normal. No confundas eso con un sketch que no se guardó.
Sketch
#include <Servo.h>
Servo s;
void setup() {
s.attach(9);
}
void loop() {
s.write(20);
delay(700);
s.write(160);
delay(700);
}
Ejercicio
Un solo servo en el pin 9, rojo a 5V de la placa, negro a GND. Que vaya de 20 a 160 grados. Si el Uno se reinicia al moverse, quita el rojo de la placa y aliméntalo aparte, sin soltar la masa común.
Autoevaluación
1. ¿El cable rojo del servo puede ir al pin 9?
No. El pin 9 es la señal. El rojo es alimentación.
2. Si hay varios servos, ¿de dónde comen?
De 5 voltios aparte, con la masa unida a la de la placa.
3. ¿Qué hace s.write(90)?
Pide un ángulo, cerca del centro, no una velocidad.