Como se mencionó anteriormente, Arduino Due es una placa basada en un controlador ARM diseñada para ingenieros electrónicos y aficionados. Esta placa DUE se puede utilizar para fabricar máquinas CNC, impresoras 3D, brazos robóticos, etc. Todos estos proyectos tienen una característica común que es el control de posición. Cualquiera de estos proyectos necesita precisión hacia su posición. Los servomotores pueden lograr posiciones precisas en estas máquinas. En esta sesión vamos a controlar la posición de un Servo Motor con Arduino Due. Ya hemos cubierto la Interfaz de servomotor con Arduino Uno y la Interfaz de servomotor con el microcontrolador 8051.
Servomotores:
Los servomotores son conocidos por su 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 también se utilizan en algunas impresoras y máquinas de fax.
Los servomotores están disponibles en diferentes formas y tamaños. Usaremos el servomotor SG90 en este tutorial. SG90 es un servomotor de 180 grados. Entonces con este servo podemos posicionar el eje de 0 a 180 grados.
Un servomotor tiene principalmente tres 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 marrón está conectado a tierra y el cable AMARILLO (o BLANCO) está conectado a la señal.
Un servomotor es una combinación de motor de CC, sistema de control de posición y engranajes. En servo, tenemos un sistema de control que toma la señal PWM del pin de señal. Decodifica la señal y obtiene la relación de trabajo de ella. A continuación, compara la relación con los valores de posiciones predefinidos. Si hay una diferencia en los valores, ajusta la posición del servo en consecuencia. Entonces, la posición del eje del servomotor se basa en la relación de trabajo de la señal PWM al pin SIGNAL.
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. Verifique esto para PWM con Arduino Due. Sin embargo, en este caso, ni siquiera debemos preocuparnos por la selección de Duty Ratio. En Arduino tenemos una función especial; al llamarlo podemos ajustar la posición del servo, simplemente indicando el ángulo. Hablaremos de eso en la sección de trabajo a continuación.
Antes de conectar el servomotor a Arduino Due, puede probar su servo con la ayuda de este circuito probador de servomotor. También revise estos proyectos para Control Servo por Flex Sensor o por Force Sensor.
Componentes:
Hardware: Arduino Due, fuente de alimentación (5v), servomotor.
Software: Arduino todas las noches, descárguelo desde el siguiente enlace (https://www.arduino.cc/en/Main/Software)
Para obtener detalles sobre cómo descargar e instalar este software, visite el primer tutorial Comenzando con Arduino Due.
Diagrama de circuito y explicación de trabajo:
Como se dijo anteriormente 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 DUE genera la señal PWM adecuada para el servo. Las cosas que debemos hacer para obtener una posición precisa del servo son,
#incluir
Servo myservo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (posición_necesaria_ ángulo);
El archivo de encabezado "#include
En segundo lugar, se debe elegir un nombre para el servo usando “Servo myservo” , aquí myservo es el nombre elegido, por lo que mientras escribimos para la posición vamos a usar este nombre, esta característica es útil cuando tenemos muchos servos para controlar, podemos controlar hasta 12 servos con esto.
Con el Arduino Due teniendo 12 canales PWM, necesitamos decirle a DUE dónde está conectado el pin de señal del servo o dónde necesita generar la señal PWM. Para hacer esto tenemos "myservo.attach (2);" , aquí le estamos diciendo al DUE que hemos conectado el pin de señal del servo al PIN2.
Todo lo que queda es establecer la posición, vamos a establecer la posición del servo usando " myservo.write (45);" , con este comando, la manecilla del servo se mueve 45 grados. Si cambiamos '45' a '175', el eje del servo se inclina a 175 grados y permanece allí. Después de eso, siempre que necesitemos cambiar la posición del servo, solo necesitamos llamar al comando " myservo.write (need_position_angle);" .
En el programa, vamos a incrementar y disminuir los ángulos usando bucles. Entonces el servo barre de 0 a 180, luego de 180 a 0 y así sucesivamente. El control de servomotor de Arduino Due se explica mejor en el paso a paso del código C a continuación.