En este tutorial vamos a controlar un servomotor de ARDUINO UNO. Los servomotores se utilizan cuando existe la necesidad de un movimiento o posición precisos del eje. No se proponen para aplicaciones de alta velocidad. Se proponen para aplicaciones de baja velocidad, par medio y posición precisa. Estos motores se utilizan en máquinas de brazo robótico, controles de vuelo y sistemas de control.
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.
Componentes del circuito
Hardware: ARDUINO UNO, fuente de alimentación (5v), condensador de 100uF, botones (dos piezas), resistencia de 1KΩ (dos piezas), servomotor (que necesitaba ser probado).
Software: arduino IDE (Arduino nightly).
Diagrama y explicación del circuito del servomotor Arduino
En casos normales, necesitamos ir a los registros del controlador para ajustar la frecuencia y obtener la relación de trabajo requerida para un control preciso de la posición del servo, en ARDUINO no tenemos que hacer esas cosas.
En ARDUINO tenemos bibliotecas predefinidas, que establecerán las frecuencias y las relaciones de trabajo en consecuencia una vez que se llame o incluya el archivo de encabezado. En ARDUINO simplemente tenemos que indicar la posición del servo que se necesita y el PWM se ajusta automáticamente por UNO.
Las cosas que debemos hacer para obtener una posición precisa del servo son:
|
Primero necesitamos establecer la frecuencia de la señal PWM y para eso debemos llamar "#include
Ahora necesitamos definir un nombre para el servo “Servo sg90sevo”, aquí 'sg90servo' es el nombre elegido, así que mientras escribimos para pociones vamos a usar este nombre, esta característica es útil cuando tenemos muchos servos para controlar, podemos controlar hasta ocho servos con esto.
Ahora le decimos al UNO dónde está conectado el pin de señal del servo o dónde necesita generar la señal PWM. Para hacer esto tenemos “Sg90.attach (3);”, aquí le estamos diciendo al UNO que conectamos el pin de señal del servo al PIN3.
Todo lo que queda es establecer la posición, vamos a establecer la posición del servo usando “Sg90.write (30);”, con este comando la manecilla del servo se mueve 30 grados, así que eso es todo. Después de eso, siempre que necesitemos cambiar la posición del servo, debemos llamar al comando "Sg90.write (need_position_ angle);". En este circuito tendremos dos botones, un botón aumenta la posición del servo y el otro es para disminuir la posición del servo.
El tutorial de control de Arduino Servo Motor se explica paso a paso del código C que se proporciona a continuación.