Achteraf te monteren gemotoriseerde rolgordijnen
De stroom van een lineaire actuator bewaken

Deze voorbeeldcode gebruikt MegaMoto Plus en een Arduino Uno om de stroom van een lineaire actuator te bewaken; vergelijkbare producten kunnen echter als vervanging worden gebruikt.

/*  Code om de stroomafname (in ampère) van de actuator te bewaken en de voeding uit te schakelen als deze
  boven een bepaalde waarde komt.

  Geschreven door Progressive Automations
  19 augustus 2015

  Hardware:
  - RobotPower MegaMoto-besturingsborden
  - Arduino Uno
  - 2 drukknoppen
 */

const int EnablePin = 8;
const int PWMPinA = 11;
const int PWMPinB = 3; // pinnen voor Megamoto

const int buttonLeft = 4;
const int buttonRight = 5;//knoppen om de motor te bewegen

const int CPin1 = A5;  // motor-terugkoppeling

int leftlatch = LOW;
int rightlatch = LOW;//motorvergrendelingen (gebruikt voor codelogica)

int hitLimits = 0;//begin bij 0
int hitLimitsmax = 10;//waarden om te bepalen of de eindposities zijn bereikt

long lastfeedbacktime = 0; // moet long zijn, anders treedt overflow op
int firstfeedbacktimedelay = 750; //eerste vertraging om de stroompiek te negeren
int feedbacktimedelay = 50; //vertraging tussen terugkoppelingscycli; hoe vaak je de motor wilt controleren
long currentTimefeedback = 0; // moet long zijn, anders treedt overflow op

int debounceTime = 300; //tijd voor het debouncen van knoppen; lagere waarden maken de knoppen gevoeliger
long lastButtonpress = 0; // timer voor debouncen
long currentTimedebounce = 0;

int CRaw = 0;      // invoerwaarde voor stroommetingen
int maxAmps = 0; // afschakelgrens 

bool dontExtend = false;
bool firstRun = true;
bool fullyRetracted = false;//programmalogica

void setup()
{
  Serial.begin(9600);
  pinMode(EnablePin, OUTPUT);
  pinMode(PWMPinA, OUTPUT);
  pinMode(PWMPinB, OUTPUT);//Motoruitgangen instellen
  pinMode(buttonLeft, INPUT);
  pinMode(buttonRight, INPUT);//knoppen
  
  digitalWrite(buttonLeft, HIGH);
  digitalWrite(buttonRight, HIGH);//interne pullups inschakelen
  pinMode(CPin1, INPUT);//terugkoppelingsinvoer instellen
  
  currentTimedebounce = millis();
  currentTimefeedback = 0;//Initiële tijden instellen

  maxAmps = 15;// MAXIMALE STROOM HIER INSTELLEN

}//einde setup

void loop()
{
  latchButtons();//knoppen controleren, kijken of we moeten bewegen

  moveMotor();//vergrendelingen controleren, motor in- of uitschuiven

}//einde main loop

void latchButtons()
{
  if (digitalRead(buttonLeft)==LOW)//links is vooruit
  {
    currentTimedebounce = millis() - lastButtonpress;// controleer tijd sinds laatste druk
    if (currentTimedebounce > debounceTime && dontExtend == false)//als dontExtend is geactiveerd, alle vooruit‑drukken negeren
    {
      leftlatch = !leftlatch;// als de motor draait, stoppen; als hij stilstaat, starten
      firstRun = true;// firstRun‑vlag zetten om stroompiek te negeren
      fullyRetracted = false; // zodra je vooruit beweegt, ben je niet volledig ingetrokken
      lastButtonpress = millis();//tijd van laatste knopdruk opslaan
      return;
    }//einde if
  }//einde btnLEFT

  if (digitalRead(buttonRight)==LOW)//rechts is achteruit
  {
    currentTimedebounce = millis() - lastButtonpress;// controleer tijd sinds laatste druk

    if (currentTimedebounce > debounceTime)
    {
      rightlatch = !rightlatch;// als de motor draait, stoppen; als hij stilstaat, starten
      firstRun = true;// firstRun‑vlag zetten om stroompiek te negeren
      lastButtonpress = millis();//tijd van laatste knopdruk opslaan
      return;    }//einde if
  }//einde btnRIGHT
}//einde latchButtons

void moveMotor()
{
  if (leftlatch == HIGH) motorForward(255); //snelheid = 0-255
  if (leftlatch == LOW) motorStop();
  if (rightlatch == HIGH) motorBack(255); //snelheid = 0-255
  if (rightlatch == LOW) motorStop();

}//einde moveMotor

void motorForward(int speeed)
{
  while (dontExtend == false && leftlatch == HIGH)
  {
    digitalWrite(EnablePin, HIGH);
    analogWrite(PWMPinA, speeed);
    analogWrite(PWMPinB, 0);//motor bewegen
    if (firstRun == true) delay(firstfeedbacktimedelay); // grotere vertraging om stroompiek te negeren
    else delay(feedbacktimedelay); //kleine vertraging om op snelheid te komen

    getFeedback();
    firstRun = false;
    
    latchButtons();//knoppen opnieuw controleren
  }//einde while

}//einde motorForward

void motorBack (int speeed)
{
  while (rightlatch == HIGH)
  {
    digitalWrite(EnablePin, HIGH);
    analogWrite(PWMPinA, 0);
    analogWrite(PWMPinB, speeed);//motor bewegen
    if (firstRun == true) delay(firstfeedbacktimedelay);// grotere vertraging om stroompiek te negeren
    else delay(feedbacktimedelay); //kleine vertraging om op snelheid te komen
    getFeedback();

    firstRun = false;
    
    latchButtons();//knoppen opnieuw controleren

  }//einde while

  dontExtend = false;//motor weer laten uitschuiven nadat hij is ingetrokken

}//einde motorBack

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

  digitalWrite(EnablePin, LOW);
  firstRun = true;//wanneer de motor gestopt is, firstRun opnieuw inschakelen om opstartstroompieken op te vangen

}//einde stopMotor

void getFeedback()
{
  CRaw = analogRead(CPin1); // Stroom uitlezen

  if (CRaw == 0 && hitLimits < hitLimitsmax) hitLimits = hitLimits + 1;
  else hitLimits = 0; // controleren of de motor de eindposities heeft bereikt en de stroom is gestopt 

  if (hitLimits == hitLimitsmax && rightlatch == HIGH)
  {
    rightlatch = LOW; // motor stoppen
    fullyRetracted = true;
  }//einde if

  else if (hitLimits == hitLimitsmax && leftlatch == HIGH)
  {
    leftlatch = LOW;//motor stoppen
    hitLimits = 0;
  }//einde if

  if (CRaw > maxAmps)
  {
    dontExtend = true;
    leftlatch = LOW; // stoppen als terugkoppeling boven maximum is
  }//einde if

  lastfeedbacktime = millis();//vorige tijd voor ontvangst van terugkoppeling opslaan
}//einde getFeedback
Meerdere actuators aansturen met het MultiMoto Arduino-shield
Wasp-motorcontroller voor het aansturen van een lineaire actuator
Relais gebruiken om lineaire actuators aan te sturen
De timing van de beweging van één lineaire actuator regelen
Een lineaire actuator met borstelloze DC-motor continu in- en uitschuiven
Voorbeeldcodes voor de PA-12 micro-servo-actuator
Waar vind ik extra informatie over uw producten?

We hebben datasheets, gebruikershandleidingen, 3D‑modellen, bedradingsschema's en meer in onze secties Bronnen en Leercentrum .

Hoe kan ik bepalen welke lineaire actuator van Progressive Automations het beste geschikt is voor mijn toepassing?
Wat is de inschakelduur en hoe wordt die berekend?
Kan ik uw actuators gebruiken ter vervanging van de actuator die ik al heb?
Wat betekent Slaglengte? Hoe weet ik welke maat ik moet kiezen?
Hoe weet ik welke krachtwaardering geschikt is voor mijn toepassing?
Kan ik mijn eigen voeding gebruiken als bron voor mijn actuators?
Hoe kan ik actuators zo aansturen dat ze gelijktijdig bewegen?
Waarom maakt mijn lineaire actuator zoveel lawaai?
Kan ik een lineaire actuator naar mijn specificaties aanpassen?
Kan ik mijn lineaire actuators synchroniseren?
Zijn er lineaire actuator-kits beschikbaar?
Heeft temperatuur invloed op mijn lineaire actuator?
Kan ik een van uw actuators integreren in een mechanisme van een derde partij?
Wat is de pinout van mijn lineaire actuator?
Kan ik 3D‑CAD‑modellen krijgen voor mijn lineaire actuator?
Welke opties voor een besturingskast zijn er voor mijn actuator?
Kan ik uw besturingskasten gebruiken met een product van een derde partij?
Verkoopt u Wi‑Fi‑besturingskasten?
Zijn al uw besturingskasten compatibel met al uw lineaire actuators?
Kan ik mijn eigen besturingskast gebruiken?
Hebt u voorbeeldcode die ik kan gebruiken?
Ik heb geen stroombron – wat kan ik doen?
Kan ik mijn eigen voeding gebruiken?
Hebt u 220 VAC-voedingen beschikbaar?
Kan ik de hefkolommen aansturen met een controller van een derde partij?
Kan ik twee van de LG‑11‑hefkolommen samen gebruiken?
Welke besturingskast moet ik koppelen aan mijn hefkolommen?
Zijn uw tafel-/bureau-/tv‑liften aanpasbaar?
Welke tv‑formaten kunnen uw tv‑liften dragen?
Wat is het draagvermogen van uw tafel-/bureauliften?
Wordt mijn lineaire actuator geleverd met montagebeugels?
Waar vind ik een stapsgewijze handleiding voor mijn product?
Ik heb het bedradingsschema gevolgd, maar het werkt niet – wat moet ik doen?
Stroomschema voor actuatorselectie
Kunnen de FLTCON-besturingskasten met mijn actuatoren werken?
Wat is backdriving? -- Wat betekenen dynamische en statische belastingswaarden? -- Wat is laterale belasting?
Hoe kan ik een bestelling plaatsen?

Bestellingen kunnen op een van de volgende manieren worden geplaatst:

Online: Gebruik ons online bestelproces met opties om te betalen met creditcard of PayPal.

Telefoon: 1-800 – 676 – 6123

E‑mail: sales@progressiveautomations.com

Biedt u staffelkortingen aan?
Welke betaalmethoden accepteert u?
In welke valuta worden uw prijzen weergegeven?
Hoe weet ik of het product dat ik wil op voorraad is?
Wat kost de verzending en welke verzendmethoden biedt u aan?

De verzendkosten van Progressive Automations worden berekend op basis van verschillende factoren, waaronder maar niet beperkt tot: locatie, aantallen en het totale gewicht van uw bestelling. Kleinere artikelen worden per pakket verzonden, terwijl grotere artikelen en bulkbestellingen via een expediteur worden verzonden. We streven er altijd naar om concurrerende verzendprijzen te bieden voor al onze klanten.

Verzendmethoden zijn beschikbaar via online en telefonische bestellingen. Als u een geschatte verzendkost voor uw bestelling wilt ontvangen, kan dit door uw definitieve winkelwagen te bekijken.

Welke vervoerders gebruikt u?
Moet ik invoerrechten betalen?
Wat is uw retourbeleid?
Hoelang duurt de levering?
Biedt u gratis verzending aan?
Ik wil de langere zijde van mijn tafelblad links hebben. Kan het L-vormige sta-bureau-onderstel zowel links als rechts worden gemonteerd?

Ja, het L-vormige sta-bureau is flexibel qua oriëntatie en kan naar wens worden geïnstalleerd. Hier is een stapsgewijze handleiding die uitlegt hoe dit mogelijk is: FLT-05 Gebruikershandleiding

Hoe stel ik de maximale/minimale hoogte in voor mijn sta-bureau-onderstel(len)?

OPMERKING: De onderstaande stappen kunnen variëren afhankelijk van het model afstandsbediening dat u heeft. De volgende instructies zijn voor de standaard RT-11-afstandsbediening. Om de maximale hoogte voor uw onderstel in te stellen, ga naar de gewenste hoogte en volg de onderstaande stappen:

  1. Druk op M; [5 -] verschijnt op het display
  2. Druk op de UP-knop; [5 -] knippert
  3. Houd de M-knop ingedrukt totdat u [999] op het display ziet
  4. De maximale hoogte is nu ingesteld

Om de minimale hoogte voor uw onderstel in te stellen, ga naar de gewenste hoogte en volg de onderstaande stappen:

  1. Druk op M; [5 -] verschijnt op het display
  2. Druk op de DOWN-knop; [5 -] knippert
  3. Houd de M-knop ingedrukt totdat u [000] op het display ziet
  4. De minimale hoogte is nu ingesteld

Om de limieten te resetten, volgt u de onderstaande stappen:

  1. Druk op M; [5 -] verschijnt op het display en laat dan los
  2. Houd M ingedrukt totdat u [555] ziet
  3. De limieten zijn gereset
Ik moet de knoppen van de afstandsbediening ingedrukt houden om mijn vooraf ingestelde hoogte te bereiken. Kan dit ook met één druk?

OPMERKING: De onderstaande stappen kunnen variëren afhankelijk van het model afstandsbediening dat u heeft. De volgende instructies zijn voor de standaard RT-11-afstandsbediening.

Als u de knoppen van de afstandsbediening ingedrukt moet houden om uw vooraf ingestelde hoogte te bereiken, betekent dit dat uw besturingskast in de momentary-modus staat. Om uw afstandsbediening in de non-momentary-modus te zetten, volgt u de onderstaande stappen

  1. Zorg ervoor dat er niets onder uw bureau staat, aangezien we de resetprocedure moeten starten
  2. Houd de DOWN-knop ingedrukt totdat [ASr] op het display verschijnt
  3. Zodra [ASr] verschijnt, drukt u op [1] en houdt u deze ingedrukt; u kunt twee waarden zien:

    a. 10.1 = Non-momentary-modus
    b. 10.2 = Momentary-modus

  4. Voltooi de resetprocedure door de DOWN-knop ingedrukt te houden totdat uw sta-bureau iets zakt en weer omhooggaat.
Hoe wijzig ik de gevoeligheid van de botsingsdetectie?

Onze sta-bureaus hebben 3 instellingen voor botsingsdetectie, die u naar wens kunt instellen. Ga als volgt te werk:

  1. Zorg ervoor dat er niets onder uw bureau staat, aangezien we de resetprocedure moeten starten
  2. Houd de DOWN-knop ingedrukt totdat [ASr] op het display verschijnt
  3. Zodra [ASr] verschijnt, houdt u de UP-[ ^ ]-knop ingedrukt; u kunt drie waarden zien:

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

  4. Voltooi de resetprocedure door de DOWN-knop ingedrukt te houden totdat uw sta-bureau iets zakt en weer omhooggaat.
Mijn afstandsbediening toont een foutcode op het display? Wat moet ik doen?

We hebben enkele stappen voor probleemoplossing als u een van de volgende foutcodes ziet op onderstellen met besturingskasten uit de FLTCON-serie:

Controleer de foutcode hier.

Als het probleem na deze stappen aanhoudt, neem dan gerust contact op met onze technische productingenieurs via 1-800-676-6123, of stuur ons een e-mail op sales@progressiveautomations.com.