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.
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:
- 1 x MegaMoto Plus
- 1 x Arduino Uno Rev3
- 1 x Mini Industrial Actuator (PA-09, mutta mikä tahansa lineaarinen toimilaite käy)
- 1 x Power Supply (PS-20-12, mutta mikä tahansa 12 V virtalähde käy)
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.

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.