Tartalomjegyzék:

Léptető sebesség -szabályozó menü Arduino számára: 6 lépés
Léptető sebesség -szabályozó menü Arduino számára: 6 lépés

Videó: Léptető sebesség -szabályozó menü Arduino számára: 6 lépés

Videó: Léptető sebesség -szabályozó menü Arduino számára: 6 lépés
Videó: RAMPS 1.6 - Basics 2024, Július
Anonim
Léptető sebességszabályozó menü az Arduino számára
Léptető sebességszabályozó menü az Arduino számára
Léptető sebességszabályozó menü az Arduino számára
Léptető sebességszabályozó menü az Arduino számára
Léptető sebességszabályozó menü az Arduino számára
Léptető sebességszabályozó menü az Arduino számára

Ez a SpeedStepper könyvtár az AccelStepper könyvtár átírása, amely lehetővé teszi a léptetőmotor sebességének szabályozását. A SpeedStepper könyvtár lehetővé teszi a beállított motorfordulatszám megváltoztatását, majd az új beállított sebességre történő gyorsítást/lassítást ugyanazon algoritmus használatával, mint az AccelStepper könyvtár. A SpeedStepper könyvtár lehetővé teszi a plusz és a mínusz korlát és az "otthoni" pozíció beállítását is. Van egy goHome parancs, amellyel visszatérhet az alaphelyzetbe.

Korlátozások: A SpeedStepper könyvtár csak az irány- és lépéskimeneteket hajtja meg, ezért csatlakoztatni kell egy motorvezérlőhöz, például az Easy Driver -hez, hogy ténylegesen vezesse a léptetőmotort. Az AccelStepper könyvtár több vezetési lehetőséget kínál, amelyek szükség esetén átmásolhatók ebbe a könyvtárba.

Három példavázlat található, amelyek mindegyike motor vagy motor meghajtó nélkül is futtatható. A speedStepperPlot vázlat példaként ad ki sebességparancsokat és a goHome parancsot, és létrehoz egy diagramot a kapott sebességről és helyzetről. A speedStepperSetup vázlat menüvezérelt beállítást biztosít a motor otthoni állapotának és korlátainak beállításához, majd a motor működtetéséhez, valamint a sebesség fel- és leállításához, valamint a goHome befejezéséhez. A speedStepperProfile vázlat egy példát mutat a sebességprofil beállítására és végrehajtására.

Míg az AccelStepper könyvtár jó helyzetszabályozást biztosít, a sebességszabályozásra szükség volt a prototípus jégolvasztó szondához, amely biológiai mintákat gyűjt az Európán. Itt egy videó a prototípus egy korábbi verziójáról, amely súly helyett motort használt. Az 1.1 -es verzió fordulatszámprofilokat adott hozzá, miután a felhasználó eszközt kért a szivattyú sebességprofiljának szabályozására.

Ez a könyvtár Arduino Uno és Mega2560 rendszeren fut, de a prototípushoz a nagyobb memória / gyorsabb SparkFun Redboard Turbo processzort használták.

Ez az utasítás online is elérhető az Arduino Stepper Speed Control Library könyvtárában

Kellékek

A példa vázlatok futtatásához csak egy Arduino UNO vagy Mega2560 és a szoftverkönyvtárak szükségesek

A könyvtár padon történő teszteléséhez SparkFun Redboard Turbo -t használtak Easy Driver, 200 lépés/fordulat, 12 V 350 mA lépcsőmotorral és 12 DC 2A vagy nagyobb tápegységgel, pl. https://www.sparkfun.com/products/14934. USB A-mikro kábel USB-TTL soros kábel Arduino IDE V1.8.9 és számítógép, amelyen futtatható. SpeedStepper librarypfodParser könyvtár a nonBlockingInput és pfodBufferedStream osztályokhoz millisDelay könyvtár a nem blokkoló késleltetésekhez

1. lépés: Könyvtári funkciók

A SpeedStepper könyvtár futtatja a léptetőmotort, amelyet a könyvtár által meghatározott korlátok korlátoznak. Tekintse meg a SpeedStepper.h fájlt a rendelkezésre álló különféle könyvtári módszerekről. Íme a mögöttük lévő logika vázlata.

A léptető helyzetét a lépések (impulzusok) számolásával követik nyomon. A könyvtár korlátozza a pozíciót a setPlusLimit (int32_t) és a setMinusLimit (int32_t) pozíciók között. A plusz korlát mindig> = 0, a mínusz korlát pedig mindig <= 0. Indításkor a motor helyzete 0 (otthon), és a határértékek nagyon nagy +/- számok (kb. +/- 1e9 lépés). setAcceleration (float) beállítja, hogy a motor milyen gyorsan változtassa felfelé vagy lefelé a sebességet. Amint a motor közeledik a plusz vagy mínusz határhoz, ezen a tempón lassul, amíg meg nem áll a határértéknél. Indításkor a gyorsulás 1,0 lépés/sec/sec. A gyorsítási beállítás mindig +ve szám. A setSpeed (úszó) beállítás előjele határozza meg a motor mozgásának irányát.

A setSpeed (float) beállítja a motort felgyorsító / lassító sebességet az aktuális sebességről. A setSpeed (úszó) segítségével beállítható sebességet abszolút értékben korlátozzák a beállítások, setMaxSpeed (úszó), alapértelmezett 1000 lépés/mp és setMinSpeed (úszó), alapértelmezett 0,003 lépés/mp. Ezek az alapértelmezett értékek egyben az abszolút keményen kódolt sebességkorlátozások is, amelyeket a könyvtár a setMaxSpeed () és a setMinSpeed () esetén elfogad. Ha a maximális sebességet> 1000 lépés/sec értékre szeretné beállítani, akkor a SpeedStepper.cpp fájl első sorát kell szerkesztenie, hogy a maxMaxSpeed (1000) értéket a kívánt maximális sebességre módosítsa. A gyakorlatban a maximális sebességet a könyvtár run () metódusába történő hívások közötti idő is korlátozza. 1000 lépés / másodperc esetén a run () metódust legalább 1 ms -onként meg kell hívni. Lásd az alábbi késleltetési szakaszt.

A min. Fordulatszámnál kisebb fordulatszám beállításakor a motor leáll. Mindegyik beállítóhoz tartozik megfelelő getter, lásd a SpeedStepper.h fájlt. Sebesség esetén a getSetSpeed () a setSpeed () segítségével beállított sebességet adja vissza, míg a getSpeed () az aktuális motor fordulatszámát adja vissza, amely változik, ahogy gyorsítja/lassítja a beállított sebességet. Ha a motor nem abba az irányba megy, amit a +ve -nek gondol, hívhatja az invertDirectionLogic () parancsot, hogy felcserélje a motor haladási irányát +ve sebességre.

A getCurrentPosition () a motor aktuális pozícióját adja vissza a "home" (0) értékhez képest. Felülbírálhatja az aktuális motorállást setCurrentPosition (int32_t). Az új pozíció a beállított plusz/mínusz határokon belül van.

Kezdetben a motor leáll a 0. pozícióban. A setSpeed (50.0) hívása hatására a gyorsulás a +ve irányba indul, és a maximális sebesség 50 lépés/perc. A hardStop () hívása azonnal leállítja a motort, ahol van. Másrészt a stop () metódus meghívásával a fordulatszám nullára áll, és a motor leáll. A stopAndSetHome () hívása azonnal leállítja a motort, és 0 -ra állítja a pozícióját. A plusz/mínusz határértékek nem változnak, de most erre az új 0 (otthoni) pozícióra vonatkoznak. A goHome () hívása visszaállítja a léptetőt ebbe a 0 (otthoni) helyzetbe, és megáll. A setSpeed () hívása törli a hazautazást.

A SpeedStepper könyvtár sebességprofil -vezérlést is biztosít a setProfile (SpeedProfileStruct* profileArray, size_t arrayLen), startProfile (), stopProfile () metódusokkal, hogy megszakítsa a futó profilt, és az isProfileRunning (). Lásd a speedStepperProfile példavázlatát.

2. lépés: A SpeedStepperPlot példa futtatása motor nélkül

A SpeedStepperPlot példa futtatása motor nélkül
A SpeedStepperPlot példa futtatása motor nélkül

Az Arduino IDE V1.8.9 telepítése Töltse le és telepítse a SpeedStepper könyvtárat Mentse el a SpeedStepper.zip fájlt, majd használja az Arduino IDE menüpont Vázlat → Könyvtár beillesztése →. ZIP könyvtár hozzáadása a könyvtár importálásához Töltse le és telepítse a millisDelay könyvtárat is

Nyissa meg a Példák → SpeedStepper → speedStepperPlot példavázlatot (szükség esetén indítsa újra az IDE -t). Ez a vázlat úgy van konfigurálva, hogy működjön a Serialnal, pl. UNO és Mega stb. A SparkFun Redboard Turbo -n való futáshoz lásd alább.

Ennek a példának a futtatásához nincs szükség vezetőlapra vagy léptetőmotorra. Ezek a példák a D6 és D7 kimeneteket használják. A kimeneti csapokat bármilyen digitális kimenetre módosíthatja, ha megváltoztatja a vázlat tetején található STEP_PIN és DIR_PIN beállításokat.

Töltse fel a vázlatot a táblára, majd nyissa meg az Eszközök → Soros plotter 115200 baud sebességgel a sebesség (PIROS) és a pozíció (KÉK) ábrázolását. A plusz korlát 360 -ra van állítva, ami miatt a sebesség nullára emelkedik kb. az x tengelyen. A mínusz határ -510. Az állás megáll ~ -390-nél, mert a sebességet 0,0-ra kérték. Az x tengely 380 pontján a goHome cmd kerül kiadásra, amely visszaállítja a léptetőt a nullába.

Ez a speedStepperPlot vázlat millisDelays -t használ az időváltáshoz a különböző sebességek és gyorsítások között. Sok esetben a SpeedStepperProfile használata egyszerűbb, mint a következő példában.

3. lépés: A SpeedStepperProfile példa futtatása motor nélkül

A SpeedStepperProfile példa futtatása motor nélkül
A SpeedStepperProfile példa futtatása motor nélkül

Nyissa meg a Példák → SpeedStepper → speedStepperPlot példa vázlatát, ez a vázlat az Arduino Soros Plotter segítségével hozza létre a fenti ábrát, és példa egy előre meghatározott sebességprofil futtatására, például szivattyú futtatása esetén.

A léptető sebességprofilok egy SpeedProfileStruct tömbből állnak, amelyet a SpeedStepper.h fájl határoz meg.

structure SpeedProfileStruct {

lebegési sebesség; // a célsebesség e lépés végén unsigned long deltaTms; // az aktuális sebességről (e lépés elején) a célsebességre való gyorsuláshoz szükséges idő};

Határozzon meg egy SpeedProfileStruct tömböt, amely tartalmazza a célsebességet minden lépésnél, és azt az időt, deltaTms, mS -ban, hogy elérje ezt a célsebességet az előző célsebességtől. Ha a deltaTms nulla vagy nagyon kicsi, akkor a sebesség azonnal ugrik az új célsebességre. Ellenkező esetben a szükséges gyorsítást a setAcceleration () meghívja, majd a setSpeed () hívás az új célsebességhez. A profilt minden esetben a meglévő plusz és mínusz pozíciókorlátok és a max/min sebesség beállításai korlátozzák. Ha meg akarja tartani a sebességet, ismételje meg az előző sebességet a kívánt tartással. Mivel az új célsebesség megegyezik a jelenlegi sebességgel, a számított gyorsulás nulla lesz, és a sebesség nem változik.

Ez a SpeedProfileStruct tömb előállította a fenti ábrát

const SpeedProfileStruct profil = {{0, 0}, // azonnal álljon le, ha még nem állt le {0, 1000}, // tartson nullát 1 másodpercig {-50, 0}, // ugorjon -50 -re {-200, 2000}, // rámpa -200 -ra {-200, 6000}, // tartsa -200 -nál 6 másodpercig {-50, 2000}, // rámpa -50 -re {0, 0}, // // azonnal álljon le {0, 1500}, // tartsa nullát 1,5 másodpercig {50, 0}, // ugorjon 50 -re {200, 2000}, // rámpa 200 -ra {200, 6000}, // tartsa 200 -at 6 másodpercig {50, 2000}, // rámpa 50 -re {0, 0}, // // azonnal álljon le {0, 1000} // tartsa nullát // a kimenet ábrázolásához}; const size_t PROFILE_LEN = sizeof (profil) / sizeof (SpeedProfileStruct); // kiszámítja a profil tömb méretét

A profilt a setProfile (SpeedProfileStruct* profileArray, size_t arrayLen) hívásával állítjuk be, pl. stepper.setProfile (profil, PROFILE_LEN);

Miután beállította a profilt, hívja a startProfile () gombot, hogy a motor aktuális fordulatszámáról kezdje el futtatni (általában leállított helyzetből indul). A profil végén a motor csak az utolsó célsebességgel fog tovább futni. Az isProfileRunning () metódust meg lehet hívni, hogy megnézzük, fut -e még a profil. Ha korán le szeretné állítani a profilt, hívja a stopProfile () parancsot, amely elhagyja a profilt és leállítja a motort.

4. lépés: A SpeedStepperSetup példa futtatása motor nélkül

A példavázlat a saját léptetőmotoros alkalmazásához készült. Ez egy menüvezérelt felületet biztosít, amely lehetővé teszi, hogy a motor alaphelyzetébe lépjen, ha még nincs ott, majd opcionálisan visszaállítja a plusz és mínusz határokat, majd a motort ezen a tartományon belül futtatja. A „futtatás” menü lehetővé teszi a sebesség növelését és csökkentését, az aktuális sebességgel történő lefagyasztást, megállást és visszatérést haza.

Ez a vázlat számos olyan szoftverfunkciót szemléltet, amelyek a hurkot () érzékenyen tartják, így saját érzékelő bemeneteket adhat hozzá a léptető vezérléséhez. Fáradsággal kell elkerülni a késleltetést, amely akadályozná a sebességszabályozást. (Lásd: A késések gonoszak)

Telepítse a fenti SpeedStepperPlot futtatásához használt könyvtárakat, majd telepítse a pfodParser könyvtárat is. A pfodParser könyvtár biztosítja a NonBlockingInput és a pfodBufferedStream osztályokat, amelyek a felhasználói bevitel és a menü kimenetének kezelésére szolgálnak, megakadályozva a hurok () futását.

Nyissa meg a Példák → SpeedStepper → speedSpeedSetup példát. Ez a vázlat úgy van konfigurálva, hogy működjön a Serialnal, pl. UNO és Mega stb. A SparkFun Redboard Turbo -n való futáshoz lásd alább.

Ennek a példának a futtatásához nincs szükség vezetőlapra vagy léptetőmotorra. Ezek a példák a D6 és D7 kimeneteket használják. A kimeneti csapokat bármilyen digitális kimenetre módosíthatja, ha megváltoztatja a vázlat tetején található STEP_PIN és DIR_PIN beállításokat. Töltse fel a vázlatot a táblára, majd nyissa meg az Eszközök → Soros monitor 115200 címen a SETUP menüt.

SETUP pos: 0 sp: 0.00 +Lim: 500000 -Lim: -500 LATENCY: stepper: 492uS loop: 0uS p -set Home l -határok beállítása h -goHome r -run>

Amikor a vázlat fut, a léptető aktuális pozíciója „otthoni” (0) pozíciónak számít. Ha vissza kell állítania a léptetőt igazi „otthoni” helyzetébe, írja be a p parancsot a SET HOME menü megjelenítéséhez

SET HOME pos: 0 sp: 0.00 + Lim: 1073741808 -Lim: -1073741808 LATENCY: stepper: 752uS loop: 3852uS x -setHome here and exit + -Előre - -Hátramenet -csere Előre/Vissza -hardStop >

Amint láthatja, a vázlatban kódolt korlátokat eltávolították, így bárhol újra elhelyezheti a léptetőt. Vigyáznia kell arra, hogy ne lépje túl a fizikai korlátokat, különben eltörhet valamit.

Használja a + cmd billentyűt a léptető előre mozgatásához, ha azt találja, hogy rossz irányba mozog, írjon be egy nem parancsot, vagy csak egy üres sort, hogy megállítsa, majd a scommand segítségével cserélje az Előre irányt. Frissítse a vázlatot, hogy az invertDirectionLogic () hívást is tartalmazza a beállításban, hogy ezt a következő futtatáshoz kijavítsa.

A + / - cmds gombokkal állítsa a léptetőt a megfelelő nulla helyzetbe. A motor lassan indul, majd haladva növeli a sebességet, csak használja és üres sorral állítsa le. Ennek és a korlátok menünek a maximális sebességét a setupMenus.cpp tetején található MAX_SETUP_SPEED határozza meg.

Miután a motort „otthoni” helyzetbe állította, az x cmd billentyűvel állítsa vissza az aktuális pozíciót 0-ra, és térjen vissza a BEÁLLÍTÁS menübe.

Ha be kell állítania a korlátokat, általában csak a kezdeti beállításoknál, használja az l cmd billentyűt a SET LIMITS menü beállításához

SET LIMITS poz.: 0 sp: 0.00 + Lim: 1073741808 -Lim: -1073741808 LATENCY: stepper: 944uS loop: 5796uS l -setLimit here + -Forward - -Reverse h -goHome x -exit -hardStop>

Használja a + cmd billentyűt, hogy továbblépjen a plusz korláthoz, majd az l cmd használatával állítsa be plusz korlátnak. A h parancs ezután használható a 0 -ra való visszatéréshez, a - cmd pedig a mozgáshoz, ha a motor a mínusz határon van. Ismét az l cmd gombbal állítsa be a mínusz határt. Jegyezze fel a plusz és mínusz határok helyzetét, és frissítse a setup () metódus setPlusLimit és setMinusLimit utasításait ezekkel az értékekkel.

Ha a határokat beállította, használja az x cmd billentyűt a SETUP menübe való visszatéréshez, majd az r cmd gombbal nyissa meg a RUN menüt

RUN MENU pos: 0 sp: 3,31 + Lim: 500000 -Lim: -500 LATENCY: stepper: 944uS loop: 5796uS + -Speed up - -Speed down h -goHome. -hardStop-fagyasztási sebesség> +poz.: 4 sp: 9,49 +Lim: 500000 -Lim: -500 LATENCY: stepper: 792uS loop: 5664uS pos: 42 sp: 29.15 +Lim: 500000 -Lim: -500 LATENCY: stepper: 792uS hurok: 5664uS poz: 120 sp: 49.09 +Lim: 500000 -Lim: -500 LATENCY: léptető: 792uS hurok: 5664uS poz: 238 sp: 69.06 +Lim: 500000 -Lim: -500 LATENCY: léptető: 792uS hurok: 5664uS

A + cmd gyorsítani kezd előrefelé, és 2 másodpercenként kinyomtatja a pozíciót és a sebességet. Amikor a motor eléri a kívánt sebességet, bármely más gombbal (vagy üres bemenettel) leállíthatja a gyorsítást. Csökkentheti a sebességet a - cmd lenyomásával. Ha leáll, a - cmd fordítva gyorsul.

Ez a RUN menü lehetővé teszi a projekt kézi vezérlését. Az automatikus vezérléshez további érzékelőket kell hozzáadnia.

5. lépés: Várakozás

A léptetőmotor vezérlése a szoftvertől függ, amely minden lépést parancsol. A beállított sebesség fenntartásához a vázlatnak elég gyakran meg kell hívnia a stepper.run () metódust, hogy a következő lépést az aktuális sebességnek megfelelő időben elindítsa. Az érzékelőkön keresztüli vezérléshez képesnek kell lennie az új mérések gyors feldolgozására. A pozíció/sebesség nyomtatás két LATENCY mérést tartalmaz, amelyek segítségével ellenőrizheti, hogy a vázlata elég gyors -e.

Lépegetési késleltetés (pfodBufferedStream)

A léptető késleltetés méri a maximális késleltetést a stepper.run () metódus egymás utáni hívásai között. Annak érdekében, hogy a léptetőmotor másodpercenként 1000 lépéssel működjön, a léptető késleltetésnek kisebbnek kell lennie, mint 1000uS (1mS). Ennek a vázlatnak az első változata sok ezredmásodperc várakozási idővel rendelkezett. Ennek leküzdése érdekében az extra hívásokat a runStepper () metódushoz (amely a stepper.run ()) meghívja, ahol a kódon keresztül hozzáadásra kerül. Ez nem oldotta meg teljesen a problémát, mert a menü és a kimeneti nyomtatási utasítás blokkolta a vázlatot, miután a kis Serial Tx puffer megtelt. Ennek a blokkolásnak a elkerülése érdekében a pfodPuzer könyvtárból származó pfodBufferedStream segítségével 360 bájtos kimeneti nyomtatási puffert adtak hozzá, amelybe a nyomtatási utasítás gyorsan beírható. Ezután a pfodBufferedStream ebben az esetben a 115200 -as adatátviteli sebességgel szabadítja fel a bájtokat. A pfodBufferedStreamnek választania kell, hogy blokkolja -e, ha a puffer megtelik, vagy csak elhagyja a túlcsorduló karaktereket. Itt úgy van beállítva, hogy a puffer megtelésekor minden további karaktert eldob, hogy a vázlat ne legyen blokkolva, várva, hogy a Serial karaktereket küldjön.

Hurok késleltetés (NonBlockingInput)

A ciklus késleltetése a ciklus () metódus egymás utáni hívásai közötti maximális késleltetést méri. Ez beállítja, hogy milyen gyorsan tudja feldolgozni az új érzékelő méréseket és beállítani a motor beállított sebességét. Az, hogy milyen gyorsnak kell lennie, attól függ, hogy mit próbál irányítani.

A nyomtatási utasítások miatti késéseket a fenti pfodBufferedStream használatával távolítottuk el, de a felhasználó bevitelének feldolgozásához a bemenet első karakterét kell figyelembe vennie, és figyelmen kívül kell hagynia a sor többi részét. A pfodParer könyvtár NonBlockingInput osztálya a nullától eltérő karaktert adja vissza, ha van bemenet, a readInput () használatával, és a következő karakterek törléséhez és elvetéséhez a clearInput () használatával, amíg 10mS-ig nem érkezik karakter a ciklus blokkolása nélkül ()

Természetesen a hurok késleltetését növeli az extra kód, amelyet hozzáad az érzékelők olvasásához és az új beállított sebesség kiszámításához. Sok érzékelőkönyvtár a késleltetést (..) használja a mérés megkezdése és az eredmény lekérése között. A millisDelay használatához újra kell írnia ezeket a könyvtárakat, hogy megfelelő nem blokkoló késleltetés után vegye fel a mérést.

6. lépés: A SpeedStepperSetup futtatása léptetőmotorral és SparkFun Redboard Turbo -val

SpeedStepperSetup futás léptetőmotorral és SparkFun Redboard Turbo -val
SpeedStepperSetup futás léptetőmotorral és SparkFun Redboard Turbo -val
SpeedStepperSetup futás léptetőmotorral és SparkFun Redboard Turbo -val
SpeedStepperSetup futás léptetőmotorral és SparkFun Redboard Turbo -val

A SpeedStepperSetup vázlat valódi futtatásához szüksége lesz egy léptetőmotorra, meghajtóra és tápegységre, és ebben a példában a SparkFun Redboard Turbo -ra.

A fenti kapcsolási rajz (pdf verzió) mutatja a csatlakozásokat. A SpeedStepperSetup vázlatában módosítsa a SERIAL definíciót #define SERIAL Serial1 -re

Léptetőmotor, tápegység, vezető és védelem

Sokféle és méretű léptetőmotor létezik. Itt két tekercs 12V 350mA léptetőmotort használnak a teszteléshez. Ennek a léptetőnek az áramellátásához 12 V vagy annál nagyobb, és 350 mA -nél nagyobb tápegységre van szüksége.

Ez a könyvtár csak irányt és lépéskimenetet biztosít, így illesztőprogramra van szükség a léptetőmotorhoz való illesztéshez. Az Easy Driver és a Big Easy Driver vezérli a motor tekercseinek áramát, így biztonságosan használhatja a nagyobb feszültségű tápegységet, például 6 V -os tápegységet használhat egy 3,3 V -os motorhoz. Az Easy Driver 150 mA/tekercs és 700 mA/tekercs között tud táplálni. Nagyobb áramok esetén a Big Easy meghajtó tekercsenként akár 2A -t is képes táplálni. Olvassa el a GYIK -ot az Easy Drive oldal alján.

Ezek a példák a D6 és D7 lépés- és iránykimenetet használják. A kimeneti csapokat bármilyen digitális kimenetre módosíthatja, ha megváltoztatja a vázlat tetején található STEP_PIN és DIR_PIN beállításokat.

A Sparkfun Redboard Turbo programozása

A Redboard Turbo programozása problémás. Ha nem sikerül programozni, először nyomja meg egyszer a reset gombot, majd válassza ki újra a COM portot az Arduino Tools menüben, és próbálja újra. Ha ez nem működik, nyomja meg kétszer a reset gombot, és próbálja újra.

Az Easy Driver bekötése

Két tekercses léptetőmotor 4 vezetékkel rendelkezik. Multiméterrel keresse meg az egyes tekercsekhez csatlakozó párokat, majd az egyik tekercset az Easy Driver A és a másik tekercset a B csatlakozóhoz kösse. Nem mindegy, hogy melyik irányba köti őket, mert a beállítás menüben az s cmd billentyűvel módosíthatja a mozgás irányát.

A motor tápegysége az M+ és a GNDS -hez van kötve. Állítsa be a kártya logikai szintjét a 3/5V kapcsolattal. Rövidítse le a kapcsolatot a 3,3 V -os mikroprocesszoros kimenetekhez, mint például a SparkFun Redboard Turbo (ha nyitva hagyja, akkor alkalmas 5 V -os digitális jelekhez, pl. UNO, Mega) Csatlakoztassa a GND, STEP, DIR csapokat a GND mikroprocesszorhoz és a dir kimeneti csapok. A motor meghajtásához nincs szükség más csatlakozásokra.

USB -TTL soros kábel

Amikor áthelyezi a SpeedStepperSetup vázlatot az Uno/Mega -ból a Redboard Turbo -ba, lehet, hogy naiv módon lecseréli a #define SERIAL Serial -t a #define SERIAL SerialUSB -re, hogy megfeleljen a Redboard Turbo usb soros csatlakozásnak, azonban azt tapasztalja, hogy a léptető késleltetése körülbelül 10mS. Ez tízszer lassabb, mint az UNO esetében. Ez annak köszönhető, hogy a Redboard CPU kezeli az USB -kapcsolatot. Ennek megoldásához csatlakoztasson egy USB -TTL soros kábelt a D0/D1 -hez, és állítsa be a#define SERIAL Serial1 beállítást, hogy a hardver soros kapcsolatot használja a léptetőmotor vezérléséhez. A Serial1 használata LATENCY: stepper: 345uS loop: 2016uS ami 3 -szor gyorsabb, mint az UNO a léptető és ciklus várakozási idő esetén

Terminál program

Az Arduino soros monitort egy kicsit nehezebb használni a léptetőmotor vezérléséhez, mivel be kell írnia a karaktert a cmd sorba, majd nyomja meg az Enter billentyűt a küldéshez. Gyorsabban reagálhat, ha megnyit egy terminálablakot, a TeraTerm PC -hez (vagy CoolTerm Mac -hez), amely az USB -TTL kábel COM -portjához van csatlakoztatva. Ebben az ablakban egy cmd billentyű lenyomása azonnal elküldi. Az Enter lenyomásával csak üres sort küldhet.

A motor fordulatszám tartományának beállítása

A fentiek szerint az Easy Drive 1/8 lépésre van konfigurálva, így az 1000 lépés/másodperc 1000/8/200 lépés/fordulat = 0,625 fordulat/másodperc vagy maximum 37,5 fordulat/perc sebességgel forgatja a motort. Ha a bemenetet MS1/MS2 -re változtatja, akkor 1/8, ¼, ½ és teljes lépések között válthat. A teljes lépésekhez csatlakoztassa az MS1 -et és az MS2 -t a GND -hez. Ez akár 300 fordulat / perc sebességet is lehetővé tesz. A megfelelő MS1/MS2 beállítások kiválasztásával beállíthatja a motor és a hajtott alkatrész közötti áttételt.

Hardvervédelem

Míg a SpeedStepper könyvtár lehetővé teszi a motor mozgásának helyzetkorlátainak beállítását, addig a pozíció rögzítése a szoftver által kiadott lépések számlálásával történik. Ha a motor leáll, azaz a nyomaték nem elegendő a motor meghajtásához a következő lépésben, akkor a szoftver pozíciója szinkronban lesz a motor pozíciójával. Amikor a „goHome” parancsot használja, a motor túllépi az alaphelyzetet. A hardver károsodásának elkerülése érdekében a végálláskapcsolókat a kemény korlátokra kell felszerelni a motor áramellátásának lekapcsolásához

A motor áramkorlátjának beállítása

Először állítsa a potenciométer legalacsonyabb értékére. azaz a feszültség a TP1 -nél minimális. A potenciométer finom, ezért ne erőltesse a potenciométert a mechanikus ütközők mellett. Állítsa a lassú, egyenletes sebességgel haladó motort lassúvá, majd lassan forgassa el a potenciométert, amíg a motor nem ugrik vagy rángatja a lépések között.

Következtetés

Ez a projekt bemutatja, hogyan kell használni a SpeedStepper könyvtárat egy gyakorlati alkalmazásban. Míg az AccelStepper könyvtár jó helyzetszabályozást biztosít, a sebességszabályozásra szükség volt a Prototípus jégolvadó szondához, amely biológiai mintákat gyűjtött Európában, így az AccelStepper könyvtárat újraírták, hogy végsebességet és goHome funkciót biztosítsanak.

Ajánlott: