Modernizacja zmotoryzowanych kloszy
Sprężyny gazowe
Monitorowanie prądu siłownika liniowego

Ten przykładowy kod wykorzystuje MegaMoto Plus i Arduino Uno do monitorowania prądu siłownika liniowego; można jednak użyć podobnych produktów jako zamienników.

/*  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
Sterowanie wieloma siłownikami za pomocą osłony multimoto Arduino
Sterownik silnika osy do sterowania siłownikiem liniowym
Korzystanie z przekaźników do sterowania siłownikami liniowymi
Sterowanie czasem ruchu pojedynczych siłowników liniowych
Ciągłe przedłużanie i wycofywanie siłownika liniowego z bezszczotkowym silnikiem prądu stałego
Kody przykładowe mikrosiłownika PA-12
Gdzie mogę znaleźć dodatkowe informacje na temat Państwa produktów?

Mamy karty danych, instrukcje obsługi, modele 3D, schematy okablowania i więcej w naszych Zasobach a Centrum wiedzy sekcjach.

Jak mogę określić, który siłownik liniowy progressive automations najlepiej nadaje się do mojego zastosowania?
Co to jest cykl pracy i jak jest obliczany?
Czy mogę użyć Państwa siłowników jako zamiennika dla tego, który już posiadam?
Co oznacza udar mózgu? Skąd mam wiedzieć, jaki rozmiar wybrać?
Skąd mam wiedzieć, która ocena siły jest odpowiednia dla mojej aplikacji?
Czy mogę użyć własnego zasilacza jako źródła zasilania dla moich siłowników?
Jak mogę sterować siłownikami, aby poruszały się jednocześnie?
Dlaczego mój siłownik liniowy wydaje tyle hałasu?
Czy mogę dostosować siłownik liniowy do moich specyfikacji?
Czy mogę zsynchronizować moje siłowniki liniowe?
Czy są dostępne zestawy siłowników liniowych?
Czy temperatura wpłynie na mój siłownik liniowy?
Czy mogę zintegrować jeden z waszych siłowników z mechanizmem firmy trzeciej?
Jakie jest przyporządkowanie pinów mojego siłownika liniowego?
Czy mogę otrzymać modele CAD 3D dla mojego siłownika liniowego?
Jakie są opcje skrzynki sterującej dla mojego siłownika?
Czy mogę używać waszych skrzynek sterujących z produktem innej firmy?
Czy sprzedajecie Państwo skrzynki sterujące Wi‑Fi?
Czy wszystkie Państwa skrzynki sterujące są kompatybilne ze wszystkimi siłownikami liniowymi?
Czy mogę użyć własnej skrzynki sterującej?
Czy masz przykładowy kod, którego mogę użyć?
Nie mam źródła zasilania – co mogę zrobić?
Czy mogę użyć własnego zasilacza?
Czy macie dostępne zasilacze 220 VAC?
Czy mogę sterować kolumnami podnoszącymi za pomocą sterownika innej firmy?
Czy mogę użyć dwóch kolumn podnoszących LG-11 jednocześnie?
Z jakim sterownikiem powinienem połączyć moje kolumny podnośne?
Czy wasze podnośniki do stołów/biurek/telewizorów są konfigurowalne?
Jakie rozmiary telewizorów mogą obsługiwać Państwa podnośniki do telewizorów?
Jaki jest udźwig Państwa podnośników do stołów/biurek?
Czy mój siłownik liniowy jest dostarczany z uchwytami montażowymi?
Where can I find a step-by-step guide for my product?
Postępowałem zgodnie ze schematem połączeń, ale to nie działa – co powinienem zrobić?
Schemat wyboru siłownika
Czy skrzynki sterujące FLTCON będą współpracować z moimi siłownikami?
Co to jest backdrive? - Co oznaczają obciążenia dynamiczne i statyczne? - Co to jest ładowanie boczne?
Jak mogę złożyć zamówienie?

Zamówienia można składać na jeden z następujących sposobów:

Przez Internet: Skorzystaj z naszego internetowego procesu składania zamówień z możliwością płatności kartą kredytową lub PayPal.

Telefon: 1-800 – 676 – 6123

E-mail: sales@progressiveautomations.com

Czy oferujecie rabaty ilościowe?
Jakie metody płatności akceptujecie?
W jakiej walucie podane są Państwa ceny?
Jak mogę sprawdzić, czy produkt, który chcę, jest na stanie?
Ile będzie kosztować wysyłka i jakie metody dostawy oferujecie?

Opłaty wysyłkowe Progressive Automations są obliczane na podstawie różnych czynników, w tym między innymi: lokalizacji, ilości oraz całkowitej wagi zamówienia. Mniejsze przedmioty wysyłane są przesyłką paczkową, natomiast większe przedmioty i zamówienia hurtowe wysyłane są za pośrednictwem przewoźnika frachtowego. Zawsze staramy się zapewniać konkurencyjne ceny wysyłki dla wszystkich naszych klientów.

Metody wysyłki są dostępne przy zamówieniach online i telefonicznych. Jeśli chcesz otrzymać szacunkowy koszt wysyłki swojego zamówienia, możesz to sprawdzić, przeglądając końcowy koszyk zakupowy.

Z jakich firm przewozowych korzystacie?
Czy zostanę obciążony jakimkolwiek podatkiem celnym?
Jaka jest wasza polityka zwrotów?
Ile trwa dostawa?
Czy oferujecie darmową wysyłkę?
Chcę, aby dłuższa strona mojego blatu była po lewej. Czy stelaż biurka w kształcie litery L można zamontować po lewej lub prawej stronie?

Tak, biurko z regulacją wysokości w kształcie litery L jest elastyczne pod względem orientacji i można je zamontować zgodnie z Twoimi preferencjami. Oto artykuł krok po kroku wyjaśniający, jak to zrobić: Instrukcja użytkownika FLT-05

Jak ustawić maksymalną/minimalną wysokość stelaża mojego biurka?

UWAGA: Poniższe kroki mogą się różnić w zależności od modelu posiadanego pilota. Te instrukcje dotyczą standardowego pilota RT-11. Aby ustawić maksymalną wysokość stelaża, przejdź do żądanej wysokości i wykonaj poniższe kroki:

  1. Naciśnij M — na wyświetlaczu pojawi się [5 -]
  2. Naciśnij przycisk UP i zauważ, że [5 -] miga
  3. Przytrzymaj przycisk M, aż na wyświetlaczu zobaczysz [999]
  4. Maksymalna wysokość została ustawiona

Aby ustawić minimalną wysokość stelaża, przejdź do żądanej wysokości i wykonaj poniższe kroki:

  1. Naciśnij M — na wyświetlaczu pojawi się [5 -]
  2. Naciśnij przycisk DOWN i zauważ, że [5 -] miga
  3. Przytrzymaj przycisk M, aż na wyświetlaczu zobaczysz [000]
  4. Minimalna wysokość została ustawiona

Aby zresetować limity, wykonaj poniższe kroki:

  1. Naciśnij M — na wyświetlaczu pojawi się [5 -] — i zwolnij
  2. Przytrzymaj M, aż zobaczysz [555]
  3. Limity zostały zresetowane
Muszę przytrzymywać przyciski na pilocie, aby dojść do zapisanej wysokości. Czy można zrobić to jednym naciśnięciem?

UWAGA: Poniższe kroki mogą się różnić w zależności od modelu posiadanego pilota. Te instrukcje dotyczą standardowego pilota RT-11.

Jeśli musisz przytrzymywać przyciski pilota, aby osiągnąć zapisaną wysokość, oznacza to, że Twoja skrzynka sterująca działa w trybie przytrzymania (momentary). Aby ustawić pilota w trybie jednokrotnego naciśnięcia (non‑momentary), wykonaj poniższe kroki

  1. Upewnij się, że pod biurkiem nic nie ma, ponieważ musimy uruchomić procedurę resetu
  2. Przytrzymaj przycisk DOWN, aż na wyświetlaczu pojawi się [ASr]
  3. Gdy pojawi się [ASr], przytrzymaj [1] — możesz zobaczyć dwie wartości:

    a. 10.1 = Tryb jednokrotnego naciśnięcia (Non-momentary Mode)
    b. 10.2 = Tryb przytrzymania (Momentary Mode)

  4. Dokończ procedurę resetu, przytrzymując przycisk DOWN, aż biurko lekko opuści się i podniesie.
Jak zmienić czułość wykrywania kolizji?

Nasze biurka z regulacją wysokości mają 3 ustawienia wykrywania kolizji; możesz wybrać je według własnych preferencji. Aby kontynuować, wykonaj poniższe kroki:

  1. Upewnij się, że pod biurkiem nic nie ma, ponieważ musimy uruchomić procedurę resetu
  2. Przytrzymaj przycisk DOWN, aż na wyświetlaczu pojawi się [ASr]
  3. Gdy pojawi się [ASr], przytrzymaj przycisk UP [ ^ ] — możesz zobaczyć trzy wartości:

    a. 10.5 = 11 funtów
    b. 10.6 = 22 funtów
    c. 10.7 = 33 funtów

  4. Dokończ procedurę resetu, przytrzymując przycisk DOWN, aż biurko lekko opuści się i podniesie.
Na wyświetlaczu pilota pojawia się kod błędu. Co zrobić?

Przygotowaliśmy kilka kroków rozwiązywania problemów, jeśli na stelażach ze skrzynkami sterującymi serii FLTCON pojawi się którykolwiek z poniższych kodów błędu:

Sprawdź kod błędu tutaj.

Jeśli problem nadal występuje po wykonaniu tych kroków, skontaktuj się z naszymi inżynierami technicznymi pod numerem 1-800-676-6123 lub napisz do nas na adres sales@progressiveautomations.com.