Sisukord:

Arduino jaoks kasutatav samm -kiiruse juhtimise menüü: 6 sammu
Arduino jaoks kasutatav samm -kiiruse juhtimise menüü: 6 sammu
Anonim
Arduino jaoks kasutatav samm -kiiruse juhtimise menüü
Arduino jaoks kasutatav samm -kiiruse juhtimise menüü
Arduino jaoks kasutatav samm -kiiruse juhtimise menüü
Arduino jaoks kasutatav samm -kiiruse juhtimise menüü
Arduino jaoks kasutatav samm -kiiruse juhtimise menüü
Arduino jaoks kasutatav samm -kiiruse juhtimise menüü

See SpeedStepper raamatukogu on AccelStepper raamatukogu ümberkirjutamine, et võimaldada samm -mootori kiiruse juhtimist. SpeedStepperi teek võimaldab teil muuta määratud mootori pöörlemiskiirust ja seejärel kiirendada/aeglustada uuele määratud kiirusele, kasutades sama algoritmi nagu AccelStepperi teek. SpeedStepperi teek võimaldab teil määrata ka pluss- ja miinuspiiri ning koduasendi. Koduasendisse naasmiseks on käsk goHome.

Piirangud: SpeedStepper raamatukogu juhib ainult suuna- ja astmelisi väljundeid ning seetõttu tuleb samm -mootori tegelikuks juhtimiseks ühendada mootori draiveriga, näiteks Easy Driveriga. Teek AccelStepper pakub rohkem sõiduvõimalusi, mida saab vajadusel sellesse teeki kopeerida.

Esitatakse kolm näidisvisandit, millest igaüks saab käivitada ilma mootori või mootorijuhita. speedStepperPlot eskiis väljastab näite kiiruse käsud ja käsu goHome ning genereerib graafiku saadud kiirusest ja asukohast. SpeedStepperSetupi eskiis pakub menüüst lähtuvat seadistust mootori kodu ja piiride seadmiseks ning seejärel mootori käivitamiseks ja kiiruse reguleerimiseks üles ja alla ning goHome lõpetamiseks. SpeedStepperProfile eskiis näitab kiirprofiili seadistamise ja täitmise näidet.

Kuigi AccelStepperi raamatukogu pakub head positsiooni juhtimist, oli Europas bioloogiliste proovide kogumiseks vajaliku jää sulamissondi prototüübi jaoks vaja kiiruse reguleerimist. Siin on video prototüübi varasemast versioonist, kus kasutati mootori asemel kaalu. Versioon 1.1 lisas kiiruseprofiilid pärast seda, kui kasutaja soovis vahendeid pumba kiiruseprofiili juhtimiseks.

See raamatukogu töötab Arduino Uno ja Mega2560 -ga, kuid prototüübi jaoks kasutati suuremat mälu / kiiremat protsessorit SparkFun Redboard Turbo.

See juhend on saadaval ka Internetis Arduino Stepper Speed Control Library raamatukogus

Tarvikud

Näidisjooniste käivitamiseks on vaja ainult Arduino UNO või Mega2560 ja tarkvara teeke

Raamatukogu pinkide testimiseks kasutati SparkFun Redboard Turbo koos Easy Driveriga, 200 sammu/pööret, 12 V 350 mA astmemootorit ja 12 DC toiteallikat 2A või rohkem, nt. https://www.sparkfun.com/products/14934. USB A kuni mikrokaabel USB to TTL Serial Cable Arduino IDE V1.8.9 ja arvuti selle käivitamiseks. SpeedStepper librarypfodParser nonblockingInput ja pfodBufferedStream klasside teek mitteblokeerivate viivituste jaoks

Samm: raamatukogu funktsioonid

SpeedStepperi teek käivitab samm -mootori, mis on piiratud kogu kehtestatud piiridega. Erinevate saadaolevate teegimeetodite kohta vaadake faili SpeedStepper.h. Siin on ülevaade nende taga olevast loogikast.

Stepperit jälgitakse sammude (impulsside) loendamisega. Raamatukogu piirab positsiooni setPlusLimit (int32_t) ja setMinusLimit (int32_t) vahel. Plusspiir on alati> = 0 ja miinuspiir on alati <= 0. Käivitamisel on mootori asend 0 (kodus) ja piirid on seatud väga suurtele +/- numbritele (umbes +/- 1e9 sammu). setAcceleration (float) määrab, kui kiiresti mootor kiirust kas üles või alla muudab. Kui mootor läheneb pluss- või miinuspiirile, aeglustab see seda kiirust, kuni piiril peatub. Käivitamisel on kiirenduseks seatud 1,0 sammu/sek/sek. Kiirenduse seade on alati +ve arv. SetSpeed (ujuk) sätte märk määrab mootori liikumissuuna.

setSpeed (ujuk) määrab mootori kiirendamise / aeglustamise kiiruse praegusest kiirusest. Kiirust, mida saab määrata setSpeed (ujuk) abil, piiravad absoluutväärtuses seaded, setMaxSpeed (ujuk), vaikimisi 1000 sammu/sek ja setMinSpeed (ujuk), vaikimisi 0,003 sammu/sekundis. Need vaikeväärtused on ka absoluutsed kõvakodeeritud kiirusepiirangud, mida teek setMaxSpeed () ja setMinSpeed () jaoks aktsepteerib. Kui soovite määrata maksimaalse kiiruse> 1000 sammu/sek, peate faili SpeedStepper.cpp esimest rida muutma, et muuta maxMaxSpeed (1000) soovitud maksimaalseks kiiruseks. Praktikas piirab maksimaalset kiirust ka raamatukogu run () meetodi kõnede vaheline aeg. 1000 sammu sekundis tuleb run () meetodit kutsuda vähemalt iga 1 ms järel. Vaadake allpool jaotist Latentsus.

Minimaalsest kiirusest väiksema kiiruse seadmine põhjustab mootori seiskumise. Kõigil neil seadistajatel on vastav getter, vt faili SpeedStepper.h. Kiiruse korral tagastab getSetSpeed () kiiruse, mille määrasite setSpeed () kaudu, samas kui getSpeed () tagastab praeguse mootori kiiruse, mis muutub, kui see kiirendab/aeglustab teie määratud kiirust. Kui mootor ei liigu selles suunas, mida te arvate +ve, võite helistada invertDirectionLogic (), et muuta mootori liikumissuunda +ve kiiruste jaoks.

getCurrentPosition () tagastab mootori hetkeasendi võrreldes koduga (0). Saate alistada praeguse mootori asukoha setCurrentPosition (int32_t). Uus positsioon on piiratud määratud pluss/miinus piirides.

Esialgu peatatakse mootor asendis 0. Kui helistate setSpeed (50.0), hakkab see kiirendama +ve suunas maksimaalse kiirusega 50 sammu/min. HardStop () helistamine peatab kohe mootori seal, kus see on. Teisest küljest seades stop () meetodi, seab kiirus nulli ja aeglustab mootori seiskumist. Helistamine stopAndSetHome () peatab mootori kohe ja seab selle asendiks 0. Pluss/miinus piirväärtusi ei muudeta, kuid nüüd viidatakse sellele uuele 0 (kodu) asendile. Helistades goHome (), naaseb samm sellesse 0 (kodu) asendisse ja peatub. Helistamine setSpeed () tühistab koju mineku.

SpeedStepperi teek pakub kiiruseprofiili juhtimist ka meetodite setProfile (SpeedProfileStruct* profileArray, size_t arrayLen), startProfile (), stopProfile () abil, et katkestada töötav profiil ja isProfileRunning (). Vaadake speedStepperProfile näitejoonist.

2. samm: SpeedStepperPloti näite käivitamine ilma mootorita

SpeedStepperPloti näite käivitamine ilma mootorita
SpeedStepperPloti näite käivitamine ilma mootorita

Installige Arduino IDE V1.8.9. Laadige alla ja installige SpeedStepperi teek. Salvestage SpeedStepper.zip ja seejärel kasutage Arduino IDE menüüelementi Visand → Kaasa raamatukogu → Lisa. ZIP -raamatukogu teegi importimiseks Laadige alla ja installige ka teek millisDelay

Avage näited → SpeedStepper → speedStepperPlot näite visand (vajadusel taaskäivitage IDE). See visand on konfigureeritud töötama Serialiga, nt. UNO ja Mega jne. SparkFun Redboard Turboga sõitmiseks vt allpool.

Selle näite käivitamiseks pole vaja juhtplaati ega samm -mootorit. Need näited kasutavad väljunditena D6 ja D7. Saate muuta väljundpoldid mis tahes digitaalseks väljundiks, muutes visandi ülaosas asuvaid sätteid STEP_PIN ja DIR_PIN.

Laadige eskiis pardale ja avage seejärel tööriistad → Sarjaplotter 115200 baudiga, et näidata kiiruse (PUNANE) ja positsiooni (SININE) graafikut. Plusspiiriks on seatud 360, mis põhjustab kiiruse nullist umbes 100 punktist x-teljel. Miinuspiir on -510. Positsioon peatub ~ -390 juures, sest kiirust on nõutud 0,0-ni. X-telje punktis 380 väljastatakse goHome cmd, mis tagastab samm-nulli.

See speedStepperPloti visand kasutab millisDelays aega erinevate kiiruste ja kiirenduste vahel vahetamiseks. Paljudel juhtudel on SpeedStepperProfile'i kasutamine lihtsam, nagu järgmises näites.

Samm 3: SpeedStepperProfile näite käivitamine ilma mootorita

SpeedStepperProfile näite käivitamine ilma mootorita
SpeedStepperProfile näite käivitamine ilma mootorita

Avage näited → SpeedStepper → speedStepperPlot näitejoonis, see visand koostab ülaltoodud graafiku Arduino jadaplaani abil ja on näide ettenähtud kiiruseprofiili käivitamisest, näiteks pumba töötamisel.

Stepper Speed Profiles koosneb SpeedProfileStruct massiivist, mis on määratletud failis SpeedStepper.h

struktuuri SpeedProfileStruct {

ujuki kiirus; // sihtkiirus selle sammu lõpus unsigned long deltaTms; // aeg praeguse kiiruse (selle sammu alguses) sihtkiirusele kiirendamiseks};

Määratlege SpeedProfileStruct massiiv, mis sisaldab iga sammu sihtkiirust ja aega deltaTms, mS, et saavutada see sihtkiirus eelmisest sihtkiirusest. Kui deltaTms on null või väga väike, hüppab kiirus kohe uuele sihtkiirusele. Vastasel juhul arvutatakse nõutav kiirendus setAcceleration (), millele järgneb uue sihtkiiruse setSpeed () üleskutse. Kõigil juhtudel piiravad profiili olemasolevad pluss- ja miinuspositsioonipiirangud ning max/min kiiruse seaded. Kui soovite kiirust hoida, korrake lihtsalt eelmist kiirust soovitud ajaga. Kuna uus sihtkiirus on sama mis praegune kiirus, on arvutatud kiirendus null ja kiirus ei muutu.

See SpeedProfileStruct massiiv koostas ülaltoodud graafiku

const SpeedProfileStruct profiil = {{0, 0}, // peatage kohe, kui pole veel peatunud {0, 1000}, // hoidke nulli 1 sekund {-50, 0}, // hüpata -50 {-200, 2000}, // kaldtee kuni -200 {-200, 6000}, // hoidke -200 juures 6 sekundit {-50, 2000}, // kaldtee alla -50 {0, 0}, // // lõpetage kohe {0, 1500}, // hoidke nulli all 1,5 sekundit {50, 0}, // hüpake 50 -le {200, 2000}, // kaldtee 200 -le {200, 6000}, // hoidke 200 nuppu 6 sekundit {50, 2000}, // kaldtee 50 -le {0, 0}, // // peatu kohe {0, 1000} // hoidke nulli // väljundi joonistamiseks}; const size_t PROFILE_LEN = sizeof (profiil) / sizeof (SpeedProfileStruct); // arvutage profiilimassiivi suurus

Profiili seadistamiseks helistage setProfile (SpeedProfileStruct* profileArray, size_t arrayLen) nt. stepper.setProfile (profiil, PROFILE_LEN);

Kui profiil on seadistatud, helistage startProfile (), et käivitada see praegusest mootori kiirusest (tavaliselt alustate seiskamisest). Profiili lõpus jätkab mootor töötamist viimasel sihtkiirusel. IsProfileRunning () meetodile saab helistada, et näha, kas profiil ikka töötab. Kui soovite profiili varakult peatada, võite helistada stopProfile (), mis loobub profiilist ja peatab mootori.

Samm 4: SpeedStepperSetup näite käivitamine ilma mootorita

Näidisvisand on loodud teie samm -mootorite jaoks. See pakub menüüpõhist liidest, mis võimaldab teil liikuda mootori algasendisse, kui see pole juba olemas, ja seejärel valikuliselt lähtestada pluss- ja miinuspiirid ning seejärel käivitada mootor selles vahemikus. Menüü „Run“võimaldab teil kiirust suurendada ja vähendada, külmutada praegusel kiirusel, peatuda ja ka koju naasta.

See visand illustreerib mitmeid tarkvara funktsioone, mis hoiavad silmust () tundlikuna, nii et saate stepperi juhtimiseks lisada oma andurisisendeid. Kiiruse reguleerimist segavate viivituste vältimiseks on vaja vaeva näha. (Vt viivitused on kurjad)

Installige ülalpool SpeedStepperPloti käitamiseks kasutatavad teegid ja seejärel installige ka teek pfodParser. Teek pfodParser varustab klassidega NonBlockingInput ja pfodBufferedStream, mida kasutatakse kasutaja sisendi ja menüüväljundi haldamiseks, blokeerides silmuse () töötamise.

Avage näited → SpeedStepper → näide speedSpeedSetup. See visand on konfigureeritud töötama Serialiga, nt. UNO ja Mega jne. SparkFun Redboard Turboga sõitmiseks vt allpool.

Selle näite käivitamiseks pole vaja juhtplaati ega samm -mootorit. Need näited kasutavad väljunditena D6 ja D7. Saate muuta väljundpoldid mis tahes digitaalseks väljundiks, muutes visandi ülaosas asuvaid sätteid STEP_PIN ja DIR_PIN. Laadige eskiis tahvlile ja avage menüü SETUP (Tööriistad) → Serial Monitor (Sarjamonitor) aadressil 115200.

SETUP pos: 0 sp: 0.00 +Lim: 500000 -Lim: -500 LATENCY: stepper: 492uS loop: 0uS p -set Avaleht l -piiride määramine h -goHome r -run>

Kui visand jookseb, loetakse sammude praegune asend koduasendiks (0). Kui teil on vaja stepper oma õigesse "kodu" asendisse paigutada, sisestage menüü SET HOME kuvamiseks käsk p

SET HOME pos: 0 sp: 0.00 + Lim: 1073741808 -Lim: -1073741808 LATENCY: stepper: 752uS loop: 3852uS x -setHome here and exit + -Edasi - -Reverse s -swap Forward/Reverse -hardStop >

Nagu näete, on visandil kodeeritud piirid eemaldatud, nii et saate samm-sammult kõikjale paigutada. Peate hoolitsema selle eest, et te ei ületaks seda füüsilistest piiridest, vastasel juhul võite midagi rikkuda.

Kasutage sammu + cmd, et alustada sammude edasiliikumist. Kui leiate, et see liigub vales suunas, sisestage käsu mittekäsk või lihtsalt tühi rida, et see peatada ja seejärel kasutage käsku, et vahetada suund edasi. Peaksite eskiisi värskendama, et lisada seadistusse üleskutse invertDirectionLogic (), et see järgmiseks käivituseks parandada.

Kasutage + / - cmds, et viia samm -samm õigesse nullasendisse. Mootor käivitub aeglaselt ja suurendab seejärel kiirust, peatamiseks kasutage tühja rida. Selle ja piiride menüü maksimaalse kiiruse määrab MAX_SETUP_SPEED, mis asub setupMenus.cpp ülaosas.

Kui mootor on oma koduasendisse seatud, kasutage x cmd, et seadistada praeguseks asendiks 0 ja naasta menüüsse SETUP.

Kui teil on vaja piiranguid määrata, tavaliselt ainult algseadistusel, kasutage menüüd SET LIMITS sisenemiseks l cmd

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

Kasutage + cmd, et plusspiirini edasi liikuda, ja seejärel kasutage seda l cmd, et see plusspiiriks seada. Seejärel saab käsku h kasutada 0 -ks naasmiseks ja - cmd liikumiseks, kui mootor on miinuspiiril. Jällegi kasutage miinuspiiri määramiseks l cmd. Pange tähele pluss- ja miinuspiiride asukohti ning värskendage nende väärtustega setup () meetodi setPlusLimit ja setMinusLimit avaldusi.

Kui piirangud on seatud, kasutage x cmd, et naasta menüüsse SETUP ja seejärel saate kasutada r cmd menüü RUN avamiseks

RUN MENU pos: 0 sp: 3.31 + Lim: 500000 -Lim: -500 LATENCY: stepper: 944uS loop: 5796uS + -Speed up - -Speed down h -goHome. -hardStop-külmutamine Kiirus> +pos: 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 loop: 5664uS pos: 120 sp: 49.09 +Lim: 500000 -Lim: -500 LATENCY: stepper: 792uS loop: 5664uS pos: 238 sp: 69.06 +Lim: 500000 -Lim: -500 LATENCY: stepper: 792uS loop: 5664uS

+ Cmd hakkab kiirendama edasisuunas ning prindib välja positsiooni ja kiiruse iga 2 sekundi tagant. Kui mootor saavutab soovitud kiiruse, saate kiirenduse peatada mis tahes muu klahviga (või tühja sisendiga). Kiirust saate vähendada, peatamiseks - cmd alla. Kui see peatatakse, kiirendab - cmd tagurpidi.

See RUN menüü võimaldab teie projekti käsitsi juhtida. Automaatjuhtimiseks peate lisama mõned muud andurid.

Samm: latentsus

Sammumootori juhtimine sõltub tarkvarast, mis käsib igal sammul. Seadistatud kiiruse säilitamiseks peab eskiis kutsuma meetodit stepper.run () piisavalt sageli, et käivitada järgmine samm praeguse kiiruse jaoks õigel ajal. Andurite kaudu juhtimiseks peate suutma kiiresti uusi mõõtmisi töödelda. Asukoha/kiiruse väljatrükk sisaldab kahte LATENCY mõõtmist, et saaksite kontrollida, kas visand on piisavalt kiire.

Stepper latentsus (pfodBufferedStream)

Stepper latentsus mõõdab maksimaalset viivitust stepper.run () meetodi järjestikuste kõnede vahel. Sammumootori käivitamiseks 1000 sammu sekundis peab samm -latentsus olema väiksem kui 1000uS (1mS). Selle visandi esimese versiooni latentsusaeg oli mitu millisekundit. Selle ületamiseks kutsutakse üles meetodile runStepper () (mis kutsub stepper.run ()), kui see lisatakse koodi kaudu. See ei lahendanud probleemi täielikult, sest menüü ja väljundprindi avaldused blokeerisid visandi, kui väike Serial Tx puhver oli täis. Selle blokeerimise vältimiseks kasutati teegist pfodBufferedStream 360 -baidist väljundprindipuhvrit, kuhu prindiavaldused saaksid kiiresti kirjutada. Seejärel vabastab pfodBufferedStream antud juhul baidid edastuskiirusega 115200. pfodBufferedStream peab valima kas blokeerimise, kui puhver on täis, või lihtsalt ülevoolu märgid maha jätta. Siin on määratud puhvri täitumisel kõik lisatähised maha jätma, et visand ei oleks blokeeritud, oodates, kuni Serial saadab märgid.

Silmuse latentsus (NonBlockingInput)

Silmuse latentsus mõõdab maksimaalset viivitust järjestikuste silmuste () meetodi kõnede vahel. See määrab, kui kiiresti saate töödelda uusi andurite mõõtmisi ja reguleerida mootori seadistatud kiirust. Kui kiiresti see peab olema, sõltub sellest, mida proovite kontrollida.

Prindiavaldustest tingitud viivitused kõrvaldati ülaltoodud pfodBufferedStream abil, kuid kasutaja sisendi töötlemiseks peate võtma sisendi kõige esimese märgi ja ülejäänud rida ignoreerima. PfodPareri teegis olevat NonBlockingInput klassi kasutatakse nullist erineva sümboli tagastamiseks, kui see on sisestatud, kasutades käsku readInput () ning järgmiste märkide kustutamiseks ja ärajätmiseks, kasutades klahvi clearInput (), kuni 10 mS jaoks pole ühtegi märki saadud ilma silmust blokeerimata ()

Loomulikult suurendab silmuse latentsusaega lisakood, mille lisate andurite lugemiseks ja uue seadistatud kiiruse arvutamiseks. Paljud andmekogud kasutavad mõõtmise alustamise ja tulemuse toomise vahel viivitust (..). Peate need teegid uuesti kirjutama, et kasutada selle asemel millisDelay, et mõõte pärast sobivat mitteblokeerivat viivitust üles võtta.

6. samm: käivitage SpeedStepperSetup koos samm -mootori ja SparkFun Redboard Turboga

Jooksmine SpeedStepperSetup koos samm -mootori ja SparkFun Redboard Turboga
Jooksmine SpeedStepperSetup koos samm -mootori ja SparkFun Redboard Turboga
Jooksmine SpeedStepperSetup koos samm -mootori ja SparkFun Redboard Turboga
Jooksmine SpeedStepperSetup koos samm -mootori ja SparkFun Redboard Turboga

SpeedStepperSetupi eskiisi tegelikuks käivitamiseks vajate samm -mootorit, draiverit ja toiteallikat ning selles näites SparkFun Redboard Turbo.

Ülaltoodud ühendusskeem (pdf -versioon) näitab ühendusi. Muutke SpeedStepperSetupi visandis SERIALi definitsiooniks #define SERIAL Serial1

Sammumootor, toiteallikas, juht ja kaitse

Astmelisi mootoreid on palju tüüpe ja suurusi. Siin kasutatakse testimiseks kahe mähisega 12V 350mA samm -mootorit. Selle stepperi toiteks vajate toiteallikat 12 V või rohkem ja üle 350 mA.

See raamatukogu pakub ainult suunda ja sammu väljundit, nii et teil on vaja samm -mootoriga liideseks draiverit. Easy Driver ja Big Easy Driver juhivad mootori mähiste voolu, nii et saate kõrgema pingega toiteallikat ohutult kasutada, näiteks kasutades 3,3 V mootori jaoks 6 V toiteallikat. Easy Driver saab toita vahemikus 150 mA/mähis kuni 700 mA/mähis. Suuremate voolude korral võib Big Easy Driver toita kuni 2A mähise kohta. Lugege KKK -sid Easy Drive'i lehe allosas.

Need näited kasutavad sammude ja suundade väljunditena D6 ja D7. Saate muuta väljundpoldid mis tahes digitaalseks väljundiks, muutes visandi ülaosas asuvaid STEP_PIN ja DIR_PIN seadeid.

Sparkfun Redboard Turbo programmeerimine

Redboard Turbo programmeerimine on problemaatiline. Kui see ei õnnestu programmeerida, vajutage esmalt üks kord lähtestamisnuppu ja valige Arduino tööriistade menüüs uuesti COM -port ning proovige uuesti. Kui see ei aita, vajutage topeltnuppu ja proovige uuesti.

Easy draiveri ühendamine

Kahel mähisega samm -mootoril on 4 juhtmest. Kasutage multimeetrit, et leida paarid, mis ühenduvad iga mähisega, ja seejärel ühendage üks mähis Easy Driver A klemmidega ja teine mähis B -klemmiga. Pole tähtis, mis suunas te neid ühendate, sest saate seadistusmenüüs kasutada s cmd, et liikumissuunda vahetada.

Mootori toiteallikas on juhtmega ühendatud M+ ja GNDSeadistage 3/5V lingiga plaadi loogikatase. Lühendage link kokku 3,3 V mikroprotsessori väljundite jaoks, näiteks SparkFun Redboard Turbo (kui jätate selle avatuks, sobib see 5 V digitaalsignaalidele, nt UNO, Mega) Ühendage GND, STEP, DIR kontaktid mikroprotsessoriga GND ja samm ja dir väljundtihvtid. Mootori juhtimiseks pole muid ühendusi vaja.

USB -TTL jadakaabel

Kui liigutate SpeedStepperSetupi eskiisi Uno/Mega -lt Redboard Turbole, võite naiivselt asendada #define SERIAL Seriali #define SERIAL SerialUSB -ga, et see sobiks Redboard Turbo USB -jadaühendusega, kuid leiate, et sellest tulenev samm -latentsusaeg on umbes 10 mS. See on UNO puhul 10 korda aeglasem. See on tingitud sellest, kuidas Redboardi protsessor USB -ühendust käsitleb. Selle ületamiseks ühendage USB -liides TTL -jadakaabliga D0/D1 ja määrake#define SERIAL Serial1, et kasutada samm -mootori juhtimiseks riistvara jadaühendust. Serial1 kasutamine annab LATENCY: stepper: 345uS loop: 2016uS mis on 3 korda kiirem kui UNO stepper ja loop latentsus

Terminali programm

Arduino jadamonitori on samm -mootori juhtimiseks veidi raskem kasutada, kuna peate cmd -reale sisestama sümboli ja seejärel selle saatmiseks sisestusklahvi. Kiirem reageerimisvõime on avada terminaliaken, TeraTerm PC (või CoolTerm Mac), mis on ühendatud USB -TTL -kaabli COM -pordiga. Seejärel saadab see aknas cmd -klahvi vajutamine selle kohe. Kui vajutate sisestusklahvi, saatke tühi rida.

Mootori kiiruse vahemiku seadistamine

Nagu ülalpool juhtmega ühendatud, on Easy Drive seadistatud 1/8 astmeks, nii et 1000 sammu sekundis pöörab mootorit kiirusel 1000/8/200 sammu/pööret = 0,625 pööret sekundis või maksimaalselt 37,5 p/min. Muutes sisendid MS1/MS2, saate lülituda 1/8, ¼, ½ ja täisastmete vahel. Täielike sammude jaoks ühendage nii MS1 kui ka MS2 GND -ga. See võimaldab kiirust kuni 300 pööret minutis. Sobivate MS1/MS2 seadete valimine võimaldab teil reguleerida mootori ja veetava osa vahelist paigaldatud ülekandearvu.

Riistvara kaitse

Kuigi SpeedStepperi teek võimaldab teil määrata mootori liikumise positsioonipiiranguid, tehakse positsiooni märkimine tarkvara väljundite loendamise teel. Kui mootor seiskub, st pöördemoment ei ole mootori käivitamiseks piisav, on tarkvara asend mootori asendiga sünkroonis. Siis, kui kasutate käsku „goHome”, ületab mootor koduasendi. Riistvara kahjustamise vältimiseks paigaldage mootori toiteallika katkestamiseks piirajad

Mootori voolupiirangu seadmine

Kõigepealt seadke see potentsiomeetri madalaimale väärtusele. st pinge TP1 juures on minimaalne. Potentsiomeeter on õrn, nii et ärge suruge potentsiomeetrit mehaanilistest peatustest mööda. Seadke aeglase ühtlase kiirusega mootor aeglaseks, seejärel keerake potentsiomeetrit aeglaselt, kuni mootor sammude vahel vahele ei tõuse ega tõmble.

Järeldus

See projekt näitab, kuidas SpeedStepperi raamatukogu praktilises rakenduses kasutada. Kuigi AccelStepperi raamatukogu pakub head positsioonikontrolli, oli Europas bioloogiliste proovide kogumiseks vajaliku jää sulamissondi prototüübi jaoks vaja kiiruse reguleerimist, nii et AccelStepperi raamatukogu kirjutati ümber, et tagada kiiruse reguleerimine lõpppiirangute ja goHome funktsiooniga.

Soovitan: