How To Control a Track Linear Actuator with Arduino

Cómo controlar un actuador lineal de pista con Arduino

Adam Morissette
Adam Morissette
PA Engineer

El actuador lineal de riel PA-18 es nuestro actuador de longitud fija más grande y se usa comúnmente en gabinetes personalizados, automatización del hogar y robótica. Puede controlar fácilmente un actuador con una placa Arduino , y este artículo le mostrará cómo construir y programar un actuador lineal controlado por Arduino que se puede adaptar fácilmente para adaptarse a su aplicación.

 

Hardware requerido

Se requieren las siguientes piezas de hardware para un actuador lineal controlado por Arduino, las cuales se pueden comprar en Progressive Automations:

 

Cableado del sistema

El actuador utilizado en esta configuración requiere un voltaje de entrada de 12 VCC y hasta 8 A de corriente a carga completa. Estos valores son mucho más altos de lo que un microcontrolador Arduino es capaz de suministrar y provocarán que salga humo "mágico" del Arduino. Para no dañar el Arduino se utiliza el puente H MegaMoto Plus. El puente H puede manejar los requisitos de energía y puede usarse fácilmente para controlar un actuador con un Arduino.

Para este sistema existen conexiones desde el Arduino al puente H MegaMoto Plus, y a los dos pulsadores. Cada botón requiere una única entrada, que se elige entre los pines GPIO disponibles de Arduino. El puente H tiene cuatro conexiones al Arduino, tres salidas y una entrada. Los pines utilizados por el puente H están preestablecidos y no se pueden cambiar.

 

Diagrama de bloques

El siguiente diagrama de bloques explica brevemente los requisitos de alimentación y las conexiones. El Arduino funciona con un suministro de 5 V y el H-Bridge funciona con 12 V. Si está utilizando dos fuentes de alimentación independientes, es importante que sus conexiones a tierra sean compartidas para evitar un escenario de tierra flotante.

Diagrama de bloques

Comandos Arduino

Deberá instalar el IDE de Arduino en una computadora de escritorio o portátil. Tenga en cuenta que el cableado de su sistema afectará su código Arduino. Por lo tanto, es importante volver a verificar sus conexiones y compararlas con el código que ingresó.

El comando pinMode Arduino se utiliza para definir los pines como entradas o salidas. Para cambiar la señal que envía Arduino a un pin específico, se utilizan los comandos digitalWrite y analogWrite. Además, los comandos digitalRead y analogRead se utilizan cuando Arduino necesita verificar la señal en un pin específico.

En el siguiente programa, el comando digitalWrite se usa para habilitar o deshabilitar el puente H y para configurar los pines utilizados para los botones. El comando analogWrite se utiliza para establecer el valor de la señal PWM en el rango de 0 a 255 para el puente H. El comando digitalRead se utiliza para comprobar si los botones han sido presionados o soltados. El comando analogRead se utiliza para medir el consumo de corriente del motor del actuador, lo que verificará cuándo el actuador está al final de su carrera.

 

Código Arduino

La siguiente sección explica las definiciones del programa, la configuración, el bucle principal y las funciones de los botones para un actuador lineal controlado por Arduino. Es importante leer el código línea por línea para comprender cómo funciona. Esta comprensión le permitirá realizar ajustes según su aplicación.

Definiciones de programas

Esta sección de código es la configuración de la conexión de pines. Verifique que sus conexiones a la placa Arduino se correlacionen con los números ingresados. Estos valores se pueden cambiar en función de si está conectando componentes adicionales al Arduino que luego pueden requerir cambiar las conexiones de los pines.

código arduino

Configuración del programa

Esta sección de código configura los pines conectados como entrada o salida. Los dos botones se pueden configurar en ALTO o BAJO dependiendo de cómo los haya conectado (pull-up o pull-down). Aunque el Arduino tiene resistencias pullup internas, es posible que desees agregar una resistencia externa para evitar rebotes en los interruptores y evitar disparos falsos.

código arduino #2

Bucle principal

El bucle principal verifica constantemente que se hayan presionado los botones y ejecuta una sección particular de código dependiendo del resultado de la función del botón. Se incluye una sección de máquina de estados para determinar qué está haciendo el actuador lineal controlado por Arduino y cómo debe reaccionar en función de las entradas (es decir, los botones).

código arduino #3
código arduino #4

Funciones de los botones

Estas funciones leen digitalmente el estado de los pulsadores para controlar un actuador mediante un Arduino. Cada función de botón tiene un bucle antirrebote dentro de la declaración if principal para evitar fallos y enviar una señal incorrecta al Arduino. Un valor booleano es la salida de estas funciones. Por ejemplo, si se presiona el botón de inicio, el valor de startButton cambiará a verdadero. Luego, el valor booleano se utiliza en el bucle principal para tomar decisiones adicionales.

código arduino #5

Ultimas palabras

La funcionalidad de este sistema va más allá de lo que se muestra en este artículo. El microcontrolador Arduino y el puente H MegaMoto Plus se pueden utilizar para implementar rutinas de control mucho más complicadas. Esta configuración es capaz de controlar la velocidad variable utilizando el comando analogWrite para configurar la señal PWM. La corriente del motor del actuador podría monitorearse para usarse en la detección de carga para activar comandos adicionales.

Además, se pueden conectar sensores adicionales para un actuador lineal avanzado controlado por Arduino. Por ejemplo, se puede conectar un sensor ultrasónico para arrancar/detener el motor cuando se encuentra a cierta distancia o se puede utilizar para activar una serie de otras funciones interesantes. Las posibilidades son infinitas. Sin embargo, si los pines se están agotando en el Arduino, puedes optar por un modelo de Arduino diferente. Alternativamente, se pueden conectar en cadena varios Arduino para comunicarse entre sí y con varios componentes. Sin embargo, esta ruta implicará una buena cantidad de experiencia en programación.

Para obtener información adicional, envíenos un correo electrónico a sales@progressiveautomations.com o llámenos al 1-800-676-6123.