- Material requerido
- Diagrama de circuito
- ¿Qué es un servomotor?
- Explicación del código Arduino
- Controlando múltiples servos con Arduino- Funcionamiento:
Usar uno o dos Servo con Arduino es fácil, pero ¿y si queremos usar más de un Servo Motores?
Aquí, le mostraremos cómo controlar varios servomotores con Arduino. La conexión de varios servomotores con Arduino parece ser fácil, pero si conectamos todos los servos a los pines de suministro de Arduino, no funcionarán correctamente debido a la falta de corriente suficiente para impulsar todos los motores. Por lo tanto, debe usar una fuente de alimentación separada para los motores, ya sea de algunos adaptadores (5v 2A) o de baterías de 9v de buena calidad.
Material requerido
- Arduino UNO
- Servo motor
- Fuente de alimentación
- Tablero de circuitos
- Conexión de cables
Diagrama de circuito
¿Qué es un servomotor?
Antes de entrar en detalles, primero debemos conocer los servomotores.
Los servomotores están disponibles en diferentes formas y tamaños. Un servomotor tendrá principalmente sus cables, uno es para voltaje positivo, otro es para tierra y el último es para ajuste de posición. El cable ROJO está conectado a la alimentación, el cable Negro está conectado a tierra y el cable AMARILLO está conectado a la señal.
Un servomotor es una combinación de motor de CC, sistema de control de posición y engranajes. La posición del eje del motor de CC se ajusta mediante la electrónica de control en el servo, según la relación de trabajo de la señal PWM del pin SIGNAL.
Simplemente hablando, la electrónica de control ajusta la posición del eje controlando el motor de CC. Estos datos sobre la posición del eje se envían a través del pin SIGNAL. Los datos de posición al control deben enviarse en forma de señal PWM a través del pin de señal del servomotor.
La frecuencia de la señal PWM (Modulación de ancho de pulso) puede variar según el tipo de servomotor. Lo importante aquí es el DUTY RATIO de la señal PWM. Basándose en esta RACIÓN DE TRABAJO, la electrónica de control ajusta el eje.
Como se muestra en la figura siguiente, para que el eje se mueva a las 9 en punto, la RACIÓN DE ENCENDIDO debe ser 1 / 18.ie. 1 ms de tiempo ON y 17 ms de tiempo OFF en una señal de 18 ms.
Para que el eje se mueva a las 12 en punto, el tiempo de encendido de la señal debe ser de 1,5 ms y el tiempo de apagado debe ser de 16,5 ms. Esta relación es decodificada por el sistema de control en servo y ajusta la posición en base a ella. Este PWM aquí se genera mediante ARDUINO UNO.
Antes de conectar los servos a Arduino, puede probar su servo con la ayuda de este circuito probador de servomotor. También consulte nuestros proyectos de Servo a continuación:
- Control de servomotor por sensor flexible
Explicación del código Arduino
El código completo de Arduino para Multiple Servo Control se proporciona al final.
Arduino tiene una biblioteca para servomotores y maneja todas las cosas relacionadas con PWM para rotar el servo, solo necesita ingresar el ángulo al que desea rotar y existe la función servo1.write (ángulo); que rotará el servo al ángulo deseado.
Entonces, aquí estamos comenzando por definir la biblioteca para el servomotor.
#incluir
En el siguiente código, estamos inicializando los cuatro servos como Servo1, Servo2, Servo3 y Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Luego, estamos configurando todos los pines de entrada del servo con Arduino. Como se muestra en el siguiente código, Servo1 está conectado al tercer pin del Arduino. Puede cambiar los pines según usted, pero tenga en cuenta que debe ser un pin PWM. Usar un Servo con pines digitales del Arduino no es confiable.
configuración vacía () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Ahora, en la función void loop () solo estamos rotando todo el servo de 0 a 180 grados y luego de 180 a 0 grados. El retardo usado en el siguiente código se usa para aumentar o disminuir la velocidad del servo a medida que afecta la velocidad creciente o decreciente de la variable 'i'.
bucle vacío () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); retraso (10); } para (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); retraso (10); } }
Controlando múltiples servos con Arduino- Funcionamiento:
Todos nos enfrentamos al problema actual al usar más de dos servos con un Arduino. La única solución a esto es conectar una fuente de alimentación externa con la cantidad adecuada de corriente nominal (en este proyecto usé 2A con una fuente de 9v). Para la fuente de alimentación externa, puede usar adaptadores, RPS (instrumento de fuente de alimentación regulada) o baterías de 9v voltios de buena calidad, evne puede usar el puerto USB de su computadora portátil para alimentar un pequeño Servo. Para usar el suministro externo, solo tiene que acortar la tierra Arduino a la tierra de suministro externo.
Utilice el código de Arduino que se proporciona a continuación para programar su Arduino y conectar todos los servomotores como se muestra en el diagrama del circuito con la fuente de alimentación adecuada a los motores. Por lo tanto, todos los servos funcionarán juntos sin ninguna interrupción.