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

Estenda e retraia continuamente o recorrido de um atuador com um motor CC sem escovas

Guninder Malhi
Guninder Malhi
PA Engineer

Este tutorial ajudará você a entender os controles de um controlador de motor CC sem escovas quando usado com um Arduino e um atuador linear. Este programa pode ser usado para estender e retrair continuamente o curso de um atuador.

Before we get started, let’s go over the components we will be using in this tutorial:

  1. Arduino Mega (Arduino Uno can be used as well).
  2. LC-241.
  3. PA-14 with a brushless motor.
  4. PS-13-12 power supply.
  5. Jumper Wires.

 Programação em Arduino

O atuador linear tem 2 conjuntos de fios saindo dele: um é para o motor e o outro para os interruptores de fim de curso. O esquema na figura acima mostra como ligar os componentes entre si.

PIN SETUP CODE

int out_lim = 45; / pino do fim de curso externo

int in_lim = 53; / pino do fim de curso interno

int run_f = 25; / pino de acionamento no controlador
int run_r = 30; / pino de reversão no controlador

Esta parte do código cuida da inicialização dos pinos que serão usados para receber e enviar dados. Neste caso, foram usados apenas pinos digitais, mas também é possível usar os analógicos.

SETUP LOOP CODE

void setup() {

  Serial.begin(9600); / inicializa a comunicação serial a 9600 bits por segundo
pinMode(out_lim, INPUT_PULLUP); / configura o pino 45 como entrada
pinMode(in_lim, INPUT_PULLUP); / configura o pino 53 como entrada
pinMode(run_f, OUTPUT); / configura o pino 25 como saída
pinMode(run_r, OUTPUT); / configura o pino 30 como saída

 

retract(); / recolhe o curso na inicialização

  delay(500);
}


O loop “setup” configura quais pinos serão usados como saída e quais serão usados como entrada. Como pode ser visto no código, os pinos conectados aos fins de curso serão usados para ler os estados dos interruptores de fim de curso e os pinos conectados a “RUN” e “REV” no LC-241 serão usados para enviar comandos a ele. Inicialmente, o código também executa uma função de recolhimento para retrair totalmente antes de iniciar.

FUNCTION DEFINITIONS CODE

void extend() / esta função habilita o motor a funcionar

{
 digitalWrite(run_f, LOW);
 digitalWrite(run_r, HIGH);

 }

void retract() / esta função inverte a direção do motor
{
digitalWrite(run_f, LOW);
digitalWrite(run_r, LOW);
}

void run_stop() / esta função desabilita o motor
{
digitalWrite(run_f, HIGH);
digitalWrite(run_r, HIGH);
}


Esta parte explica as funções usadas para controlar a potência e a direção do motor. Vamos habilitar ou desabilitar o motor escrevendo “0” ou “1” no pino “RUN” e, em seguida, os mesmos comandos no pino “REV” para inverter a direção do motor.

MAIN LOOP CODE

Void loop() {

  int out_lim_state = digitalRead(out_lim); / lê os fins de curso e salva seu valor
int in_lim_state = digitalRead(in_lim);

  Serial.print("outer limit switch value "), Serial.println(out_lim_state); / 0 -> o fim de curso está pressionado
  Serial.print("inner limit switch value "), Serial.println(in_lim_state); / 1 -> o fim de curso não está pressionado

if (out_lim_state == 0 && in_lim_state == 1) / se o fim de curso externo está pressionado e o interno não (estendido até o fim)
  {
retract(); / recolher o curso
  }

  else if (out_lim_state == 1 && in_lim_state == 0) / se o fim de curso interno está pressionado e o externo não (recolhido até o fim)
{
extend(); / estender o curso
}

 

O loop “loop” basicamente apenas lê as entradas dos interruptores de fim de curso para verificar se os interruptores estão pressionados ou não e, com base nisso, apenas altera a direção do motor.

A maioria dos atuadores lineares do mercado vem equipada com um motor CC com escovas e, por isso, o ciclo de trabalho disponível com esse motor torna praticamente impossível operar a unidade continuamente. Na Progressive Automations, damos aos nossos clientes a liberdade de optar por um motor CC sem escovas para o nosso modelo PA-14, oferecendo ainda mais opções para seus projetos.