Ez az oktatóanyag segít megérteni egy kefe nélküli egyenáramú motorvezérlő vezérlését Arduino és lineáris aktuátor párosítása esetén. Ez a program használható egy aktuátor löketének folyamatos meghosszabbítására és visszahúzására.
Mielőtt belekezdenénk, nézzük át az ebben az oktatóanyagban használni kívánt komponenseket:
- Arduino Mega (Arduino Uno is használható).
- LC-241.
- PA-14 kefe nélküli motorral.
- PS-13-12 tápegység.
- Áthidaló vezetékek.
A lineáris aktuátorból két vezeték jön ki, az egyik a motorhoz, a másik a végálláskapcsolókhoz tartozik. A fenti ábra vázlata bemutatja az alkatrészek összekötését.
PIN-KÓD BEÁLLÍTÁSI KÓD
int out_lim = 45; // külső végálláskapcsoló láb
int in_lim = 53; // belső végálláskapcsoló láb
int run_f = 25; // run láb a vezérlőn
int run_r = 30; // fordított láb a vezérlőn
A kódnak ez a része az adatok fogadására és küldésére használt lábak inicializálásával foglalkozik. Ebben az esetben minden digitális lábat használtunk, de analóg lábak is használhatók.
BEÁLLÍTÓ HUROKKÓD
void setup() {
Serial.begin(9600); // soros kommunikáció inicializálása 9600 bit/másodperc sebességgel
pinMode(out_lim, INPUT_PULLUP); // a 45-ös lábat bemeneti lábként konfigurálja
pinMode(in_lim, INPUT_PULLUP); // az 53-as lábat bemeneti lábként konfigurálja
pinMode(run_f, OUTPUT); // a 25-ös lábat kimeneti lábként konfigurálja
pinMode(run_r, OUTPUT); // a 30-as lábat kimeneti lábként konfigurálja
retract(); // visszahúzza a körvonalat indításkor
késlekedés(500);
}
A „beállítás” ciklus konfigurálja, hogy mely lábakat használja a program kimenetként és melyeket bemenetként. Amint a kódban látható, a végálláskapcsolókhoz csatlakoztatott lábakat a végálláskapcsolók állapotának kiolvasására, az LC-241 „RUN” és „REV” pontjaihoz csatlakoztatott lábakat pedig az írásra használják. Kezdetben a kód egy visszahúzási függvényt is futtat, amely a teljes visszahúzást végzi az indítás előtt.
FÜGGVÉNYMEGHATÁROZÁSOK KÓD
void extend() // ez a függvény engedélyezi a motor működését
{
digitalWrite(run_f, LOW);
digitalWrite(run_r, MAGAS);
}
void retract() // ez a függvény megfordítja a motor forgásirányát
{
digitalWrite(futás_f, LOW);
digitalWrite(run_r, LOW);
}
void run_stop() // ez a függvény letiltja a motort
{
digitalWrite(run_f, MAGAS);
digitalWrite(run_r, MAGAS);
}
Ez a rész a motor teljesítményének és irányának vezérlésére használt funkciókat ismerteti. A motor engedélyezését vagy letiltását úgy végezzük, hogy „0” vagy „1” értéket írunk a „RUN” lábra, majd ugyanazokat a parancsokat adjuk ki a „REV” lábra a motor irányának megfordításához.
FŐ HUROK KÓD
Üres ciklus() {
int out_lim_state = digitalRead(out_lim); // beolvassa a végálláskapcsolók értékét és elmenti azt
int in_lim_state = digitalRead(in_lim);
Serial.print("külső végálláskapcsoló értéke "), Serial.println(out_lim_state); // 0 -> végálláskapcsoló lenyomva
Serial.print("belső végálláskapcsoló értéke "), Serial.println(in_lim_state); // 1 -> a végálláskapcsoló nincs lenyomva
if (out_lim_state == 0 && in_lim_state == 1) // ha a külső végálláskapcsoló le van nyomva, de a belső nincs (teljesen kihúzva)
{
retract(); // vonóvonal visszahúzása
}
else if (out_lim_state == 1 && in_lim_state == 0) // ha a belső végálláskapcsoló le van nyomva, de a külső nincs (teljesen visszahúzva)
{
extend(); // meghosszabbítjuk a körvonalat
}
A „hurok” alapvetően csak a végálláskapcsolók bemeneteit olvassa be, hogy ellenőrizze, hogy a kapcsolók le vannak-e nyomva vagy sem, majd ennek alapján megváltoztatja a motor forgásirányát.
A piacon kapható lineáris aktuátorok többsége kefés egyenáramú motorral van felszerelve, így a motorral elérhető kitöltési tényező némileg lehetetlenné teszi az egység folyamatos működtetését. A Progressive Automationsnál ügyfeleinknek lehetőséget biztosítunk arra, hogy PA-14 modellünkhöz kefe nélküli egyenáramú motort válasszanak, ami még több lehetőséget biztosít számukra projektjeikhez.