Nachrüstbare motorisierte Rollos
Stromüberwachung eines Linearantriebs

Dieser Beispielcode verwendet MegaMoto Plus und einen Arduino Uno, um den Strom eines Linearantriebs zu überwachen, jedoch können ähnliche Produkte als Ersatz dienen.

/* 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
Mehrere Linearantriebe mit dem MultiMoto Arduino Shield steuern
Wasp-Motorsteuerung zur Steuerung eines Linearantriebs
Verwendung von Relais zur Steuerung von Linearantrieben
Zeitsteuerung der Bewegung eines einzelnen Linearantriebs
Einen Linearantrieb mit bürstenlosem Gleichstrommotor kontinuierlich aus- und einfahren
Beispielcodes für den PA-12 Micro-Servo-Linearantrieb
Wo finde ich weitere Informationen zu Ihren Produkten?

Wir haben Datenblätter, Benutzerhandbücher, 3D-Modelle, Schaltpläne und mehr in unseren Ressourcen und Lernzentrum Bereichen.

Wie kann ich ermitteln, welcher Linearantrieb von Progressive Automations am besten für meine Anwendung geeignet ist?
Was ist der Arbeitszyklus und wie wird er berechnet?
Kann ich Ihre Linearantriebe als Ersatz für meinen vorhandenen Antrieb verwenden?
Was bedeutet Hublänge? Woher soll ich wissen, welche Größe ich wählen soll?
Wie weiß ich, welche Kraftangabe für meine Anwendung die richtige ist?
Kann ich mein eigenes Netzteil als Stromquelle für meine Linearantriebe verwenden?
Wie kann ich Aktuatoren so steuern, dass sie gleichzeitig verfahren?
Warum ist mein Linearantrieb so laut?
Kann ich einen Linearantrieb nach meinen Spezifikationen anpassen?
Kann ich meine Linearantriebe synchronisieren?
Sind Linearantrieb-Kits erhältlich?
Beeinflusst die Temperatur meinen Linearantrieb?
Kann ich einen Ihrer Linearantriebe in einen Mechanismus eines Drittanbieters integrieren?
Wie ist die Pinbelegung meines Linearantriebs?
Kann ich 3D-CAD-Modelle für meinen Linearantrieb erhalten?
Welche Steuerbox-Optionen gibt es für meinen Linearantrieb?
Kann ich Ihre Steuerboxen mit einem Produkt eines Drittanbieters verwenden?
Verkaufen Sie Wi-Fi-Steuerboxen?
Sind alle Ihre Steuerboxen mit allen Ihren Linearantrieben kompatibel?
Kann ich meine eigene Steuerbox verwenden?
Haben Sie Beispielcode, den ich verwenden kann?
Ich habe keine Stromquelle – was kann ich tun?
Kann ich mein eigenes Netzteil verwenden?
Haben Sie Netzteile für 220 VAC verfügbar?
Kann ich die Hubsäulen mit einem Controller eines Drittanbieters steuern?
Kann ich zwei der LG-11-Hubsäulen zusammen verwenden?
Welche Steuerbox sollte ich mit meinen Hubsäulen koppeln?
Sind Ihre Tisch-/Schreibtisch-/TV-Lifte anpassbar?
Welche TV-Größen können Ihre TV-Lifte aufnehmen?
Wie hoch ist die Tragfähigkeit Ihrer Tisch-/Schreibtischlifte?
Wird mein Linearantrieb mit Montagehalterungen geliefert?
Wo finde ich eine Schritt-für-Schritt-Anleitung für mein Produkt?
Ich bin dem Schaltplan gefolgt, aber es funktioniert nicht – was soll ich tun?
Flussdiagramm zur Auswahl eines Linearantriebs
Sind die FLTCON-Steuerboxen mit meinen Linearantrieben kompatibel?
Was ist Backdriving? -- Was bedeuten dynamische und statische Lastangaben? -- Was ist eine Querbelastung?
Wie kann ich eine Bestellung aufgeben?

Bestellungen können auf eine der folgenden Arten aufgegeben werden:

Online: Nutzen Sie unseren Online-Bestellprozess mit der Möglichkeit, per Kreditkarte oder PayPal zu bezahlen.

Telefon: 1-800 – 676 – 6123

E-Mail: sales@progressiveautomations.com

Bieten Sie Mengenrabatte an?
Welche Zahlungsmethoden akzeptieren Sie?
In welcher Währung sind Ihre Preise angegeben?
Woher weiß ich, ob das gewünschte Produkt auf Lager ist?
Wie hoch sind die Versandkosten und welche Versandmethoden bieten Sie an?

Die Versandgebühren von Progressive Automations werden anhand verschiedener Faktoren berechnet, darunter unter anderem: Standort, Bestellmengen und das Gesamtgewicht Ihrer Bestellung. Kleinere Artikel werden per Paketdienst verschickt, während größere Artikel und Großbestellungen per Speditionsdienst versendet werden. Wir bemühen uns stets, allen unseren Kunden wettbewerbsfähige Versandpreise zu bieten.

Versandmethoden sind bei Online- und telefonischen Bestellungen verfügbar. Wenn Sie eine geschätzte Versandkostenangabe für Ihre Bestellung wünschen, können Sie diese einsehen, indem Sie Ihren endgültigen Warenkorb überprüfen.

Welche Speditionsunternehmen nutzen Sie?
Muss ich Zollgebühren zahlen?
Wie lautet Ihre Rückgaberichtlinie?
Wie lange dauert die Lieferung?
Bieten Sie kostenlosen Versand an?
Ich möchte die längere Seite meiner Tischplatte links haben. Kann der L-förmige Stehschreibtischrahmen sowohl links als auch rechts montiert werden?

Ja, der L-förmige Stehschreibtisch ist flexibel in der Ausrichtung und kann nach Wunsch installiert werden. Hier ist eine Schritt-für-Schritt-Anleitung, die erklärt, wie das möglich ist: FLT-05 Bedienungsanleitung

Wie stelle ich die maximale/minimale Höhe für meinen Stehschreibtischrahmen ein?

HINWEIS: Die folgenden Schritte können je nach Modell Ihrer Fernbedienung variieren. Die Anweisungen wurden für die Standardfernbedienung RT-11 erstellt. Um die maximale Höhe für Ihren Rahmen festzulegen, fahren Sie auf die gewünschte Höhe und folgen Sie dann diesen Schritten:

  1. Drücken Sie M; auf dem Display erscheint [5 -]
  2. Drücken Sie die UP-Taste; [5 -] blinkt
  3. Halten Sie die M-Taste gedrückt, bis [999] im Display erscheint
  4. Die maximale Höhe ist nun eingestellt

Um die minimale Höhe für Ihren Rahmen festzulegen, fahren Sie auf die gewünschte Höhe und folgen Sie dann diesen Schritten:

  1. Drücken Sie M; auf dem Display erscheint [5 -]
  2. Drücken Sie die DOWN-Taste; [5 -] blinkt
  3. Halten Sie die M-Taste gedrückt, bis [000] im Display erscheint
  4. Die minimale Höhe ist nun eingestellt

Um die Limits zurückzusetzen, gehen Sie wie folgt vor:

  1. Drücken Sie M, bis [5 -] im Display angezeigt wird, und lassen Sie los
  2. Halten Sie M gedrückt, bis Sie [555] sehen
  3. Die Limits wurden zurückgesetzt
Ich muss die Tasten der Fernbedienung gedrückt halten, um meine voreingestellte Höhe zu erreichen. Geht das auch mit nur einem Tastendruck?

HINWEIS: Die Schritte unten können je nach Modell Ihrer Fernbedienung variieren. Die folgenden Anweisungen sind für die Standardfernbedienung RT-11.

Wenn Sie die Tasten der Fernbedienung gedrückt halten müssen, um Ihre voreingestellte Höhe zu erreichen, bedeutet das, dass Ihre Steuerbox im Momentary-Modus arbeitet. Um Ihre Fernbedienung auf den Non-momentary-Modus zu stellen, gehen Sie wie folgt vor

  1. Stellen Sie sicher, dass sich nichts unter Ihrem Schreibtisch befindet, da wir das Reset-Verfahren starten müssen
  2. Halten Sie die DOWN-Taste gedrückt, bis im Display [ASr] angezeigt wird
  3. Sobald [ASr] angezeigt wird, drücken und halten Sie [1]; es können zwei Werte erscheinen:

    a. 10,1 = Non-momentary-Modus
    b. 10,2 = Momentary-Modus

  4. Schließen Sie das Reset-Verfahren ab, indem Sie die DOWN-Taste gedrückt halten, bis sich Ihr Schreibtisch leicht senkt und wieder anhebt.
Wie ändere ich die Empfindlichkeit der Kollisions­erkennung?

Unsere Stehschreibtische haben drei Einstellungen für die Kollisions­erkennung, die je nach Wunsch angepasst werden können. Gehen Sie wie folgt vor:

  1. Stellen Sie sicher, dass sich nichts unter Ihrem Schreibtisch befindet, da wir das Reset-Verfahren starten müssen
  2. Halten Sie die DOWN-Taste gedrückt, bis im Display [ASr] angezeigt wird
  3. Sobald [ASr] angezeigt wird, drücken und halten Sie die UP-[ ^ ]-Taste; es können drei Werte erscheinen:

    a. 10,5 = 11 Pfund
    b. 10,6 = 22 Pfund
    c. 10,7 = 33 Pfund

  4. Schließen Sie das Reset-Verfahren ab, indem Sie die DOWN-Taste gedrückt halten, bis sich Ihr Schreibtisch leicht senkt und wieder anhebt.
Meine Fernbedienung zeigt einen Fehlercode im Display an? Was soll ich tun?

Hier sind einige Schritte zur Fehlerbehebung, falls bei Rahmen mit Steuerboxen der FLTCON-Serie einer der folgenden Fehlercodes angezeigt wird:

Prüfen Sie den Fehlercode hier.

Wenn das Problem nach diesen Schritten weiterhin besteht, kontaktieren Sie gerne unsere technischen Produktingenieure unter 1-800-676-6123 oder senden Sie uns eine E-Mail an sales@progressiveautomations.com.