V našom najnovšom „Ako na to“ príspevku si ukážeme, ako riadiť časovanie pohybu lineárneho aktuátora pomocou mikrokontroléra. Mikrokontroléry poskytujú veľkú voľnosť pri riadení pohybu a toto je len jeden príklad takmer nekonečného množstva dostupných možností riadenia pohybu. Podľa vašej aplikácie možno ukážkový projekt v tomto článku upraviť tak, aby vyhovoval vašim požiadavkám – či už pridáte ďalší časovaný aktuátor alebo posilníte napájací zdroj, aby zvládol výkonnejší lineárny aktuátor, je to len na vás.
Riadenie pohybu pomocou mikrokontroléra
Na riadenie časovania pohybu lineárneho aktuátora použijeme mikrokontrolér Arduino, fungovať však bude akýkoľvek mikrokontrolér. Keďže používame shield, mikrokontrolér musí byť kompatibilný. Prevedieme vás rôznymi parametrami, ktoré môžete upraviť, aby ste zmenili rýchlosť lineárneho aktuátora.
Čo budete potrebovať
V tomto príklade použijeme nasledujúce komponenty na riadenie lineárneho aktuátora:
- 1 x MegaMoto Plus
- 1 x Arduino Uno Rev3
- 1 x Mini priemyselný aktuátor (PA-09, ale poslúži akýkoľvek lineárny aktuátor)
- 1 x Napájací zdroj (PS-20-12, ale poslúži akýkoľvek 12 V napájací zdroj)
Prepájanie komponentov
Keď už máme všetky súčiastky, musíme všetko prepojiť. Našťastie sú pripojenia jednoduché vďaka použitiu shieldu, na rozdiel od samostatnej dosky, ktorá vyžaduje ďalšie vedenie a spájkovanie.
Najprv pripojme náš aktuátor k nášmu LC-80 MegaMoto Plus shieldu pripojením dvoch vodičov z aktuátora na skrutkové svorky A/B na LC-80. Potom potrebujeme pripojiť LC-80 k nášmu napájaciemu zdroju, v tomto prípade PS-20-12. Urobíme to pripojením kladného a záporného vodiča z napájacieho zdroja na svorky BAT +/- LC-80.
Nakoniec musíme pripojiť LC-80 k LC-066 – je to také jednoduché, ako nasadiť ich na seba, ako je zobrazené na obrázku nižšie.

Úprava kódu
Aby sme získali plnú kontrolu nad pohybom nášho aktuátora, budeme musieť v jednotke Arduino urobiť programovanie lineárneho aktuátora. Pripravili sme ukážkový kód, v ktorom sa náš aktuátor vysúva a potom zasúva po 10 sekúnd v každom smere v rámci 300-sekundového cyklu.
// Použite prepojky na doske na výber, ktoré piny sa použijú
int EnablePin1 = 13;
int PWMPinA1 = 11;
int PWMPinB1 = 3;
int extendtime = 10 * 1000; // 10 sekúnd, krát 1000 na konverziu na milisekundy
int retracttime = 10 * 1000; // 10 sekúnd, krát 1000 na konverziu na milisekundy
int timetorun = 300 * 1000; // 300 sekúnd, krát 1000 na konverziu na milisekundy
int duty;
int elapsedTime;
boolean keepMoving;
void setup() {
Serial.begin(9600);
pinMode(EnablePin1, OUTPUT);// Aktivujte dosku
pinMode(PWMPinA1, OUTPUT);
pinMode(PWMPinB1, OUTPUT);// Nastavte výstupy Motora
elapsedTime = 0; // Nastavte čas na 0
keepMoving = true; // Systém sa bude pohybovať
}// koniec setup
void loop() {
if (keepMoving)
{
digitalWrite(EnablePin1, HIGH); // aktivujte Motor
pushActuator();
delay(extendtime);
stopActuator();
delay(10);// malé oneskorenie pred zasunutím
pullActuator();
delay(retracttime);
stopActuator();
elapsedTime = millis();// ako dlho uplynulo?
if (elapsedTime > timetorun) {// ak uplynulo 300 sekúnd, zastavte
Serial.print("Uplynutý čas presiahol maximálny čas chodu. Max. čas chodu: ");
Serial.println(timetorun);
keepMoving = false;
}
}// koniec if
}// koniec hlavnej slučky
void stopActuator() {
analogWrite(PWMPinA1, 0);
analogWrite(PWMPinB1, 0); // rýchlosť 0-255
}
void pushActuator() {
analogWrite(PWMPinA1, 255);
analogWrite(PWMPinB1, 0); // rýchlosť 0-255
}
void pullActuator() {
analogWrite(PWMPinA1, 0);
analogWrite(PWMPinB1, 255);// rýchlosť 0-255
}
Je dôležité prejsť si kód riadok po riadku a pochopiť, čo sa deje. Vďaka tomu si môžete kód prispôsobiť aj na množstvo ďalších úloh. Najdôležitejšia je však zatiaľ prvá časť a funkcia setup, ktoré sa zameriavajú na priraďovanie pinov a nastavenie rýchlosti cyklu.
Musíte nakonfigurovať piny na našom LC-80 tak, aby zodpovedali prvej časti kódu, a to nastavením prepojok na LC-80 alebo úpravou kódu. V tomto prípade nastavte pin „Enable“ na D13, pin „PWMA“ na D11 a pin „PWMB“ na D3. Pin „Enable“ riadi a napája Motor; bez neho sa aktuátor prestane hýbať a nebude ho možné ovládať. Piny „PWMA“ a „PWMB“ ovládajú vysúvanie a zasúvanie aktuátora. V tomto príklade nepotrebujeme piny „Sensor“, takže si s ich výberom nerobte starosti.
Riadenie časovača lineárneho aktuátora je teraz hotové. Kód môžete nahrať do Arduina pomocou ich IDE (stiahnite si ho z webu Arduino). Keď sa váš lineárny aktuátor bude vysúvať a zasúvať, prečo sa s kódom trochu neprehrať? Skúste upraviť čas vysúvania/zasúvania v kóde, znova ho nahrajte do Arduina a sledujte, ako lineárny aktuátor reaguje. Úpravou týchto hodnôt v kóde môžete riadiť rýchlosť a celkový čas pohybového cyklu podľa vašej aplikácie.
Záver
Nižšie sme pridali video aktuátora s časovaním v akcii. V ukážkovom videu sme chceli ukázať ďalší spôsob, ako možno meniť časovanie, preto sme ho nastavili tak, aby sa vždy po 5 sekúnd vysúval a zasúval v rámci 20-sekundového cyklu.
Ako sme už spomenuli, toto je len jeden príklad, ako môžete s pomocou našich mikrokontrolérov upraviť pohyb aktuátora. Ak máte v hlave vlastnú metódu riadenia, s pomocou nášho šikovného inžinierskeho tímu vám vieme postaviť riadiaci systém presne podľa vašich požiadaviek. Prevedú vás procesom a zabezpečia, aby ste mali nad svojimi jednotkami plnú kontrolu. Ak sa chcete dozvedieť viac o procese vlastnej objednávky, pozrite si našu stránku vlastných objednávok.