How To Control The Timing Of A Linear Actuators Motion

Kako krmiliti časovanje gibanja linearnega aktuatorja?

Guest Writer
Guest Writer
PA Engineer

V našem najnovejšem prispevku "Kako narediti" bomo predstavili, kako z mikrokrmilnikom nadzorovati časovno usklajevanje gibanja linearnega aktuatorja. Mikrokrmilniki dajejo veliko svobode pri krmiljenju gibanja in to je le en primer skoraj neskončnega števila možnosti krmiljenja gibanja. Glede na vašo aplikacijo se lahko vzorčni projekt v tem članku prilagodi vašim zahtevam – lahko dodate še en časovno krmiljen aktuator ali okrepite napajalnik, da poganja močnejši linearni aktuator, odločitev je vaša.

Oglejte si naše mikrokrmilnike za popoln nadzor nad vašim aktuatorjem!

Krmiljenje gibanja z mikrokrmilnikom

Za nadzor časovnega poteka gibanja linearnega aktuatorja bomo uporabili mikrokrmilnik Arduino, vendar deluje kateri koli mikrokrmilnik. Ker pa uporabljamo shield, mora biti mikrokrmilnik združljiv. Vodili vas bomo skozi različne parametre, ki jih lahko prilagodite, da spremenite Hitrost linearnega aktuatorja.

 

Kaj boste potrebovali

V tem primeru bomo za krmiljenje linearnega aktuatorja uporabili naslednje komponente:

Prebrskajte naš celoten nabor električnih linearnih aktuatorjev, primernih za katero koli uporabo!

Povezovanje komponent

Zdaj, ko imamo potrebne komponente, moramo vse povezati. Na srečo so povezave preproste, saj uporabljamo shield namesto ločene plošče, ki bi zahtevala dodatno ožičenje in spajkanje.

Najprej povežimo naš aktuator z LC-80 MegaMoto Plus shieldom tako, da dve priključni žici aktuatorja pritrdimo na A/B vijačne sponke na LC-80. Nato moramo LC-80 povezati z napajalnikom, v tem primeru s PS-20-12. To storimo tako, da pozitivno in negativno žico iz napajalnika priključimo na sponke BAT +/- enote LC-80.

Nazadnje moramo povezati LC-80 z LC-066, kar je preprosto tako, da ju namestimo enega na drugega, kot je prikazano na spodnji sliki.

 

Fotografija mikrokrmilnikov podjetja Progressive Automations

Izberite pravi krmilni sistem za vaš aktuator in preglejte našo ponudbo!


Prilagajanje kode

Da bi imeli popoln nadzor nad gibanjem našega aktuatorja, bomo z enoto Arduino izvedli nekaj programiranja linearnega aktuatorja. Pripravili smo primer kode, v katerem naš aktuator 10 sekund izteguje in nato 10 sekund vleče nazaj, skupaj v ciklu 300 sekund.

//Z mostički na plošči izberite, kateri pini bodo uporabljeni

int EnablePin1 = 13;

int PWMPinA1 = 11;

int PWMPinB1 = 3;

int extendtime = 10 * 1000;  // 10 sekund, pomnoženo s 1000 za pretvorbo v milisekunde

int retracttime = 10 * 1000; // 10 sekund, pomnoženo s 1000 za pretvorbo v milisekunde

int timetorun = 300 * 1000; // 300 sekund, pomnoženo s 1000 za pretvorbo v milisekunde

int duty;

int elapsedTime;

boolean keepMoving;

void setup() {

  Serial.begin(9600);

  pinMode(EnablePin1, OUTPUT);//Omogoči ploščo

  pinMode(PWMPinA1, OUTPUT);

  pinMode(PWMPinB1, OUTPUT);//Nastavi izhode motorja

  elapsedTime = 0; // Nastavi čas na 0

  keepMoving = true; //Sistem se bo premikal

}//konec nastavitve

void loop() {

  if (keepMoving) 

  {

    digitalWrite(EnablePin1, HIGH); // omogoči motor

    pushActuator();

    delay(extendtime);

    stopActuator();

    delay(10);//kratka zakasnitev pred vlečenjem nazaj

    pullActuator();

    delay(retracttime);

    stopActuator();

    elapsedTime = millis();//koliko časa je minilo?

    if (elapsedTime > timetorun) {//če je minilo 300 sekund, ustavi

      Serial.print("Pretečeni čas presega največji čas delovanja. Največji čas delovanja: ");

      Serial.println(timetorun);

      keepMoving = false;  

    }

  }//konec if

}//konec glavne zanke

void stopActuator() {

  analogWrite(PWMPinA1, 0);

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

}

void pushActuator() {

  analogWrite(PWMPinA1, 255);

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

}

void pullActuator() {

  analogWrite(PWMPinA1, 0);

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

}

 

Pomembno je, da kodo preletite vrstico za vrstico in poskusite razumeti, kaj se dogaja. Tako jo lahko prilagodite za izvedbo številnih drugih nalog. Za zdaj pa je najpomembnejši del prvi razdelek in nastavitvena zanka, ki se osredotočata na dodelitev pinov in nastavitev hitrosti cikla.

Pine na našem LC-80 morate konfigurirati tako, da se ujemajo s tem, kar je v prvem razdelku kode – bodisi z nastavitvijo mostičkov na LC-80 bodisi s prilagoditvijo kode. V tem primeru nastavite pin "Enable" na D13, pin "PWMA" na D11 in pin "PWMB" na D3. Pin »Enable« nadzoruje in napaja motor; brez njega se bo aktuator prenehal premikati in ga ne bo mogoče krmiliti. Pina »PWMA« in »PWMB« nadzorujeta izteg in vlek aktuatorja. Pinov »Sensor« v tem primeru ne potrebujemo, zato tu ni treba ničesar izbrati.

Nadzor časovnika linearnega aktuatorja je zdaj zaključen. Kodo lahko naložite v Arduino z njihovo IDE (prenesi z Arduino spletne strani). Ko imate linearni aktuator, ki se izteguje in vleče nazaj, se malo poigrajte s kodo. Poskusite prilagoditi čas iztega/vleka v kodi, jo znova naložite na Arduino in opazujte, kako linearni aktuator reagira. Z nastavitvijo teh števil v kodi lahko nadzorujete Hitrost in celoten čas cikla gibanja glede na vašo želeno aplikacijo.


Zaključek

Spodaj smo vključili video časovno krmiljenega aktuatorja v delovanju. Za video primer smo želeli pokazati še en način, kako lahko spremenite časovno usklajevanje, zato smo ga nastavili tako, da se izteguje in vleče po 5 sekund naenkrat v 20‑sekundnem ciklu.

Kot smo omenili že prej, je to le en primer, kako lahko s pomočjo naših mikrokrmilnikov spremenite gibanje aktuatorja. Če imate v mislih svojo metodo krmiljenja po meri, vam lahko naše nadarjeno inženirsko osebje pomaga izdelati krmilni sistem, prilagojen vašim zahtevam. Vodili vas bodo skozi celoten postopek in poskrbeli, da boste imeli popoln nadzor nad svojimi enotami. Če želite izvedeti več o postopku naročil po meri, si oglejte našo stran za naročila po meri.