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 monitorovanie prúdu lineárneho aktuátora; podobné produkty však možno použiť ako náhrady.

/*  Kód na monitorovanie odberu prúdu aktuátora a na odpojenie napájania,
  ak stúpne nad určitú hodnotu.

  Napísali Progressive Automations
  19. augusta 2015

  Hardvér:
  - RobotPower MegaMoto riadiace dosky
  - Arduino Uno
  - 2 tlačidlá
 */

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ávery motora (použité na logiku kódu)

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

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

int debounceTime = 300; // čas na odrušenie stlačení tlačidiel, nižšia hodnota = citlivejšie tlačidlá
long lastButtonpress = 0; // časovač na odrušenie
long currentTimedebounce = 0;

int CRaw = 0;      // vstupná hodnota pre čítanie prúdu
int maxAmps = 0; // prahová hodnota vypnutia 

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);//Nastaviť výstupy motora
  pinMode(buttonLeft, INPUT);
  pinMode(buttonRight, INPUT);//tlačidlá
  
  digitalWrite(buttonLeft, HIGH);
  digitalWrite(buttonRight, HIGH);//povoliť interné pullupy
  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();//skontrolovať tlačidlá, či je potrebný pohyb

  moveMotor();//skontrolovať závery, pohnúť motorom dnu alebo von

}//end main loop

void latchButtons()
{
  if (digitalRead(buttonLeft)==LOW)//ľavé je dopredu
  {
    currentTimedebounce = millis() - lastButtonpress;// skontrolovať čas od posledného stlačenia
    if (currentTimedebounce > debounceTime && dontExtend == false)//keď sa aktivuje dontExtend, ignorovať všetky stlačenia dopredu
    {
      leftlatch = !leftlatch;// ak sa motor hýbe, zastaviť; ak stojí, spustiť
      firstRun = true;// nastaviť príznak firstRun na ignorovanie počiatočnej špičky prúdu
      fullyRetracted = false; // po pohybe dopredu už nie je úplne zasunutý
      lastButtonpress = millis();//uložiť čas posledného stlačenia
      return;
    }//end if
  }//end btnLEFT

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

    if (currentTimedebounce > debounceTime)
    {
      rightlatch = !rightlatch;// ak sa motor hýbe, zastaviť; ak stojí, spustiť
      firstRun = true;// nastaviť príznak firstRun na ignorovanie počiatočnej špičky prúdu
      lastButtonpress = millis();//uložiť čas posledného stlačenia
      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);//pohyb motora
    if (firstRun == true) delay(firstfeedbacktimedelay); // väčšie oneskorenie na ignorovanie špičky prúdu
    else delay(feedbacktimedelay); // malé oneskorenie na dosiahnutie rýchlosti

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

}//end motorForward

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

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

  }//end while

  dontExtend = false;//po zasunutí znova povoliť vysúvanie motora

}//end motorBack

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

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

}//end stopMotor

void getFeedback()
{
  CRaw = analogRead(CPin1); // Čítanie prúdu

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

  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 spätná väzba prekročí maximum
  }//end if

  lastfeedbacktime = millis();//uložiť čas predchádzajúceho čítania 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.