Photo of a brushless DC motor controller when paired with an Arduino and a linear actuator

Extienda y retraiga continuamente la carrera de un actuador con un motor de CC sin escobillas

Guninder Malhi
Guninder Malhi
PA Engineer

Este tutorial le ayudará a comprender los controles de un controlador de motor de CC sin escobillas cuando se combina con un Arduino y un actuador lineal. Este programa se puede utilizar para extender y retraer continuamente la carrera de un actuador.

Antes de comenzar, repasemos los componentes que usaremos en este tutorial:

  1. Arduino Mega (también se puede utilizar Arduino Uno).
  2. LC-241.
  3. PA-14 con motor sin escobillas.
  4. Fuente de alimentación PS-13-12.
  5. Cables de puente.

Codificación Arduino

El actuador lineal tiene 2 juegos de cables que salen de él, un juego es para el motor y el otro juego es para los interruptores de límite. El esquema de la figura anterior muestra cómo conectar los componentes entre sí.

CÓDIGO DE CONFIGURACIÓN DEL PIN

int fuera_lim = 45; // pin del interruptor de límite exterior

int in_lim = 53; // pin del interruptor de límite interno

int ejecutar_f = 25; // ejecutar pin en el controlador
int ejecutar_r = 30; // pin inverso en el controlador

Esta parte del código se encarga de la inicialización de los pines que se utilizarán para recibir y enviar datos. En este caso se utilizaron todos los pines digitales, pero también se pueden utilizar los analógicos.

CÓDIGO DE BUCLE DE CONFIGURACIÓN

configuración nula() {

Serie.begin(9600); // inicializa la comunicación serie a 9600 bits por segundo
pinMode(out_lim, INPUT_PULLUP); // configura el pin 45 como pin de entrada
pinMode(in_lim, INPUT_PULLUP); // configura el pin 53 como pin de entrada
pinMode(run_f, SALIDA); // configura el pin 25 como pin de salida
pinMode(run_r, SALIDA); // configura el pin 30 como pin de salida

 

retraer(); // retrae el trazo al iniciar

retraso(500);
}


El bucle de “configuración” configura qué pines se usarán para la salida y cuáles se usarán para la entrada. Como se puede ver en el código, los pines conectados a los límites se usarán para leer los estados del interruptor de límite y los pines conectados a “RUN” y “REV” en LC-241 se usarán para escribir en él. Inicialmente, el código también ejecuta una función de retracción para retraerse completamente antes de comenzar.

CÓDIGO DE DEFINICIONES DE FUNCIONES

void extend() // esta función permite que el motor funcione

{
escritura digital (run_f, BAJO);
escritura digital (ejecutar_r, ALTA);

}

void retract() // esta función invierte la dirección del motor
{
escritura digital (run_f, BAJO);
escritura digital (run_r, BAJO);
}

void run_stop() // esta función desactiva el motor
{
escritura digital (run_f, ALTA);
escritura digital (ejecutar_r, ALTA);
}


Esta parte explica las funciones utilizadas para controlar la potencia y dirección del motor. Habilitaremos o deshabilitaremos el motor escribiendo "0" o "1" en el pin "RUN" y luego los mismos comandos en el pin "REV" para invertir la dirección del motor.

CÓDIGO DE BUCLE PRINCIPAL

Bucle vacío() {

int out_lim_state = digitalRead(out_lim); // lee los finales de carrera y guarda su valor
int in_lim_state = digitalRead(in_lim);

Serial.print("valor del interruptor de límite exterior "), Serial.println(out_lim_state); // 0 -> se presiona el interruptor de límite
Serial.print("valor del interruptor de límite interno "), Serial.println(in_lim_state); // 1 -> el interruptor de límite no está presionado

if (out_lim_state == 0 && in_lim_state == 1) // si se presiona el interruptor de límite externo y el interno no (extendido por completo)
{
retraer(); // retraer el trazo
}

else if (out_lim_state == 1 && in_lim_state == 0) // si se presiona el interruptor de límite interno y el externo no (se vuelve a colocar completamente)
{
extender(); // extender el trazo
}

El bucle de “bucle” básicamente simplemente lee las entradas de los interruptores de límite para verificar si los interruptores están presionados o no y luego, en base a eso, simplemente cambia la dirección del motor.

La mayoría de los actuadores lineales del mercado vienen instalados con un motor de CC con escobillas, por lo que el ciclo de trabajo disponible con ese motor hace que sea algo imposible hacer funcionar la unidad de forma continua. En Progressive Automations, brindamos a nuestros clientes la libertad de optar por un motor CC sin escobillas para nuestro modelo PA-14, brindándoles aún más opciones para sus proyectos.