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.
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:
- 1 x MegaMoto Plus
- 1 x Arduino Uno Rev3
- 1 x Mini industrijski aktuator (PA-09, vendar bo deloval katerikoli linearni aktuator)
- 1 x Napajalnik (PS-20-12, vendar bo deloval kateri koli 12 V napajalnik)
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.

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.