How To Control The Timing Of A Linear Actuators Motion

Miten ohjata lineaarisen toimilaitteen liikkeen ajoitusta?

Guest Writer
Guest Writer
PA Engineer

Viimeisimmässä "How To" -julkaisussamme käymme läpi, miten lineaarisen toimilaitteen liikkeen ajoitusta ohjataan mikrokontrollerilla. Mikrokontrollerit antavat runsaasti vapautta liikkeenohjaukseen, ja tämä on vain yksi esimerkki lähes loputtomista ohjausvaihtoehdoista. Sovelluksestasi riippuen tämän artikkelin esimerkkiprojektia voidaan muokata tarpeisiisi sopivaksi – voit esimerkiksi lisätä toisen ajastetun toimilaitteen tai kasvattaa virtalähteen tehoa vahvempaa lineaarista toimilaitetta varten.

Tutustu kaikkiin mikrokontrollereihimme ja löydä täydellinen ohjaus toimilaitteellesi!

Liikkeenohjaus mikrokontrollerilla

Käytämme Arduino-mikrokontrolleria lineaarisen toimilaitteen liikkeen ajoituksen ohjaamiseen, mutta mikä tahansa mikrokontrolleri käy. Koska käytämme shieldiä, mikrokontrollerin on kuitenkin oltava yhteensopiva. Käymme läpi eri parametrit, joita säätämällä voit muuttaa lineaarisen toimilaitteen nopeutta.

 

Mitä tarvitset

Tässä esimerkissä käytämme seuraavia komponentteja lineaarisen toimilaitteen ohjaamiseen:

Selaa koko valikoimaamme sähköisiä lineaarisia toimilaitteita kaikkiin käyttökohteisiin!

Komponenttien kytkentä

Nyt kun tarvikkeet ovat kasassa, kytketään kaikki yhteen. Onneksi kytkennät ovat yksinkertaiset, kun käytetään shieldiä erillisen lisäjuotoksia ja -johtoja vaativan piirilevyn sijaan.

Liitetään ensin toimilaite LC-80 MegaMoto Plus ‑shieldiin kytkemällä toimilaitteen kaksi johdinta LC‑80:n A/B‑ruuviliittimiin. Seuraavaksi liitetään LC‑80 virtalähteeseen, tässä tapauksessa PS‑20‑12:een. Tämä tehdään kytkemällä virtalähteen plus- ja miinusjohdot LC‑80:n BAT +/‑ ‑liittimiin.

Lopuksi kytketään LC‑80 ja LC‑066 toisiinsa – tämä käy helposti asettamalla ne päällekkäin, kuten alla olevassa kuvassa.

 

Kuva Progressive Automationsin mikrokontrollereista

Valitse oikea ohjausjärjestelmä toimilaitteellesi ja tutustu valikoimaamme!


Koodin säätäminen

Jotta saamme täyden hallinnan toimilaitteen liikkeestä, kirjoitamme hieman ohjelmakoodia Arduino-yksiköllä lineaarista toimilaitetta varten. Olemme valmistelleet esimerkkikoodin, jossa toimilaite ensin ulosajaa ja sitten sisäänajaa 10 sekuntia kumpaankin suuntaan 300 sekunnin syklissä.

//Use the jumpers on the board to select which pins will be used

int EnablePin1 = 13;

int PWMPinA1 = 11;

int PWMPinB1 = 3;

int extendtime = 10 * 1000;  // 10 seconds, times 1000 to convert to milliseconds

int retracttime = 10 * 1000; // 10 seconds, times 1000 to convert to milliseconds

int timetorun = 300 * 1000; // 300 seconds, times 1000 to convert to milliseconds

int duty;

int elapsedTime;

boolean keepMoving;

void setup() {

  Serial.begin(9600);

  pinMode(EnablePin1, OUTPUT);//Enable the board

  pinMode(PWMPinA1, OUTPUT);

  pinMode(PWMPinB1, OUTPUT);//Set motor outputs

  elapsedTime = 0; // Set time to 0

  keepMoving = true; //The system will move

}//end setup

void loop() {

  if (keepMoving) 

  {

    digitalWrite(EnablePin1, HIGH); // enable the motor

    pushActuator();

    delay(extendtime);

    stopActuator();

    delay(10);//small delay before retracting

    pullActuator();

    delay(retracttime);

    stopActuator();

    elapsedTime = millis();//how long has it been?

    if (elapsedTime > timetorun) {//if it's been 300 seconds, stop

      Serial.print("Elapsed time is over max run time. Max run time: ");

      Serial.println(timetorun);

      keepMoving = false;  

    }

  }//end if

}//end main loop

void stopActuator() {

  analogWrite(PWMPinA1, 0);

  analogWrite(PWMPinB1, 0); // speed 0-255

}

void pushActuator() {

  analogWrite(PWMPinA1, 255);

  analogWrite(PWMPinB1, 0); // speed 0-255

}

void pullActuator() {

  analogWrite(PWMPinA1, 0);

  analogWrite(PWMPinB1, 255);//speed 0-255

}

 

On tärkeää käydä koodi läpi rivi riviltä, jotta ymmärrät mitä tapahtuu. Näin voit mukauttaa koodin tekemään monenlaisia muita tehtäviä. Tällä hetkellä tärkeintä on kuitenkin ensimmäinen osio ja setup-silmukka, jotka keskittyvät nastojen määrittämiseen ja syklinopeuden asettamiseen.

LC‑80:n nastat on konfiguroitava vastaamaan koodin ensimmäisessä osassa määritettyjä arvoja asettamalla hyppylangat LC‑80:lle tai muokkaamalla koodia. Tässä tapauksessa aseta "Enable"-nasta D13:een, "PWMA"-nasta D11:een ja "PWMB"-nasta D3:een. “Enable”-nasta ohjaa ja syöttää moottoria, ja ilman sitä toimilaite lakkaa liikkumasta eikä sitä voi ohjata. “PWMA”- ja “PWMB”-nastat ohjaavat toimilaitteen ulos- ja sisäänajoa. Emme tarvitse tässä esimerkissä "Sensor"-nastoja, joten niistä ei tarvitse huolehtia.

Lineaarisen toimilaitteen ajastimen ohjaus on nyt valmis. Voit ladata koodin Arduinoon heidän IDE:nsä avulla (lataa Arduinon sivustolta). Kun toimilaite ulos- ja sisäänajaa, mikset kokeilisi koodin muokkaamista? Säädä ulos-/sisäänajon aikoja koodissa, lataa se uudelleen Arduinoon ja katso, miten lineaarinen toimilaite reagoi. Säätämällä näitä arvoja voit ohjata nopeutta ja koko liikesyklin kestoa sovelluksesi tarpeen mukaan.


Yhteenveto

Alla on video ajastetusta toimilaitteesta toiminnassa. Videossa halusimme näyttää toisen tavan muuttaa ajoitusta, joten asetitmme toimilaitteen ulos- ja sisäänajamaan 5 sekuntia kerrallaan 20 sekunnin syklissä.

Kuten aiemmin mainittiin, tämä on vain yksi esimerkki siitä, miten voit muuttaa toimilaitteen liikettä mikrokontrollereidemme avulla. Jos sinulla on mielessä oma räätälöity ohjausmenetelmä, voimme rakentaa ohjausjärjestelmän juuri tarpeidesi mukaan osaavan insinöörimme avulla. He ohjaavat sinut prosessin läpi ja varmistavat, että sinulla on täysi hallinta yksiköistäsi. Jos haluat lisätietoja räätälöidyistä tilauksista, katso räätälöityjen tilausten sivu.