Controladores de motores
Persianas motorizadas modernizadas
Resortes de gas
Monitoreo de la corriente de un actuador lineal

Este código de ejemplo utiliza MegaMoto Plus y un Arduino Uno para monitorear la corriente de un actuador lineal; sin embargo, pueden utilizarse productos similares como sustitutos.

/*  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
Control de múltiples actuadores con el shield MultiMoto para Arduino
Controlador de motor Wasp para controlar actuadores lineales
Uso de relés para controlar actuadores lineales
Controlar la temporización del movimiento de un actuador lineal
Extender y retraer continuamente un actuador lineal con motor de CC sin escobillas
Códigos de ejemplo del micro actuador servo PA-12
¿Dónde puedo encontrar más información sobre sus productos?

Contamos con hojas de datos, manuales de usuario, modelos 3D, diagramas de cableado y más en nuestras secciones de Recursos y Centro de aprendizaje .

¿Cómo puedo determinar qué actuador lineal de Progressive Automations es el más adecuado para mi aplicación?
¿Qué es el ciclo de trabajo y cómo se calcula?
¿Puedo usar sus actuadores para reemplazar el que ya tengo?
¿Qué significa carrera? ¿Cómo sé qué tamaño elegir?
¿Cómo sé qué fuerza nominal es la adecuada para mi aplicación?
¿Puedo usar mi propia fuente de alimentación para mis actuadores?
¿Cómo puedo sincronizar los actuadores para que se desplacen al mismo tiempo?
¿Por qué mi actuador lineal hace tanto ruido?
¿Puedo personalizar un actuador lineal según mis especificaciones?
¿Puedo sincronizar mis actuadores lineales?
¿Hay kits de actuadores lineales disponibles?
¿La temperatura afectará a mi actuador lineal?
¿Puedo integrar uno de sus actuadores en un mecanismo de terceros?
¿Cuál es la disposición de pines de mi actuador lineal?
¿Puedo obtener modelos CAD 3D para mi actuador lineal?
¿Qué opciones de caja de control hay para mi actuador?
¿Puedo usar sus cajas de control con un producto de terceros?
¿Venden cajas de control Wi-Fi?
¿Son compatibles todas sus cajas de control con todos sus actuadores lineales?
¿Puedo usar mi propia caja de control?
¿Tienen código de ejemplo que pueda usar?
No tengo una fuente de energía – ¿qué puedo hacer?
¿Puedo usar mi propia fuente de alimentación?
¿Tienen fuentes de alimentación de 220 VAC disponibles?
¿Puedo controlar las columnas de elevación con un controlador de terceros?
¿Puedo usar dos columnas de elevación LG-11 a la vez?
¿Con qué caja de control debo emparejar mis columnas de elevación?
¿Son personalizables sus elevadores de mesa/escritorio/TV?
¿Qué tamaños de TV pueden soportar sus elevadores de TV?
¿Cuál es la capacidad de carga de sus elevadores de mesa/escritorio?
¿Mi actuador lineal viene con soportes de montaje?
¿Dónde puedo encontrar una guía paso a paso para mi producto?
Seguí el diagrama de cableado, pero no funciona. ¿Qué debo hacer?
Diagrama de flujo para la selección de actuadores
¿Son compatibles las cajas de control FLTCON con mis actuadores?
¿Qué es el backdriving? -- ¿Qué significan las capacidades de carga dinámica y estática? -- ¿Qué es la carga lateral?
¿Cómo puedo hacer un pedido?

Los pedidos se pueden realizar de una de las siguientes formas:

En línea: utilice nuestro proceso de pedido en línea con opciones para pagar con tarjeta de crédito o PayPal.

Teléfono: 1-800 – 676 – 6123

Correo electrónico:sales@progressiveautomations.com

¿Ofrecen descuentos por volumen?
¿Qué métodos de pago aceptan?
¿En qué moneda están los precios?
¿Cómo sé si el producto que quiero está disponible?
¿Cuánto costará el envío y qué métodos de envío ofrecen?

Las tarifas de envío de Progressive Automations se calculan en función de una variedad de factores que incluyen, entre otros: ubicación, cantidades y el peso total de su pedido. Los artículos más pequeños se envían por paquetería, mientras que los artículos más grandes y los pedidos al por mayor se envían a través de un servicio de transporte de carga. Siempre nos esforzamos por ofrecer precios de envío competitivos para todos nuestros clientes.

Los métodos de envío están disponibles a través de pedidos en línea y por teléfono. Si desea recibir un costo de envío estimado de su pedido, puede hacerlo revisando su carrito de compras final.

¿Qué empresas de transporte utilizan?
¿Tendré que pagar algún arancel?
¿Cuál es su política de devoluciones?
¿Cuánto tarda la entrega?
¿Ofrecen envío gratis?
Quiero que el lado más largo de mi mesa esté a la izquierda. ¿Se puede instalar el marco del escritorio de pie en forma de L a la izquierda o a la derecha?

Sí, el escritorio de pie en forma de L se puede orientar fácilmente y se puede instalar según sus preferencias. Aquí hay un artículo paso a paso que explica cómo esto es posible: FLT-05 Manual del usuario

¿Cómo configuro las alturas máxima/mínima para los marcos de mi escritorio de pie?

NOTA: Los pasos a continuación pueden variar según el modelo de control remoto que tenga. Las siguientes instrucciones se realizaron para el control remoto estándar RT-11. Para establecer la altura máxima para su marco, vaya a la altura deseada que desea establecer y siga los pasos a continuación:

  1. Presione M y vea [5 -] indicado en la pantalla
  2. Presione el botón ARRIBA y observe que [5 -] parpadea
  3. Mantenga presionado el botón M hasta que vea [999] en la pantalla
  4. La altura máxima ya ha sido establecida.

Para establecer la altura mínima para su marco, vaya a la altura deseada que desea establecer y siga los pasos a continuación:

  1. Presione M y vea [5 -] indicado en la pantalla
  2. Presione el botón ABAJO y observe que [5 -] parpadea
  3. Mantenga presionado el botón M hasta que vea [000] en la pantalla
  4. La altura mínima ya ha sido establecida.

Para restablecer los límites, siga los pasos a continuación:

  1. Presione M y vea [5 -] indicado en la pantalla y suelte
  2. Mantenga presionada la M y verá [555]
  3. Los límites se han restablecido
Tengo que mantener presionados los botones del control remoto para llegar a mi altura preestablecida. ¿Hay alguna manera de hacer esto con una sola pulsación?

NOTA: Los pasos a continuación pueden variar según el modelo de control remoto que tenga. Las siguientes instrucciones se realizaron para el control remoto estándar RT-11.

Si tiene que mantener presionados los botones del control remoto para llegar a su altura preestablecida, esto significa que su caja de control está en control momentáneo. Para configurar su control remoto en modo no momentáneo, siga los pasos a continuación

  1. Asegúrate de que no haya nada debajo de tu escritorio, ya que tenemos que entrar en el procedimiento de reinicio.
  2. Mantenga presionado el botón ABAJO hasta que la pantalla muestre [ASr]
  3. Una vez que se muestre [ASr], presione y mantenga presionado [1] y podrá ver dos valores:

    a. 10.1 = Modo no momentáneo
    b. 10.2 = Modo momentáneo

  4. Complete el procedimiento de reinicio manteniendo presionado el botón ABAJO hasta que su escritorio de pie baje y suba ligeramente.
¿Cómo cambio la sensibilidad de detección de colisiones?

Nuestros escritorios de pie tienen 3 configuraciones para la detección de colisiones, y esto se puede configurar según sus preferencias. Para continuar, siga los pasos a continuación:

  1. Asegúrate de que no haya nada debajo de tu escritorio ya que tenemos que ingresar al procedimiento de reinicio.
  2. Mantenga presionado el botón ABAJO hasta que la pantalla muestre [ASr]
  3. Una vez que se muestre [ASr], presione y mantenga presionado el botón ARRIBA [ ^ ] y podrá ver tres valores:

    a. 10,5 = 11 libras
    b. 10,6 = 22 libras
    C. 10,7 = 33 libras

  4. Complete el procedimiento de reinicio manteniendo presionado el botón ABAJO hasta que su escritorio de pie baje y suba ligeramente.
¿Mi control remoto muestra un código de error en la pantalla? ¿Qué tengo que hacer?

Tenemos algunos pasos de solución de problemas que debe seguir si ve alguno de los siguientes códigos de error en los marcos con cajas de control de la serie FLTCON:

Verifique el código de error aquí .

Si el problema que tiene persiste después de seguir estos pasos, no dude en comunicarse con nuestros ingenieros técnicos de productos al 1-800-676-6123 o envíenos un correo electrónico a sales@progressiveautomations.com .