Satura rādītājs:

Pakāpiena ātruma kontroles izvēlne, kas darbojas Arduino: 6 soļi
Pakāpiena ātruma kontroles izvēlne, kas darbojas Arduino: 6 soļi

Video: Pakāpiena ātruma kontroles izvēlne, kas darbojas Arduino: 6 soļi

Video: Pakāpiena ātruma kontroles izvēlne, kas darbojas Arduino: 6 soļi
Video: POE комплект видеонаблюдения РАБОТА ПО ОДНОМУ КАБЕЛЮ!!! 2024, Jūlijs
Anonim
Pakāpiena ātruma kontroles izvēlne, kas paredzēta Arduino
Pakāpiena ātruma kontroles izvēlne, kas paredzēta Arduino
Pakāpiena ātruma kontroles izvēlne, kas paredzēta Arduino
Pakāpiena ātruma kontroles izvēlne, kas paredzēta Arduino
Pakāpiena ātruma kontroles izvēlne, kas paredzēta Arduino
Pakāpiena ātruma kontroles izvēlne, kas paredzēta Arduino

Šī SpeedStepper bibliotēka ir AccelStepper bibliotēkas pārrakstīšana, lai varētu kontrolēt pakāpju motora ātrumu. SpeedStepper bibliotēka ļauj mainīt iestatīto motora apgriezienu skaitu un pēc tam paātrināt/palēnināt līdz jaunajam iestatītajam ātrumam, izmantojot to pašu algoritmu kā AccelStepper bibliotēka. SpeedStepper bibliotēka arī ļauj iestatīt plus un mīnus robežu un “mājas” pozīciju. Ir komanda goHome, lai atgrieztos sākuma stāvoklī.

Ierobežojumi: SpeedStepper bibliotēka virza tikai virzienu un soļu izvadi, tāpēc tā ir jāpieslēdz motora draiverim, piemēram, Easy Driver, lai faktiski vadītu pakāpju motoru. AccelStepper bibliotēka piedāvā vairāk braukšanas iespēju, kuras vajadzības gadījumā var nokopēt šajā bibliotēkā.

Tiek piedāvāti trīs skices piemēri, no kuriem katrs var darboties bez motora vai motora vadītāja. speedStepperPlot skice izdod ātruma komandu un goHome komandas paraugus un ģenerē iegūtā ātruma un pozīcijas diagrammu. SpeedStepperSetup skice nodrošina izvēlnes iestatījumu, lai iestatītu motora mājas un ierobežojumus un pēc tam iedarbinātu motoru un pielāgotu ātrumu uz augšu un uz leju un goHome, lai pabeigtu. SpeedStepperProfile skice parāda ātruma profila iestatīšanas un izpildes piemēru.

Lai gan AccelStepper bibliotēka nodrošina labu pozīcijas kontroli, ātruma kontrole bija nepieciešama ledus kušanas zondes prototipam, lai savāktu bioloģiskos paraugus Eiropā. Šeit ir video no iepriekšējās prototipa versijas, kurā motora vietā tika izmantots svars. 1.1. Redakcija pievienoja ātruma profilus pēc tam, kad lietotājs pieprasīja līdzekļus sūkņa ātruma profila kontrolei.

Šī bibliotēka darbojas ar Arduino Uno un Mega2560, bet prototipam tika izmantots lielāks atmiņas / ātrāks procesors SparkFun Redboard Turbo.

Šī pamācība ir pieejama arī tiešsaistē Arduino Stepper ātruma kontroles bibliotēkā

Piegādes

Lai izpildītu parauga skices, ir nepieciešami tikai Arduino UNO vai Mega2560 un programmatūras bibliotēkas

Bibliotēkas testēšanai uz stenda tika izmantots SparkFun Redboard Turbo ar Easy Driver, 200 soļu/apgriezienu, 12 V 350 mA stepper motoru un 12 DC barošanas avotu 2A vai lielāku, piem. https://www.sparkfun.com/products/14934. USB A līdz mikro kabelis USB uz TTL sērijas kabelis Arduino IDE V1.8.9 un dators, kurā to palaist. SpeedStepper librarypfodParser bibliotēka nonBlockingInput un pfodBufferedStream klasēm millisDelay bibliotēka nebloķējošiem kavējumiem

1. darbība: bibliotēkas funkcijas

SpeedStepper bibliotēkā darbojas pakāpju motors, ko ierobežo bibliotēkas noteiktās robežas. Dažādas pieejamās bibliotēkas metodes skatiet failā SpeedStepper.h. Šeit ir izklāstīta to loģika.

Stepera stāvoklis tiek izsekots, skaitot soļu (impulsu) skaitu. Bibliotēka ierobežo pozīciju starp pozīcijām setPlusLimit (int32_t) un setMinusLimit (int32_t). Plus robeža vienmēr ir> = 0 un mīnus robeža vienmēr ir <= 0. Iedarbināšanas laikā motora stāvoklis ir 0 (mājās) un ierobežojumi ir iestatīti uz ļoti lieliem +/- skaitļiem (aptuveni +/- 1e9 soļi). setAcceleration (pludiņš) nosaka, cik ātri motors mainīs ātrumu uz augšu vai uz leju. Kad motors tuvojas plus vai mīnus robežai, tas palēninās ar šādu ātrumu, līdz apstājas pie robežas. Palaišanas laikā paātrinājums ir iestatīts uz 1,0 soļiem/sek/sek. Paātrinājuma iestatījums vienmēr ir +ve skaitlis. SetSpeed (pludiņa) iestatījuma zīme nosaka motora kustības virzienu.

setSpeed (pludiņš) nosaka ātrumu, lai paātrinātu / palēninātu motoru no pašreizējā ātruma. Ātrumu, ko var iestatīt, izmantojot setSpeed (pludiņš), absolūtajā vērtībā ierobežo iestatījumi, setMaxSpeed (pludiņš), noklusējuma 1000 soļi/sek un setMinSpeed (pludiņš), noklusējuma 0,003 soļi/sek. Šīs noklusējuma vērtības ir arī absolūti cietā ātruma ierobežojumi, ko bibliotēka pieņems setMaxSpeed () un setMinSpeed (). Ja vēlaties iestatīt maksimālo ātrumu> 1000 soļi sekundē, jums būs jārediģē SpeedStepper.cpp faila pirmā rindiņa, lai mainītu maksimālo ātrumu (1000) uz vēlamo maksimālo ātrumu. Praksē maksimālo ātrumu ierobežo arī laiks starp zvaniem uz bibliotēkas palaist () metodi. 1000 soļu sekundē palaišanas () metode jāizsauc vismaz ik pēc 1 ms. Skatiet zemāk esošo latentuma sadaļu.

Mēģinot iestatīt ātrumu, kas mazāks par minimālo ātrumu, motors apstāsies. Katram no šiem iestatītājiem ir atbilstošs getteris, skatiet failu SpeedStepper.h. Ātrumam getSetSpeed () atgriež ātrumu, ko iestatījāt, izmantojot setSpeed (), savukārt getSpeed () atgriež pašreizējo motora ātrumu, kas mainās, paātrinot/palēninot iestatīto ātrumu. Ja motors neiet virzienā, kuru domājat par +ve, varat izsaukt invertDirectionLogic (), lai mainītu motora kustības virzienu uz +ve ātrumu.

getCurrentPosition () atgriež pašreizējo motora stāvokli, salīdzinot ar 'home' (0). Jūs varat ignorēt pašreizējo motora pozīciju setCurrentPosition (int32_t). Jaunā pozīcija nedrīkst pārsniegt noteiktās plus/mīnus robežas.

Sākotnēji motors tiek apturēts pozīcijā 0. Zvanot setSpeed (50.0), tas sāks paātrināt +ve virzienā līdz maksimālajam ātrumam 50 soļi/min. Zvanot uz hardStop (), motors nekavējoties apstāsies vietā, kur tas atrodas. No otras puses, izsaucot stop () metodi, ātrums tiks iestatīts uz nulli un palēninās motora apstāšanās. Izsaucot stopAndSetHome (), motors nekavējoties apstāsies un iestatīs tā pozīciju uz 0. Pluss/mīnus robežu vērtības netiek mainītas, bet tagad tiek norādītas uz šo jauno 0 (mājas) pozīciju. Zvanot goHome () atgriezīs soli šajā 0 (mājas) pozīcijā un apstāsies. Zvanīšana setSpeed () atcels došanos mājās.

SpeedStepper bibliotēka nodrošina arī ātruma profila kontroli, izmantojot metodes setProfile (SpeedProfileStruct* profileArray, size_t arrayLen), startProfile (), stopProfile (), lai pārtrauktu darbojošos profilu, un isProfileRunning (). Skatiet speedStepperProfile skices piemēru.

2. darbība. SpeedStepperPlot piemēra palaišana bez motora

SpeedStepperPlot piemēra palaišana bez motora
SpeedStepperPlot piemēra palaišana bez motora

Instalējiet Arduino IDE V1.8.9. Lejupielādējiet un instalējiet SpeedStepper bibliotēku. Saglabājiet SpeedStepper.zip un pēc tam izmantojiet Arduino IDE izvēlnes vienumu Skice → Iekļaut bibliotēku → Pievienot. ZIP bibliotēku, lai importētu bibliotēku. Lejupielādējiet un instalējiet arī millisDelay bibliotēku

Atveriet Piemēri → SpeedStepper → speedStepperPlot parauga skice (ja nepieciešams, restartējiet IDE). Šī skice ir konfigurēta darbam ar Serial, piem. UNO un Mega utt. Skriešanai ar SparkFun Redboard Turbo skatīt zemāk.

Lai izmantotu šo piemēru, nav nepieciešams vadītāja panelis vai pakāpju motors. Šajos piemēros kā izejas tiek izmantoti D6 un D7. Jūs varat mainīt izejas tapas uz jebkuru digitālo izeju, mainot STEP_PIN un DIR_PIN iestatījumus skices augšdaļā.

Augšupielādējiet skici un pēc tam atveriet Rīki → Sērijas ploteris ar 115200 bodu, lai parādītu ātruma (SARKANAIS) un pozīcijas (ZILAIS) grafiku. Plus robeža ir iestatīta uz 360, kas izraisa ātruma samazināšanos līdz nullei no aptuveni 100 punktiem uz x ass. Mīnus robeža ir -510. Pozīcija apstājas pie ~ -390, jo ātrums ir pieprasīts līdz 0,0. Pie x ass 380 punktā tiek izdots goHome cmd, kas atgriež soli nulles pozīcijā.

Šī speedStepperPlot skice izmanto milisDelays, lai pārslēgtos starp dažādiem ātrumiem un paātrinājumiem. Daudzos gadījumos SpeedStepperProfile izmantošana, tāpat kā nākamajā piemērā, ir vienkāršāka.

3. darbība: SpeedStepperProfile piemēra palaišana bez motora

SpeedStepperProfile piemēra palaišana bez motora
SpeedStepperProfile piemēra palaišana bez motora

Atveriet piemēru → SpeedStepper → speedStepperPlot parauga skici, šī skice rada iepriekš minēto diagrammu, izmantojot Arduino sērijas ploteri, un ir piemērs noteikta ātruma profila palaišanai, piemēram, sūkņa darbības laikā.

Stepper ātruma profili sastāv no SpeedProfileStruct masīva, kas ir definēts failā SpeedStepper.h.

structure SpeedProfileStruct {

peldēšanas ātrums; // mērķa ātrums šī soļa beigās neparakstīts garš deltaTms; // laiks, lai paātrinātu no pašreizējā ātruma (šī soļa sākumā) līdz mērķa ātrumam};

Definējiet SpeedProfileStruct masīvu, kas satur mērķa ātrumu katram solim un laiku, deltaTms, mS, lai sasniegtu šo mērķa ātrumu no iepriekšējā mērķa ātruma. Ja deltaTms ir nulle vai ļoti mazs, tad ātrums uzreiz lēks uz jauno mērķa ātrumu. Pretējā gadījumā tiks aprēķināts nepieciešamais paātrinājums setAcceleration (), kam sekos zvans uz setSpeed () jaunajam mērķa ātrumam. Visos gadījumos profilu ierobežos esošie plus un mīnus pozīcijas ierobežojumi un maksimālā/min ātruma iestatījumi. Ja vēlaties turēt ātrumu, vienkārši atkārtojiet iepriekšējo ātrumu ar laiku, kādu vēlaties. Tā kā jaunais mērķa ātrums ir tāds pats kā pašreizējais ātrums, aprēķinātais paātrinājums būs nulle, un ātrums nemainās.

Šis SpeedProfileStruct masīvs izveidoja iepriekš minēto diagrammu

const SpeedProfileStruct profils = {{0, 0}, // nekavējoties apstāties, ja vēl nav apturēts {0, 1000}, // turēt nulli 1 sekundi {-50, 0}, // pāriet uz -50 {-200, 2000}, // uzbrauktuve līdz -200 {-200, 6000}, // turiet pie -200 6 sekundes {-50, 2000}, // nobrauktuve līdz -50 {0, 0}, // tūlītēja apstāšanās {0, 1500}, // turiet nulli 1,5 sekundes {50, 0}, // pāriet uz 50 {200, 2000}, // uzbrauktuve līdz 200 {200, 6000}, // turiet 200 6 sekundes {50, 2000}, // uzbrauktuve līdz 50 {0, 0}, // // nekavējoties apstāties {0, 1000} // turēt nulli //, lai uzzīmētu izvadi}; const size_t PROFILE_LEN = sizeof (profils) / sizeof (SpeedProfileStruct); // aprēķināt profila masīva lielumu

Profilu nosaka, zvanot setProfile (SpeedProfileStruct* profileArray, size_t arrayLen), piem. stepper.setProfile (profils, PROFILE_LEN);

Kad profils ir iestatīts, zvaniet startProfile (), lai sāktu to darbināt no pašreizējā motora apgriezienu skaita (parasti jūs sāksit no apturēta). Profila beigās motors vienkārši turpinās darboties ar pēdējo mērķa ātrumu. Var izsaukt metodi isProfileRunning (), lai noskaidrotu, vai profils joprojām darbojas. Ja vēlaties profilu pārtraukt agri, varat zvanīt uz stopProfile (), kas pamet profilu un aptur motoru.

4. darbība. SpeedStepperSetup piemēra palaišana bez motora

Skices piemērs ir izstrādāts, lai izveidotu pamatu jūsu soļu motora pielietojumam. Tas nodrošina ar izvēlni vadītu saskarni, kas ļauj pāriet uz motoru sākuma stāvoklī, ja tas vēl nav tur, un pēc izvēles atiestatīt plus un mīnus robežas un pēc tam iedarbināt motoru šajā diapazonā. Izvēlne "palaist" ļauj palielināt un samazināt ātrumu, iesaldēt pašreizējā ātrumā, apstāties un arī atgriezties mājās.

Šajā skicē ilustrētas vairākas programmatūras funkcijas, kas nodrošina cilpas () atsaucību, lai jūs varētu pievienot savas sensora ievades, lai kontrolētu soli. Lai izvairītos no kavēšanās, kas varētu traucēt ātruma kontroli, ir jācenšas izvairīties. (Skat. Kavēšanās ir ļauna)

Instalējiet iepriekš minētās bibliotēkas, kas tiek izmantotas SpeedStepperPlot, un pēc tam instalējiet arī bibliotēku pfodParser. Bibliotēka pfodParser piegādā klases NonBlockingInput un pfodBufferedStream, kas tiek izmantotas, lai apstrādātu lietotāja ievadi un izvēlnes izvadi, bloķējot cilpas () darbību.

Atveriet piemēru → SpeedStepper → speedSpeedSetup piemēru. Šī skice ir konfigurēta darbam ar Serial, piem. UNO un Mega utt. Skriešanai ar SparkFun Redboard Turbo skatīt zemāk.

Lai izmantotu šo piemēru, nav nepieciešams vadītāja panelis vai pakāpju motors. Šajos piemēros kā izejas tiek izmantoti D6 un D7. Jūs varat mainīt izejas tapas uz jebkuru digitālo izeju, mainot STEP_PIN un DIR_PIN iestatījumus skices augšdaļā. Augšupielādējiet skici uz tāfeles un pēc tam atveriet Rīki → Sērijas monitors vietnē 115200, lai redzētu SETUP izvēlni.

IESTATĪJUMA poz.: 0 sp: 0.00 +Lim: 500000 -Lim: -500 LATENCY: stepper: 492uS loop: 0uS p -set Home l -set limits h -goHome r -run>

Kad skice darbojas, pakāpiena pašreizējā pozīcija tiek uzskatīta par “mājas” (0) pozīciju. Ja jums ir jāpārvieto stepper uz tā “mājas” stāvokli, ievadiet komandu p, lai parādītu izvēlni SET HOME

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

Kā redzat, skicē kodētie ierobežojumi ir noņemti, lai jūs varētu pārvietot stepperu jebkurā vietā. Jums jārūpējas, lai jūs nepārsniegtu fiziskās robežas, pretējā gadījumā varat kaut ko pārkāpt.

Izmantojiet + cmd, lai sāktu virzīt soli uz priekšu. Ja konstatējat, ka tas pārvietojas nepareizā virzienā, ievadiet komandu, kas nav komanda, vai vienkārši tukšu rindu, lai to apturētu, un pēc tam izmantojiet komandu, lai mainītu virzienu uz priekšu. Jums vajadzētu atjaunināt skici, lai iestatījumā iekļautu zvanu uz invertDirectionLogic (), lai to labotu nākamajam palaišanai.

Izmantojiet + / - cmds, lai novietotu soli pareizajā nulles pozīcijā. Motors ieslēdzas lēni un pēc tam palielina ātrumu, turpinot darbu, vienkārši izmantojiet un tukšu rindu, lai to apturētu. Maksimālais ātrums šim un ierobežojumu izvēlnei ir iestatīts ar MAX_SETUP_SPEED, kas atrodas setupMenus.cpp augšpusē.

Kad motors ir novietots mājas stāvoklī, izmantojiet x cmd, lai no jauna iestatītu pašreizējo pozīciju kā 0 un atgrieztos SETUP izvēlnē.

Ja jums ir jāiestata ierobežojumi, parasti tikai sākotnējā iestatījumā, izmantojiet l cmd, lai atvērtu izvēlni SET LIMITS

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>

Izmantojiet + cmd, lai pārsūtītu uz plus robežu, un pēc tam izmantojiet l cmd, lai to iestatītu kā plus robežu. Pēc tam komandu h var izmantot, lai atgrieztos pie 0, un - cmd, lai pārvietotos, ja dzinējs atrodas pozīcijā pie mīnus robežas. Vēlreiz izmantojiet l cmd, lai iestatītu mīnus robežu. Ievērojiet plus un mīnus robežu pozīcijas un atjauniniet setup () metodes setPlusLimit un setMinusLimit paziņojumus ar šīm vērtībām.

Kad ir noteikti ierobežojumi, izmantojiet x cmd, lai atgrieztos SETUP izvēlnē, un pēc tam varat izmantot r cmd, lai atvērtu izvēlni RUN

RUN MENU pos: 0 sp: 3,31 + Lim: 500000 -Lim: -500 LATENCY: stepper: 944uS loop: 5796uS + -Paātrināt - -Ātruma samazināšana h -goHome. -hardStop-iesaldēt Ātrums> +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 cilpa: 5664uS poz: 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 sāk paātrināties uz priekšu un ik pēc 2 sekundēm izdrukā pozīciju un ātrumu. Kad motors sasniedz vēlamo ātrumu, varat apturēt paātrinājumu ar jebkuru citu taustiņu (vai tukšu ievadi). Ātrumu var samazināt, izmantojot - cmd uz leju, lai apstātos. Apturot - cmd paātrinās atpakaļgaitā.

Šī RUN izvēlne nodrošina manuālu jūsu projekta vadību. Automātiskai vadībai jums būs jāpievieno daži citi sensori.

5. darbība: latentums

Stepper motora vadība ir atkarīga no programmatūras, kas pavada katru soli. Lai saglabātu iestatīto ātrumu, jūsu skicei ir pietiekami bieži jāizsauc metode stepper.run (), lai veiktu nākamo darbību īstajā laikā atbilstoši pašreizējam ātrumam. Lai kontrolētu, izmantojot sensorus, jums jāspēj nekavējoties apstrādāt jaunus mērījumus. Pozīcijas/ātruma izdruka ietver divus LATENCY mērījumus, lai jūs varētu pārbaudīt, vai jūsu skice ir pietiekami ātra.

Stepper latentums (pfodBufferedStream)

Stepper latentums mēra maksimālo kavēšanos starp secīgajiem stepper.run () metodes izsaukumiem. Lai pakāpiena motoru darbinātu ar 1000 soļiem sekundē, pakāpiena latentumam jābūt mazākam par 1000uS (1mS). Šīs skices pirmās versijas latentums bija daudzas milisekundes. Lai pārvarētu šos papildu zvanus uz metodi runStepper () (kas izsauc stepper.run ()), kur tie tiek pievienoti, izmantojot kodu. Tas pilnībā neatrisināja problēmu, jo izvēlnes un izvaddrukas paziņojumi bloķēja skici, kad mazais Serial Tx buferis bija pilns. Lai izvairītos no šīs bloķēšanas, pfodBufferedStream no pfodParser bibliotēkas tika izmantots, lai pievienotu 360 baitu izvades buferi, uz kuru drukātie paziņojumi varētu ātri rakstīt. Pēc tam pfodBufferedStream atbrīvo baitus ar šajā gadījumā noteikto 115200 bodu ātrumu. pfodBufferedStream ir jāizvēlas vai nu bloķēt, kad buferis ir pilns, vai vienkārši atmest pārpildes rakstzīmes. Šeit ir iestatīts atmest visas papildu rakstzīmes, kad buferis ir pilns, lai skice netiktu bloķēta, gaidot, kad Serial nosūtīs rakstzīmes.

Cilpas aizkavēšanās (NonBlockingInput)

Cilpas latentums mēra maksimālo kavēšanos starp secīgajiem izsaukumiem uz cilpas () metodi. Tas nosaka, cik ātri jūs varat apstrādāt jaunus sensoru mērījumus un pielāgot motora iestatīto ātrumu. Cik ātri tam jābūt, ir atkarīgs no tā, ko jūs mēģināt kontrolēt.

Kavēšanās drukāto paziņojumu dēļ tika novērsta, izmantojot iepriekš minēto pfodBufferedStream, bet, lai apstrādātu lietotāja ievadīto informāciju, jums ir jāievada pirmā ievades zīme un jāignorē pārējā rindiņa. NonflockingInput klase pfodParer bibliotēkā tiek izmantota, lai atgrieztu rakstzīmi, kas nav nulle, ja ir ievadīts, izmantojot readInput (), un lai notīrītu un izmestu šādas rakstzīmes, izmantojot clearInput (), līdz 10 mS laikā netiek saņemtas rakstzīmes, nebloķējot cilpu ()

Protams, cikla latentumu palielinās papildu kods, ko pievienojat, lai nolasītu sensorus un aprēķinātu jauno iestatīto ātrumu. Daudzās sensoru bibliotēkās ir tikai kavēšanās (..) starp mērījuma sākšanu un rezultāta iegūšanu. Jums būs jāpārraksta šīs bibliotēkas, lai tā vietā izmantotu millisDelay, lai iegūtu mērījumu pēc piemērotas nebloķējošas aizkaves.

6. darbība: SpeedStepperSetup palaišana ar pakāpju motoru un SparkFun Redboard Turbo

SpeedStepperSetup darbība ar pakāpju motoru un SparkFun Redboard Turbo
SpeedStepperSetup darbība ar pakāpju motoru un SparkFun Redboard Turbo
SpeedStepperSetup darbība ar pakāpju motoru un SparkFun Redboard Turbo
SpeedStepperSetup darbība ar pakāpju motoru un SparkFun Redboard Turbo

Lai reāli izpildītu SpeedStepperSetup skici, jums būs nepieciešams pakāpju motors, draiveris un barošanas avots un šajā piemērā SparkFun Redboard Turbo.

Elektroinstalācijas shēma iepriekš (pdf versija) parāda savienojumus. SpeedStepperSetup skicē mainiet SERIAL definīciju uz #define SERIAL Serial1

Stepper motors, barošanas avots, vadītājs un aizsardzība

Ir daudz soļu motoru veidu un izmēru. Šeit pārbaudei tiek izmantots divu spoļu 12V 350mA pakāpju motors. Lai darbinātu šo soli, jums ir nepieciešams 12 V vai lielāks barošanas avots un lielāks par 350 mA.

Šī bibliotēka nodrošina tikai virzienu un soļu izvadi, tāpēc jums ir nepieciešams draiveris, lai saskarne ar pakāpju motoru. Easy Driver un Big Easy Driver kontrolē strāvu motora spolēs, lai jūs varētu droši izmantot augstāka sprieguma barošanas avotu, piemēram, izmantojot 6 V barošanu 3,3 V motoram. Easy Driver var piegādāt no 150 mA/spole līdz 700 mA/spole. Lielākām strāvām Big Easy Driver var piegādāt līdz 2A uz vienu spoli. Izlasiet FAQ lapas Easy Drive lapas apakšdaļā.

Šajos piemēros kā solis un virziens tiek izmantoti D6 un D7 izvadi. Jūs varat mainīt izejas tapas uz jebkuru digitālo izeju, mainot STEP_PIN un DIR_PIN iestatījumus skices augšdaļā.

Sparkfun Redboard Turbo programmēšana

Redboard Turbo programmēšana ir problemātiska. Ja tas neizdodas programmēt, vispirms vienu reizi nospiediet atiestatīšanas pogu un vēlreiz atlasiet COM portu izvēlnē Arduino Tools un mēģiniet vēlreiz. Ja tas nedarbojas, divreiz nospiediet atiestatīšanas pogu un mēģiniet vēlreiz.

Easy draivera savienošana

Diviem spoles pakāpju motoriem ir 4 vadi. Izmantojiet multimetru, lai atrastu pārus, kas savienojas ar katru spoli, un pēc tam vienu spoli pieslēdziet Easy Driver A spailēm, bet otru - spailei B. Nav svarīgi, kādā virzienā tos savienot, jo varat izmantot iestatīšanas izvēlnes s cmd, lai mainītu kustības virzienu.

Motora barošanas avots ir savienots ar M+ un GNDS Iestatiet plates loģisko līmeni ar 3/5V saiti. Saīsiniet saiti kopā 3,3 V mikroprocesora izejām, piemēram, SparkFun Redboard Turbo (ja atstājat to atvērtu, tas ir piemērots 5 V digitālajiem signāliem, piemēram, UNO, Mega) Pievienojiet GND, STEP, DIR tapas mikroprocesoram GND un soli un dir izejas tapas. Lai vadītu motoru, nav nepieciešami citi savienojumi.

USB -TTL sērijas kabelis

Pārvietojot SpeedStepperSetup skici no Uno/Mega uz Redboard Turbo, jūs varētu naivi vienkārši nomainīt #define SERIAL Serial ar #define SERIAL SerialUSB, lai tas atbilstu Redboard Turbo USB seriālajam savienojumam, tomēr jūs secinātu, ka iegūtais stepper latentums ir aptuveni 10mS. Tas ir 10 reizes lēnāk nekā ANO. Tas ir saistīts ar to, kā Redboard CPU apstrādā USB savienojumu. Lai to paveiktu, pievienojiet USB TTL seriālajam kabelim pie D0/D1 un iestatiet#define SERIAL Serial1, lai izmantotu aparatūras sērijas savienojumu, lai kontrolētu pakāpju motoru. Serial1 izmantošana nodrošina LATENCY: stepper: 345uS loop: 2016uS, kas ir 3 reizes ātrāks nekā UNO stepper un cilpas latentumam

Termināla programma

Arduino sērijas monitoru ir nedaudz grūtāk izmantot, lai kontrolētu pakāpju motoru, jo jums ir jāievada simbols cmd rindā un pēc tam nospiediet taustiņu Enter, lai to nosūtītu. Ātrāks un atsaucīgāks līdzeklis ir atvērt termināļa logu - TeraTerm personālajam datoram (vai CoolTerm Mac), kas savienots ar USB - TTL kabeļa COM portu. Tad šajā logā, nospiežot cmd taustiņu, tas tiek nekavējoties nosūtīts. Nospiežot taustiņu Enter, vienkārši nosūtiet tukšu rindu.

Motora apgriezienu diapazona iestatīšana

Kā norādīts iepriekš, Easy Drive ir konfigurēts 1/8 soļiem, tāpēc 1000 soļi sekundē pagriezīs motoru ar ātrumu 1000/8/200 solis/apgrieziens = 0,625 apgriezieni sekundē vai maksimums 37,5 apgr./min. Mainot ievadi uz MS1/MS2, varat pārslēgties starp 1/8, ¼, ½ un pilnām darbībām. Lai veiktu visas darbības, savienojiet gan MS1, gan MS2 ar GND. Tas ļaus sasniegt ātrumu līdz 300 apgr./min. Izvēloties atbilstošos MS1/MS2 iestatījumus, varat pielāgot uzstādīto pārnesumu attiecību starp motoru un piedziņas daļu.

Aparatūras aizsardzība

Lai gan SpeedStepper bibliotēka ļauj iestatīt motora kustības pozīcijas ierobežojumus, pozīcijas fiksēšana tiek veikta, skaitot programmatūras izvadītās darbības. Ja motors apstājas, t.i., griezes moments nav pietiekams, lai darbinātu motoru nākamajā solī, tad programmatūras pozīcija nebūs sinhronizēta ar motora stāvokli. Tad, kad izmantojat komandu “goHome”, motors pārsniegs sākuma stāvokli. Lai izvairītos no aparatūras bojājumiem, jums vajadzētu uzstādīt ierobežojošos slēdžus pie cietajām robežām, lai atvienotu motora barošanu

Motora strāvas ierobežojuma iestatīšana

Vispirms iestatiet to uz potenciometra zemāko iestatījumu. i., spriegums pie TP1 ir minimāls. Potenciometrs ir smalks, tāpēc nepiespiediet potenciometru garām mehāniskajām pieturām. Iestatiet motoru lēnā, vienmērīgā ātrumā lēnu, pēc tam lēnām pagrieziet potenciometru, līdz motors starp soļiem neizlaiž vai raustās.

Secinājums

Šis projekts parāda, kā izmantot SpeedStepper bibliotēku praktiskā lietojumā. Lai gan AccelStepper bibliotēka nodrošina labu pozīcijas kontroli, ātruma kontrole bija nepieciešama ledus kušanas zondes prototipam, lai savāktu bioloģiskos paraugus Eiropā, tāpēc AccelStepper bibliotēka tika pārrakstīta, lai nodrošinātu ātruma kontroli ar beigu ierobežojumiem un goHome funkciju.

Ieteicams: