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.