Retrofit Motorized Shades
Gas Springs
Monitoring the current of a linear actuator

Tento ukážkový kód používa MegaMoto Plus a Arduino Uno na sledovanie prúdu lineárneho aktuátora; podobné produkty však možno použiť ako náhrady.

/*  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; // piny pre Megamoto

const int buttonLeft = 4;
const int buttonRight = 5;//tlačidlá na pohyb motora

const int CPin1 = A5;  // spätná väzba motora

int leftlatch = LOW;
int rightlatch = LOW;//zámky motora (použité v logike kódu)

int hitLimits = 0;//začnite na 0
int hitLimitsmax = 10;//hodnoty na zistenie, či boli dosiahnuté koncové dorazy

long lastfeedbacktime = 0; // musí byť typu long, inak dôjde k pretečeniu
int firstfeedbacktimedelay = 750; // prvé oneskorenie na ignorovanie prúdovej špičky
int feedbacktimedelay = 50; // oneskorenie medzi cyklami spätnej väzby; ako často sa má kontrolovať motor
long currentTimefeedback = 0; // musí byť typu long, inak dôjde k pretečeniu

int debounceTime = 300; // čas na odrušenie zákmitov tlačidiel; nižšie hodnoty zvyšujú citlivosť
long lastButtonpress = 0; // časovač na odrušenie zákmitov
long currentTimedebounce = 0;

int CRaw = 0;      // vstupná hodnota pre meranie prúdu
int maxAmps = 0; // spúšťacia hranica 

bool dontExtend = false;
bool firstRun = true;
bool fullyRetracted = false;//logika programu

void setup()
{
  Serial.begin(9600);
  pinMode(EnablePin, OUTPUT);
  pinMode(PWMPinA, OUTPUT);
  pinMode(PWMPinB, OUTPUT);//Nastavenie výstupov motora
  pinMode(buttonLeft, INPUT);
  pinMode(buttonRight, INPUT);//tlačidlá
  
  digitalWrite(buttonLeft, HIGH);
  digitalWrite(buttonRight, HIGH);//povoliť vnútorné pull‑up odpory
  pinMode(CPin1, INPUT);//nastaviť vstup spätnej väzby
  
  currentTimedebounce = millis();
  currentTimefeedback = 0;//nastaviť počiatočné časy

  maxAmps = 15;// NASTAVTE MAXIMÁLNY PRÚD TU

}//end setup

void loop()
{
  latchButtons();//skontroluje tlačidlá, či sa treba pohnúť

  moveMotor();//skontroluje zámky, vysunie alebo zasunie motor

}//end main loop

void latchButtons()
{
  if (digitalRead(buttonLeft)==LOW)//ľavé je dopredu
  {
    currentTimedebounce = millis() - lastButtonpress;// skontroluje čas od posledného stlačenia
    if (currentTimedebounce > debounceTime && dontExtend == false)//keď je nastavené dontExtend, ignorujú sa všetky stlačenia dopredu
    {
      leftlatch = !leftlatch;// ak sa motor hýbe, zastav; ak stojí, začni sa hýbať
      firstRun = true;// nastaví príznak firstRun na ignorovanie prúdovej špičky
      fullyRetracted = false; // po pohybe dopredu už nie je úplne zasunutý
      lastButtonpress = millis();//uloží čas posledného stlačenia tlačidla
      return;
    }//end if
  }//end btnLEFT

  if (digitalRead(buttonRight)==LOW)//pravé je dozadu
  {
    currentTimedebounce = millis() - lastButtonpress;// skontroluje čas od posledného stlačenia

    if (currentTimedebounce > debounceTime)
    {
      rightlatch = !rightlatch;// ak sa motor hýbe, zastav; ak stojí, začni sa hýbať
      firstRun = true;// nastaví príznak firstRun na ignorovanie prúdovej špičky
      lastButtonpress = millis();//uloží čas posledného stlačenia tlačidla
      return;    }//end if
  }//end btnRIGHT
}//end latchButtons

void moveMotor()
{
  if (leftlatch == HIGH) motorForward(255); //rýchlosť = 0-255
  if (leftlatch == LOW) motorStop();
  if (rightlatch == HIGH) motorBack(255); //rýchlosť = 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);//pohnúť motorom
    if (firstRun == true) delay(firstfeedbacktimedelay); // väčšie oneskorenie na ignorovanie prúdovej špičky
    else delay(feedbacktimedelay); //malé oneskorenie na dosiahnutie rýchlosti

    getFeedback();
    firstRun = false;
    
    latchButtons();//znova skontrolovať tlačidlá
  }//end while

}//end motorForward

void motorBack (int speeed)
{
  while (rightlatch == HIGH)
  {
    digitalWrite(EnablePin, HIGH);
    analogWrite(PWMPinA, 0);
    analogWrite(PWMPinB, speeed);//pohnúť motorom
    if (firstRun == true) delay(firstfeedbacktimedelay);// väčšie oneskorenie na ignorovanie prúdovej špičky
    else delay(feedbacktimedelay); //malé oneskorenie na dosiahnutie rýchlosti
    getFeedback();

    firstRun = false;
    
    latchButtons();//znova skontrolovať tlačidlá

  }//end while

  dontExtend = false;//po zasunutí opäť umožní vysúvanie motora

}//end motorBack

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

  digitalWrite(EnablePin, LOW);
  firstRun = true;//po zastavení motora znova povolí firstRun kvôli nábehovým prúdovým špičkám

}//end stopMotor

void getFeedback()
{
  CRaw = analogRead(CPin1); // Čítať prúd

  if (CRaw == 0 && hitLimits < hitLimitsmax) hitLimits = hitLimits + 1;
  else hitLimits = 0; // skontrolovať, či je motor na dorazoch a prúd sa zastavil 

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

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

  if (CRaw > maxAmps)
  {
    dontExtend = true;
    leftlatch = LOW; //zastaviť, ak je prúd nad maximom
  }//end if

  lastfeedbacktime = millis();//uložiť predchádzajúci čas prijatia spätnej väzby
}//end getFeedback
Controlling multiple actuators with the multimoto Arduino shield
Wasp motor controller for linear actuator control
Using relays to control linear actuators
Controlling the timing of a single linear actuators motion
Continuously extend & retract a linear actuator with brushless DC motor
PA-12 micro servo actuator sample codes
Where can I find additional information on your products?

We have data sheets, user manuals, 3D models, wiring diagrams and more in our Resources and Learning Center sections.

How can I determine which progressive automations linear actuator is best suited for my application?
What is duty cycle and how is it calculated?
Can I use your actuators to replace the one that I already have?
What does stroke mean? How am I supposed to know which size to choose?
How do I know which force rating is right for my application?
Can I use my own power supply as a source for my actuators?
How can I control actuators to travel at the same time?
Why is my linear actuator making so much noise?
Can I customize a linear actuator to my specifications?
Can I synchronize my linear actuators?
Are linear actuator kits available?
Will temperature affect my linear actuator?
Can I implement one of your actuators into a third-party mechanism?
What is the pin out for my linear actuator?
Can I get 3D CAD models for my linear actuator?
What are the control box options for my actuator?
Can I use your control boxes with a third-party product?
Do you sell Wi-Fi control boxes?
Are all of your control boxes compatible with all of your linear actuators?
Can I use my own control box?
Do you have sample coding I could use?
I don’t have a power source – what can I do?
Can I use my own power supply?
Do you have 220 VAC power supplies available?
Can I control the lifting columns with a third-party controller?
Can I use two of the LG-11 lifting columns together?
What control box should I pair with my lifting columns?
Are your table/desk/TV lifts customizable?
What TV sizes can your TV lifts hold?
What is the weight capacity of your table/desk lifts?
Does my linear actuator come with mounting brackets?
Where can I find a step-by-step guide for my product?
I followed the wiring diagram but it’s not working – what should I do?
Flowchart for actuator selection
Can the FLTCON control boxes work with my actuators?
What is backdriving? -- What does dynamic and static load ratings mean? -- What is lateral loading?
How can I place an order?

Orders can be placed by one of the following ways:

Online: Use our online order process with options to pay by Credit Card or PayPal.

Phone: 1-800 – 676 – 6123

Email: sales@progressiveautomations.com

Do you offer quantity discounts?
What methods of payment do you accept?
What form of currency are your prices in?
How do I know if the product I want is in stock?
How much will shipping cost and what methods do you offer?

Progressive Automations’ shipping fees are calculated based on a variety of factors including but not limited to: location, quantities, and the total weight of your order. Smaller items are shipped via parcel while larger items and bulk orders are shipped via a freight carrier service. We always endeavor to provide competitive shipping prices for all our customers.

Shipping methods are available through online and phone orders. If you wish to receive an estimated shipping cost of your order, this can be done by reviewing your final shopping cart.

What freight companies do you use?
Will I be charged with any duty tax?
What is your return policy?
How long is delivery?
Do you offer free shipping?
Chcem mať dlhšiu stranu svojej dosky stola naľavo. Dá sa rám stojaceho stola v tvare L nainštalovať na ľavú aj pravú stranu?

Áno, stojaci stôl v tvare L je prispôsobivý orientácii a môžete ho nainštalovať podľa svojich preferencií. Tu je podrobný návod krok za krokom, ktorý vysvetľuje, ako je to možné: FLT-05 Používateľská príručka

Ako nastavím maximálnu/minimálnu výšku pre svoj rám stojaceho stola?

POZNÁMKA: Nasledujúce kroky sa môžu líšiť v závislosti od modelu vášho diaľkového ovládača. Tieto pokyny sú pripravené pre štandardný diaľkový ovládač RT-11. Ak chcete nastaviť maximálnu výšku rámu, prejdite na požadovanú výšku a postupujte podľa týchto krokov:

  1. Stlačte M; na displeji sa zobrazí [5 -]
  2. Stlačte tlačidlo UP; [5 -] bliká
  3. Podržte tlačidlo M, kým sa na displeji nezobrazí [999]
  4. Maximálna výška je teraz nastavená

Ak chcete nastaviť minimálnu výšku rámu, prejdite na požadovanú výšku a postupujte podľa týchto krokov:

  1. Stlačte M; na displeji sa zobrazí [5 -]
  2. Stlačte tlačidlo DOWN; [5 -] bliká
  3. Podržte tlačidlo M, kým sa na displeji nezobrazí [000]
  4. Minimálna výška je teraz nastavená

Ak chcete limity resetovať, postupujte podľa nasledujúcich krokov:

  1. Stlačte M, kým sa na displeji zobrazí [5 -], potom uvoľnite
  2. Podržte M, kým neuvidíte [555]
  3. Limity boli resetované
Musím držať tlačidlá na diaľkovom ovládači, aby som dosiahol svoju predvolenú výšku. Dá sa to jedným stlačením?

POZNÁMKA: Kroky nižšie sa môžu líšiť v závislosti od modelu vášho diaľkového ovládača. Nasledujúce pokyny sú určené pre štandardný diaľkový ovládač RT-11.

Ak musíte držať tlačidlá diaľkového ovládania, aby ste dosiahli svoju predvolenú výšku, znamená to, že vaša riadiaca jednotka je v momentary režime. Ak chcete prepnúť diaľkové ovládanie do non‑momentary režimu, postupujte podľa týchto krokov

  1. Uistite sa, že pod stolom nič nie je, pretože musíme spustiť resetovací postup
  2. Stlačte a podržte tlačidlo DOWN, kým sa na displeji nezobrazí [ASr]
  3. Keď sa zobrazí [ASr], stlačte a podržte [1]; môžete vidieť dve hodnoty:

    a. 10.1 = Non‑momentary režim
    b. 10.2 = Momentary režim

  4. Dokončite resetovací postup podržaním tlačidla DOWN, kým sa váš stôl mierne nespustí a znovu nezodvihne.
Ako zmením citlivosť detekcie kolízie?

Naše stojace stoly majú 3 nastavenia detekcie kolízie a tieto nastavenia si môžete prispôsobiť podľa svojich preferencií. Postupujte podľa nasledujúcich krokov:

  1. Uistite sa, že pod stolom nič nie je, keďže musíme spustiť resetovací postup
  2. Stlačte a podržte tlačidlo DOWN, kým sa na displeji nezobrazí [ASr]
  3. Keď sa zobrazí [ASr], stlačte a podržte tlačidlo UP [ ^ ]; môžete vidieť tri hodnoty:

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

  4. Dokončite resetovací postup podržaním tlačidla DOWN, kým sa váš stôl mierne nespustí a znovu nezodvihne.
Na diaľkovom ovládači sa zobrazuje chybový kód. Čo mám robiť?

Máme pre vás niekoľko krokov na riešenie problémov, ak sa na rámoch s riadiacimi jednotkami série FLTCON zobrazí niektorý z nasledujúcich chybových kódov:

Skontrolujte chybový kód tu.

Ak problém pretrváva aj po vykonaní týchto krokov, obráťte sa na našich technických produktových inžinierov na čísle 1-800-676-6123 alebo nám napíšte na sales@progressiveautomations.com.