Controladores de motor
Retrofit de persianas motorizadas
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 elevatória?

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 padrão RT-11. Para definir a altura máxima da sua estrutura, vá até a altura desejada e siga as etapas abaixo:

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

Para definir a altura mínima da sua estrutura, vá até a altura desejada e siga as etapas abaixo:

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

Para redefinir os limites, siga as etapas abaixo:

  1. Pressione M e veja [5 -] indicado no display e solte
  2. Mantenha o M pressionado até ver [555]
  3. Os limites foram redefinidos
Preciso manter os botões do controle pressionados para alcançar minha altura predefinida. Dá para 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 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á em modo momentâneo. Para mudar seu controle para o modo não momentâneo, siga as etapas abaixo

  1. Certifique-se de que não haja nada embaixo da sua mesa, pois precisamos entrar no procedimento de redefinição
  2. Pressione e segure o botão DOWN até o display mostrar [ASr]
  3. Assim que [ASr] aparecer, pressione e segure [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 DOWN pressionado até que sua mesa abaixe e levante levemente.
Como altero a sensibilidade de detecção de colisão?

Nossas mesas elevatórias têm 3 configurações de detecção de colisão, e você pode ajustá-las conforme sua preferência. Para continuar, siga as etapas abaixo:

  1. Certifique-se de que não haja nada embaixo da sua mesa, pois precisamos entrar no procedimento de redefinição
  2. Pressione e segure o botão DOWN até o display mostrar [ASr]
  3. Assim que [ASr] aparecer, pressione e segure o botão UP [ ^ ] e você poderá ver três valores:

    a. 10,5 = 11 lbs
    b. 10,6 = 22 lbs
    c. 10,7 = 33 lbs

  4. Conclua o procedimento de redefinição mantendo o botão DOWN pressionado até que sua mesa abaixe e levante levemente.
Meu controle está mostrando um código de erro no display? 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:

Verifique o código de erro aqui.

Se o problema persistir após seguir essas etapas, entre em contato com nossos engenheiros técnicos de produto pelo 1-800-676-6123, ou envie um e-mail para sales@progressiveautomations.com.