Tartalomjegyzék:
- Kellékek
- 1. lépés: Könyvtári funkciók
- 2. lépés: A SpeedStepperPlot példa futtatása motor nélkül
- 3. lépés: A SpeedStepperProfile példa futtatása motor nélkül
- 4. lépés: A SpeedStepperSetup példa futtatása motor nélkül
- 5. lépés: Várakozás
- 6. lépés: A SpeedStepperSetup futtatása léptetőmotorral és SparkFun Redboard Turbo -val
Videó: Léptető sebesség -szabályozó menü Arduino számára: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
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
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
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
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:
DC MOTOR Kézmozdulatok Sebesség és irány vezérlése az Arduino használatával: 8 lépés
DC MOTOR kézmozdulatok Arduino használatával a sebesség és az irányítás szabályozása: Ebben az oktatóanyagban megtanuljuk, hogyan lehet kézmozdulatokkal vezérelni az egyenáramú motort arduino és Visuino használatával. Nézze meg a videót! Nézze meg ezt is: Kézmozdulatok bemutatója
CNC szervo léptető (GRBL -képes): 4 lépés
CNC szervo léptető (GRBL -képes): Ez a projekt egy meglehetősen egyszerű motorvezérlő, amely lehetővé teszi olcsó, nagy teljesítményű egyenáramú motorok használatát GRBL -vel a CNC -gép vezetőcsavarjainak működtetéséhez. Nézze meg a fenti videót, hogy bemutassa ezt a vezérlőt az otthoni CNC gépen
A léptető átalakítása játékmozgásokká: 4 lépés
A léptető átalakítása játékmozgásokká: IntroEz az eszköz a házi készítésű léptető (lépésgép) mozgását játékmozgássá alakítja. Minden olyan játékhoz használható, amely ("w") előre halad. Működhet VR játékoknál is, ha elfogadják a billentyűzet bevitelt. Valószínűleg nyert
Hogyan készítsünk Arduino LINE FOLLOWER ROBOTOT (BEÁLLÍTHATÓ SEBESSÉG): 5 lépés
Hogyan készítsünk Arduino LINE FOLLOWER ROBOTOT (BEÁLLÍTHATÓ SEBESSÉG)?
Léptető Pomodoro időzítő: 3 lépés (képekkel)
Léptető Pomodoro időzítő: A Stepper Pomodoro egy asztali időzítő, amely segít a napi feladatlista kezelésében azáltal, hogy minden munkaidőt 30 perces szakaszokra bont. A normál Pomodoro időzítővel ellentétben azonban nem nyugtalanít a hátralévő idő megjelenítésével. Ehelyett