
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Šī ir soļu motora 28BYJ-48 vadības shēma, kuru esmu izstrādājis, lai izmantotu pēdējā gada disertācijas projekta ietvaros. Es to iepriekš neesmu redzējis, tāpēc domāju augšupielādēt atklāto. Cerams, ka tas palīdzēs kādam citam!
Kods būtībā ļauj soļu motoram "kopēt" analogā kursorsviras leņķisko stāvokli, tas ir, ja jūs virzāt kursorsviru uz priekšu, motors norāda uz "ziemeļiem". pabīdiet kursorsviru uz rietumiem, motors griežas, lai norādītu tajā pašā virzienā.
Īstenošanai es pieprasīju, lai, atlaižot kursorsviru, t.i., tai nav leņķa stāvokļa, motors atgriežas "mājas" virzienā. Mājas virziens ir vērsts uz austrumiem, un motoram (vai nomai neatkarīgi no rādītāja / ierīces, ko esat pievienojis izejas vārpstai!) Arī jābūt vērstam šajā virzienā, kad tas ir ieslēgts.
Piegādes
Arduino Uno vai līdzīgi
maizes dēlis un džemperu vadu izvēle (no vīrieša uz vīrieti, no vīrieša uz sievieti)
5V barošanas avots
Analogais kursorsviras modulis (ideālā gadījumā ar īslaicīgu spiedpogas funkciju, kas atvieglo "mājas" stāvokļa atpūtu)
28BYJ-48 soļu motors un ULN2003 pakāpju vadītājs
Pildspalva, papīrs un blu-tac (vai jebkura cita rādītājierīce, ko piestiprināt pie motora!)
1. darbība: 1. darbība: iestatīšana
Pievienojiet pakāpju motoru pakāpiena vadītājam un pievienojiet tapas šādi:
IN1 - Arduino tapa 8
IN2 - Arduino tapa 9
IN3 - Arduino tapa 10
IN4 - Arduino tapa 11
Pievienojiet 5 voltu barošanas bloku barošanas sliedēm uz jūsu maizes dēļa un pievienojiet ULN2003 5 v ieejas barošanas sliedēm. savienojiet zemes sliedi ar Arduino zemi.
kursorsvirai pievienojiet šādi:
Slēdža tapa - Arduino tapa 2
X ass - Arduino A0 (analogs 0)
Y ass - Arduino A1
+5V - Arduino 5V izeja
GND - Arduino GND
Visbeidzot pievienojiet maizes dēļa zemi ar otru Arduino GND tapu
2. darbība: 2. darbība: izskaidrojiet kodu
Esmu iekļāvis pilnu Arduino kodu, lai jūs varētu lejupielādēt un izmantot. Bet es darīšu visu iespējamo, lai šeit izskaidrotu attiecīgās daļas.
Šī koda teorija ir tāda, ka kursorsviras aizņemtā telpa ir sadalīta grafikā, kura centrā ir 0, 0. tomēr kursorsviru ieejas atrodas (aptuveni) 512 centrā, tāpēc, lai to pārvarētu, divas funkcijas tiek izmantotas, lai no nulles nolasītu vērtību, kas nolasīta no X un Y ass. Atkarībā no izmantotā barošanas avota, iespējams, būs jāmaina funkciju ZeroX un ZeroY vērtības, lai atpūtas kursā kursorsvira sniegtu ticamu nolasījumu 0.
Nolasot X, Y vērtības, tās vispirms tiek pārvērstas par radiāniem, izmantojot funkciju atan2 () math.h bibliotēkā. Šīs funkcijas izskaidrošana ir ārpus šīs pamācības darbības jomas, taču, lūdzu, dodieties to meklēt - tas ir diezgan vienkāršs ģeometrijas triks!
Visbeidzot, lai atvieglotu dzīvi tiem no mums, kuri agrāk strādāja grādos, nevis rados, atan2 () aprēķinātā rad vērtība tiek pārvērsta grādos.
Cilpas augšpusē ir neliels koda fragments, kas ļauj noklikšķināt uz kursorsviras mirkļa pogas, lai pārvietotu "mājas" atrašanās vietu. Tas bija neticami noderīgi, pārbaudot kodu, taču esmu to atstājis, jo redzu, kā tas dažos gadījumos varētu būt noderīgs.
Tagad pāriet uz galveno koda lielāko daļu! mēs vispirms nolasām kursorsviru X, Y koordinātas, divas reizes atdalītas ar 10 ms aizkavi, un pēc tam pārbaudām, vai tās ir vienādas - es atklāju, ka kursorsviru reizēm izdod sporādiski rādījumi, un ar šo nelielu kavēšanos pietika, lai apturētu motora griešanos, pamatojoties uz šiem. Tā ir arī pietiekami īsa aizkave, ka šķiet, ka tā netraucē apzinātiem ievadiem.
Pārējais kods ir diezgan pašsaprotams, un esmu darījis visu iespējamo, lai to dokumentētu; IF paziņojumu sērija salīdzina pašreizējo kursorsviras leņķi ar motora leņķi un pārvieto motoru uz šo leņķi. 28BYJ-48 ir 5,689 soļi uz grādu, tāpēc mēs vajadzīgo kustību reizinām ar šo šķietami nepāra skaitli!
Viena no koda daļām, kas prasa visvairāk skaidrojumu, ir tā, ko es esmu nodēvējis par “ietīšanas lietu”. Tajā pat laikā, kad kursorsvira un motors atradās, piem. +175 °, un kursorsviru pēc tam pārvietoja uz -175 ° (kustība tikai par 10 ° kursorsvirā, no ziemeļiem uz rietumiem līdz dienvidiem no rietumiem), motors pārvietotos nepareizā virzienā par 350 °! lai to ņemtu vērā, tika uzrakstīts īpašais gadījums.
Ietīšanas gadījums sākas, pārbaudot, vai motoram un kursorsvirai ir pretējas zīmes, t.i., motors ir pozitīvs un kursorsviru negatīvs, vai otrādi. Tas arī pārbauda, vai kursorsviras un motora absolūto (tas ir, pozitīvo) vērtību summa pārsniedz 180 °.
Ja abi šie apgalvojumi ir patiesi, funkcija pārbauda, vai motoram jāpārvietojas pulksteņrādītāja virzienā (motora vērtība ir negatīva) vai pretēji pulksteņrādītāja virzienam (ja motora vērtība ir pozitīva).
Motora leņķa un kursorsviras leņķa absolūtās vērtības tiek summētas un atņemtas no 360 °, lai noteiktu pārvietošanās attālumu. Visbeidzot, motora leņķis (kas tagad atspoguļo kursorsviru leņķi) tiek atjaunināts kā tāds.
3. darbība: Pabeigts

Tātad, atliek tikai augšupielādēt kodu savā Arduino un palaist to! Skatiet iepriekš redzamo videoklipu, lai iegūtu labu priekšstatu par projekta darbību. Tas būtu noderīgi kameru kardāniem, robotām rokām un daudzām citām lietojumprogrammām!
Ja izmantojat kodu, lūdzu, informējiet mani, un, ja redzat, kur kodu var uzlabot, labprāt uzklausīšu jūsu atsauksmes.
Ieteicams:
Arduino LED vadība ar analogo kursorsviru: 6 soļi

Arduino LED vadība ar analogo kursorsviru: šajā apmācībā mēs iemācīsimies izmantot analogo kursorsviru, lai kontrolētu LED. Noskatieties demonstrācijas video
2 servo vadīšana, izmantojot analogo kursorsviru: 5 soļi (ar attēliem)

2 servo vadīšana, izmantojot analogo kursorsviru.: Sveiki, puiši, šī ir mana pirmā pamācība, un šajā amatā es dalīšos, kā izmantot analogo kursorsviru, lai kontrolētu servos, izmantojot Arduino UNO. Es centīšos to izskaidrot pēc iespējas vienkāršāk, ceru, ka jums patīk to
Pakāpju motors Kontrolēts pakāpju motors bez mikrokontrollera !: 6 soļi

Stepper Motor kontrolēts pakāpju motors bez mikrokontrollera! Šim projektam nav nepieciešamas sarežģītas shēmas vai mikrokontrolleris. Tāpēc bez papildu piepūles sāksim darbu
Pakāpju motors Kontrolēts pakāpju motors - Soļu motors kā rotācijas kodētājs: 11 soļi (ar attēliem)

Pakāpju motors Kontrolēts pakāpju motors | Pakāpju motors Kā rotācijas kodētājs: Vai pāris stepper motori atrodas apkārt un vēlaties kaut ko darīt? Šajā instrukcijā izmantosim pakāpju motoru kā rotējošu kodētāju, lai kontrolētu cita soļa motora stāvokli, izmantojot Arduino mikrokontrolleru. Tāpēc bez liekas piepūles pieņemsim
Līdzstrāvas motora pozīcijas kontrole: 5 soļi

Līdzstrāvas motora pozīcijas kontrole: šī instrukcija parādīs, kā kontrolēt motora stāvokli, izmantojot vietējo tīmekļa tīklu. Tagad jūs varat izmantot viedtālruni vai iPad, kas savienots ar tīklu, pēc tam ierakstiet motora vietējā tīmekļa servera adresi. No šejienes mēs varam kontrolēt motora pozīcijas disku, pagriežot