Controladores de motor
Retrofit de persianas motorizadas
Molas a gás
Monitoramento da corrente de um atuador linear

Este código de exemplo usa o MegaMoto Plus e um Arduino Uno para monitorar a corrente de um atuador linear; no entanto, produtos similares podem ser utilizados como alternativas.

/*  Code to monitor the current amp draw of the actuator, and to cut power if it
  rises above a certain amount.

  Written by Progressive Automations
  August 19th, 2015

  Hardware:
  - RobotPower MegaMoto control boards
  - Arduino Uno
  - 2 pushbuttons
 */

const int EnablePin = 8;
const int PWMPinA = 11;
const int PWMPinB = 3; // pins for Megamoto

const int buttonLeft = 4;
const int buttonRight = 5;//buttons to move the motor

const int CPin1 = A5;  // motor feedback

int leftlatch = LOW;
int rightlatch = LOW;//motor latches (used for code logic)

int hitLimits = 0;//start at 0
int hitLimitsmax = 10;//values to know if travel limits were reached

long lastfeedbacktime = 0; // must be long, else it overflows
int firstfeedbacktimedelay = 750; //first delay to ignore current spike
int feedbacktimedelay = 50; //delay between feedback cycles, how often you want the motor to be checked
long currentTimefeedback = 0; // must be long, else it overflows

int debounceTime = 300; //amount to debounce buttons, lower values makes the buttons more sensitive
long lastButtonpress = 0; // timer for debouncing
long currentTimedebounce = 0;

int CRaw = 0;      // input value for current readings
int maxAmps = 0; // trip limit 

bool dontExtend = false;
bool firstRun = true;
bool fullyRetracted = false;//program logic

void setup()
{
  Serial.begin(9600);
  pinMode(EnablePin, OUTPUT);
  pinMode(PWMPinA, OUTPUT);
  pinMode(PWMPinB, OUTPUT);//Set motor outputs
  pinMode(buttonLeft, INPUT);
  pinMode(buttonRight, INPUT);//buttons
  
  digitalWrite(buttonLeft, HIGH);
  digitalWrite(buttonRight, HIGH);//enable internal pullups
  pinMode(CPin1, INPUT);//set feedback input
  
  currentTimedebounce = millis();
  currentTimefeedback = 0;//Set initial times

  maxAmps = 15;// SET MAX CURRENT HERE

}//end setup

void loop()
{
  latchButtons();//check buttons, see if we need to move

  moveMotor();//check latches, move motor in or out

}//end main loop

void latchButtons()
{
  if (digitalRead(buttonLeft)==LOW)//left is forwards
  {
    currentTimedebounce = millis() - lastButtonpress;// check time since last press
    if (currentTimedebounce > debounceTime && dontExtend == false)//once you've tripped dontExtend, ignore all forwards presses
    {
      leftlatch = !leftlatch;// if motor is moving, stop, if stopped, start moving
      firstRun = true;// set firstRun flag to ignore current spike
      fullyRetracted = false; // once you move forwards, you are not fully retracted
      lastButtonpress = millis();//store time of last button press
      return;
    }//end if
  }//end btnLEFT

  if (digitalRead(buttonRight)==LOW)//right is backwards
  {
    currentTimedebounce = millis() - lastButtonpress;// check time since last press

    if (currentTimedebounce > debounceTime)
    {
      rightlatch = !rightlatch;// if motor is moving, stop, if stopped, start moving
      firstRun = true;// set firstRun flag to ignore current spike
      lastButtonpress = millis();//store time of last button press
      return;    }//end if
  }//end btnRIGHT
}//end latchButtons

void moveMotor()
{
  if (leftlatch == HIGH) motorForward(255); //speed = 0-255
  if (leftlatch == LOW) motorStop();
  if (rightlatch == HIGH) motorBack(255); //speed = 0-255
  if (rightlatch == LOW) motorStop();

}//end moveMotor

void motorForward(int speeed)
{
  while (dontExtend == false && leftlatch == HIGH)
  {
    digitalWrite(EnablePin, HIGH);
    analogWrite(PWMPinA, speeed);
    analogWrite(PWMPinB, 0);//move motor
    if (firstRun == true) delay(firstfeedbacktimedelay); // bigger delay to ignore current spike
    else delay(feedbacktimedelay); //small delay to get to speed

    getFeedback();
    firstRun = false;
    
    latchButtons();//check buttons again
  }//end while

}//end motorForward

void motorBack (int speeed)
{
  while (rightlatch == HIGH)
  {
    digitalWrite(EnablePin, HIGH);
    analogWrite(PWMPinA, 0);
    analogWrite(PWMPinB, speeed);//move motor
    if (firstRun == true) delay(firstfeedbacktimedelay);// bigger delay to ignore current spike
    else delay(feedbacktimedelay); //small delay to get to speed
    getFeedback();

    firstRun = false;
    
    latchButtons();//check buttons again

  }//end while

  dontExtend = false;//allow motor to extend again, after it has been retracted

}//end motorBack

void motorStop()
{
  analogWrite(PWMPinA, 0);
  analogWrite(PWMPinB, 0);

  digitalWrite(EnablePin, LOW);
  firstRun = true;//once the motor has stopped, reenable firstRun to account for startup current spikes

}//end stopMotor

void getFeedback()
{
  CRaw = analogRead(CPin1); // Read current

  if (CRaw == 0 && hitLimits < hitLimitsmax) hitLimits = hitLimits + 1;
  else hitLimits = 0; // check to see if the motor is at the limits and the current has stopped 

  if (hitLimits == hitLimitsmax && rightlatch == HIGH)
  {
    rightlatch = LOW; // stop motor
    fullyRetracted = true;
  }//end if

  else if (hitLimits == hitLimitsmax && leftlatch == HIGH)
  {
    leftlatch = LOW;//stop motor
    hitLimits = 0;
  }//end if

  if (CRaw > maxAmps)
  {
    dontExtend = true;
    leftlatch = LOW; //stop if feedback is over maximum
  }//end if

  lastfeedbacktime = millis();//store previous time for receiving feedback
}//end getFeedback
Controlando múltiplos atuadores com o shield MultiMoto para Arduino
Controlador de motor Wasp para controle de atuador linear
Uso de relés para controlar atuadores lineares
Controlar o tempo do movimento de um único atuador linear
Estender e retrair continuamente um atuador linear com motor CC sem escovas
Códigos de exemplo do atuador micro servo PA-12
Onde posso encontrar mais informações sobre seus produtos?

Temos fichas técnicas, manuais do usuário, modelos 3D, diagramas de fiação e muito mais em nossas seções Recursos e Centro de Aprendizado .

Como posso determinar qual atuador linear da Progressive Automations é o mais adequado para minha aplicação?
O que é ciclo de trabalho e como é calculado?
Posso usar os seus atuadores para substituir o atuador que já tenho?
O que significa Recorrido? Como saber qual tamanho escolher?
Como sei qual classificação de força é adequada para a minha aplicação?
Posso usar minha própria fonte de alimentação para meus atuadores?
Como posso controlar os atuadores para que se movam ao mesmo tempo?
Por que meu atuador linear está fazendo tanto barulho?
Posso personalizar um atuador linear conforme minhas especificações?
Posso sincronizar meus atuadores lineares?
Há kits de atuadores lineares disponíveis?
A temperatura afetará meu atuador linear?
Posso integrar um dos seus atuadores a um mecanismo de terceiros?
Qual é a pinagem do meu atuador linear?
Posso obter modelos CAD 3D para o meu atuador linear?
Quais são as opções de caixa de controle para o meu atuador?
Posso usar suas caixas de controle com um produto de terceiros?
Vocês vendem caixas de controle Wi-Fi?
Todas as suas caixas de controle são compatíveis com todos os seus atuadores lineares?
Posso usar minha própria caixa de controle?
Vocês têm exemplos de código que eu possa usar?
Não tenho uma fonte de alimentação – o que posso fazer?
Posso usar minha própria fonte de alimentação?
Vocês têm fontes de alimentação de 220 VCA disponíveis?
Posso controlar as colunas de elevação com um controlador de terceiros?
Posso usar duas colunas de elevação LG-11 juntas?
Qual caixa de controle devo usar com minhas colunas de elevação?
Os elevadores para mesa/escrivaninha/TV são personalizáveis?
Quais tamanhos de TV os seus elevadores de TV suportam?
Qual é a capacidade de carga dos seus elevadores de mesa/escrivaninha?
Meu atuador linear vem com suportes de montagem?
Onde posso encontrar um guia passo a passo para o meu produto?
Eu segui o diagrama de fiação, mas não está funcionando – o que devo fazer?
Fluxograma para seleção de atuadores
As caixas de controle FLTCON são compatíveis com meus atuadores?
O que é backdriving? -- O que significam as capacidades de carga dinâmica e estática? -- O que é carga lateral?
Como posso fazer um pedido?

Os pedidos podem ser feitos de uma das seguintes maneiras:

Online: Use nosso processo de pedido online, com opções de pagamento por cartão de crédito ou PayPal.

Telefone: 1-800 – 676 – 6123

E-mail: sales@progressiveautomations.com

Vocês oferecem descontos por quantidade?
Quais formas de pagamento vocês aceitam?
Em qual moeda estão os preços?
Como sei se o produto que quero está em estoque?
Quanto custará o frete e quais métodos de envio vocês oferecem?

As taxas de frete da Progressive Automations são calculadas com base em uma variedade de fatores, incluindo, entre outros: localização, quantidades e o peso total do seu pedido. Itens menores são enviados como encomenda, enquanto itens maiores e pedidos em volume são enviados por serviço de transportadora de cargas. Sempre nos esforçamos para oferecer preços de frete competitivos para todos os nossos clientes.

Os métodos de envio estão disponíveis em pedidos online e por telefone. Se você deseja receber uma estimativa do custo de frete do seu pedido, isso pode ser feito ao revisar seu carrinho de compras antes de finalizar.

Quais transportadoras vocês utilizam?
Terei que pagar algum imposto de importação?
Qual é a sua política de devoluções?
Qual é o prazo de entrega?
Vocês oferecem frete grátis?
Quero que o lado mais longo do meu tampo fique à esquerda. A estrutura de mesa em L pode ser instalada tanto à esquerda quanto à direita?

Sim, a mesa em L é versátil quanto à orientação e pode ser instalada conforme sua preferência. Aqui está um artigo passo a passo que explica como isso é possível: Manual do Usuário FLT-05

Como defino as alturas máxima/mínima da estrutura da minha mesa regulável em altura?

OBSERVAÇÃO: As etapas abaixo podem variar conforme o modelo do controle remoto que você possui. As instruções a seguir foram elaboradas para o controle remoto padrão RT-11. Para definir a altura máxima da sua estrutura, vá até a altura desejada que você quer definir e siga os passos abaixo:

  1. Pressione M e veja [5 -] indicado no visor
  2. Pressione o botão PARA CIMA e observe que [5 -] pisca
  3. Mantenha o botão M pressionado até ver [999] no visor
  4. A altura máxima foi definida

Para definir a altura mínima da sua estrutura, vá até a altura desejada que você quer definir e siga os passos abaixo:

  1. Pressione M e veja [5 -] indicado no visor
  2. Pressione o botão PARA BAIXO e observe que [5 -] pisca
  3. Mantenha o botão M pressionado até ver [000] no visor
  4. A altura mínima foi definida

Para redefinir os limites, siga os passos abaixo:

  1. Pressione M e veja [5 -] indicado no visor e solte
  2. Mantenha o botão M pressionado até ver [555]
  3. Os limites foram redefinidos
Preciso manter os botões do controle pressionados para chegar à minha altura predefinida. Há como fazer isso com apenas um toque?

OBSERVAÇÃO: As etapas abaixo podem variar conforme o modelo do controle remoto que você possui. As instruções a seguir foram feitas para o controle remoto padrão RT-11.

Se você precisa manter os botões do controle pressionados para chegar à sua altura predefinida, isso significa que sua caixa de controle está no modo momentâneo. Para configurar seu controle para o modo não momentâneo, siga os passos abaixo

  1. Certifique-se de que não há nada embaixo da sua mesa, pois precisamos entrar no procedimento de redefinição
  2. Pressione e segure o botão PARA BAIXO até o visor mostrar [ASr]
  3. Quando [ASr] aparecer, mantenha pressionado [1] e você poderá ver dois valores:

    a. 10.1 = Modo não momentâneo
    b. 10.2 = Modo momentâneo

  4. Conclua o procedimento de redefinição mantendo o botão PARA BAIXO pressionado até que sua mesa regulável em altura abaixe e eleve levemente.
Como altero a sensibilidade de detecção de colisão?

Nossas mesas reguláveis em altura têm 3 configurações para detecção de colisão, e isso pode ser ajustado conforme sua preferência. Para continuar, siga os passos abaixo:

  1. Certifique-se de que não há nada embaixo da sua mesa, pois precisamos entrar no procedimento de redefinição
  2. Pressione e segure o botão PARA BAIXO até o visor mostrar [ASr]
  3. Quando [ASr] aparecer, pressione e mantenha pressionado o botão PARA CIMA [ ^ ] e você poderá ver três valores:

    a. 10.5 = 11 libras
    b. 10.6 = 22 libras
    c. 10.7 = 33 libras

  4. Conclua o procedimento de redefinição mantendo o botão PARA BAIXO pressionado até que sua mesa regulável em altura abaixe e eleve levemente.
Meu controle remoto está mostrando um código de erro no visor? O que devo fazer?

Temos algumas etapas de solução de problemas para você seguir caso veja algum dos seguintes códigos de erro nas estruturas com caixas de controle da série FLTCON:

Confira o código de erro aqui.

Se o problema que você está enfrentando persistir após seguir estas etapas, sinta-se à vontade para entrar em contato com nossos engenheiros técnicos de produto pelo 1-800-676-6123, ou envie um e-mail para sales@progressiveautomations.com.