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 tablero quede a la izquierda. ¿Se puede instalar el bastidor de escritorio de pie en forma de L tanto a la izquierda como a la derecha?

Sí, el escritorio de pie en forma de L admite ambas orientaciones y puede instalarse0segfun tu preferencia. Aquded tienes un artedculo paso a paso que explica cf3mo esto es posible:a Manual del usuario FLT-05

bfCf3mo configuro las alturas me1xima/mednima de mi bastidor de escritorio de pie?

NOTA: Los pasos a continuacif3n pueden variar segfan el modelo de control remoto que tengas. Las siguientes instrucciones este1n hechas para el control RT-11 este1ndar. Para establecer la altura me1xima de tu bastidor, ve a la altura deseada y sigue los pasos a continuacif3n:

09
  1. Presiona M y vere1s [5 -] indicado en la pantalla
  2. 09
  3. Presiona el botf3n ARRIBA y notare1s que [5 -] parpadea
  4. 09
  5. Mante9n presionado el botf3n M hasta que veas [999] en la pantalla
  6. 09
  7. La altura me1xima ya se ha establecido

Para establecer la altura mednima de tu bastidor, ve a la altura deseada y sigue los pasos a continuacif3n:

09
  1. Presiona M y vere1s [5 -] indicado en la pantalla
  2. 09
  3. Presiona el botf3n ABAJO y notare1s que [5 -] parpadea
  4. 09
  5. Mante9n presionado el botf3n M hasta que veas [000] en la pantalla
  6. 09
  7. La altura mednima ya se ha establecido

Para restablecer los ledmites, sigue los pasos a continuacif3n:

09
  1. Presiona M y vere1s [5 -] indicado en la pantalla y sue9ltalo
  2. 09
  3. Mante9n presionado M hasta que veas [555]
  4. 09
  5. Los ledmites se han restablecido
Tengo que mantener presionados los botones del control para alcanzar mi altura preestablecida. bfSe puede hacer con una sola pulsacif3n?

NOTA: Los pasos a continuacif3n pueden variar segfan el modelo de control remoto que tengas. Las siguientes instrucciones este1n hechas para el control RT-11 este1ndar.

Si debes mantener presionados los botones del control para llegar a tu altura preestablecida, significa que tu caja de control este1 en modo momente1neo. Para cambiar tu control a modo no momente1neo, sigue los pasos a continuacif3n

09
  1. Asegfarate de que no haya nada debajo de tu escritorio, ya que debemos entrar en el procedimiento de restablecimiento
  2. 09
  3. Mante9n presionado el botf3n ABAJO hasta que la pantalla muestre [ASr]
  4. 09
  5. Una vez que aparezca [ASr], mante9n presionado [1] y podre1s ver dos valores:

    a. 10.1 = Modo no momente1neo
    b. 10.2 = Modo momente1neo

  6. Completa el procedimiento de restablecimiento manteniendo presionado el botf3n ABAJO hasta que tu escritorio de pie descienda y se eleve ligeramente.
bfCf3mo cambio la sensibilidad de deteccif3n de colisiones?

Nuestros escritorios de pie tienen 3 configuraciones para la deteccif3n de colisiones, y puedes ajustarlas segfan tu preferencia. Para continuar, sigue los pasos a continuacif3n:

  1. Asegfarate de que no haya nada debajo de tu escritorio ya que debemos entrar en el procedimiento de restablecimiento
  2. 09
  3. Mante9n presionado el botf3n ABAJO hasta que la pantalla muestre [ASr]
  4. Una vez que aparezca [ASr], mante9n presionado el botf3n ARRIBA [ ^ ] y podre1s ver tres valores:

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

  5. Completa el procedimiento de restablecimiento manteniendo presionado el botf3n ABAJO hasta que tu escritorio de pie descienda y se eleve ligeramente.
bfMi control muestra un cf3digo de error en la pantalla? bfQue9 debo hacer?

Tenemos algunos pasos de solucif3n de problemas para que sigas si ves cualquiera de los siguientes cf3digos de error en los bastidores con cajas de control de la serie FLTCON:

Consulta el cf3digo de erroraaqued.

Si el problema que este1s experimentando persiste despue9s de seguir estos pasos, no dudes en comunicarte con nuestros ingenieros de producto te9cnico al 1-800-676-6123, o envedanos un correo electrf3nico a sales@progressiveautomations.com.