Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10
Kjo është një skemë kontrolli për motorin stepper 28BYJ-48 që kam zhvilluar për ta përdorur si pjesë e projektit të disertacionit të vitit të fundit. Unë nuk e kam parë këtë të bërë më parë, kështu që mendova të ngarkoja atë që zbulova. Shpresoj se kjo do të ndihmojë dikë tjetër atje!
Kodi në thelb lejon një motor stepper të "kopjojë" pozicionin këndor të një levë analoge, domethënë nëse e shtyni levën përpara, motori drejtohet drejt "veriut". shtyjeni levën drejt perëndimit, motori rrotullohet në pikën në të njëjtin drejtim.
Për zbatimin tim, unë kërkova që nëse levë lëshohet, domethënë nuk ka pozicion këndor, motori kthehet në drejtimin "në shtëpi". Drejtimi i shtëpisë është i drejtuar nga lindja, dhe motori (ose me qira çfarëdo treguesi / pajisje që i keni bashkangjitur boshtit dalës!) Gjithashtu duhet të jetë përballë këtij drejtimi kur ndizet.
Furnizimet
Arduino Uno ose të ngjashme
bukë dhe përzgjedhja e telave të kërcyesit (mashkull në mashkull, mashkull në femër)
Furnizimi me energji 5V
Moduli xhojstik analog (në mënyrë ideale me një funksion butoni të shtypjes së çastit, kjo e bën pushimin më të lehtë të pozicionit "shtëpi"
Motor stepper 28BYJ-48 dhe shofer stepper ULN2003
Stilolaps, letër dhe blu-tac (ose ndonjë pajisje tjetër treguese për t'u bashkuar me motorin!)
Hapi 1: Hapi 1: Konfigurimi
Lidhni motorin stepper me drejtuesin stepper dhe lidhni kunjat si më poshtë:
IN1 - pin Arduino 8
IN2 - kunja Arduino 9
IN3 - Arduino pin 10
IN4 - pin Arduino 11
Lidhni furnizimin me energji elektrike 5v me binarët e furnizimit në pllakën tuaj të bukës dhe lidhni hyrjet ULN2003 5v me binarët e furnizimit. lidhni hekurudhën tokësore me tokën në Arduino tuaj.
për levën, lidheni si më poshtë:
Kaloni pin - Arduino pin 2
Boshti X - Arduino A0 (Analog në 0)
Boshti Y - Arduino A1
+5V - dalje Arduino 5V
GND - Arduino GND
Më në fund lidhni tokën e tabelës suaj me kunjin tjetër Arduino GND
Hapi 2: Hapi 2: Shpjegimi i Kodit
Unë kam përfshirë kodin e plotë Arduino për ta shkarkuar dhe përdorur. Por do të bëj çmos për të shpjeguar pjesët përkatëse këtu.
Teoria pas këtij kodi është se hapësira e zënë nga levë ndahet në një grafik, me 0, 0 në qendër. sidoqoftë hyrjet e levës qëndrojnë në (përafërsisht) 512 në qendër, kështu që për të kapërcyer këtë dy funksione përdoren për të "zero" vlerën e lexuar nga boshti X dhe Y. në varësi të furnizimit me energji elektrike që përdorni mund t'ju duhet të ndryshoni vlerat në funksionet ZeroX dhe ZeroY në mënyrë që levë juaj të japë një lexim të besueshëm të 0 kur pushoni.
Kur lexohen vlerat X, Y, ato konvertohen së pari në radianë duke përdorur funksionin atan2 () në bibliotekën math.h. Shpjegimi i këtij funksioni është jashtë fushëveprimit të këtij udhëzimi, por ju lutemi shikoni atë - është një truk mjaft i thjeshtë gjeometrie!
Së fundi, për ta bërë jetën më të lehtë për ata prej nesh që punonin në gradë dhe jo në rad, vlera e rad e llogaritur nga atan2 () konvertohet në gradë.
Në krye të lakut është një pjesë e vogël e kodit që ju lejon të klikoni në butonin momental në levë për të lëvizur vendndodhjen "shtëpi". Kjo ishte tepër e dobishme gjatë testimit të kodit, por e kam lënë atë pasi mund të shoh se si mund të jetë i dobishëm në disa raste.
Tani në pjesën kryesore të kodit! ne fillojmë duke lexuar levën X, koordinatat Y të ndara dy herë me një vonesë 10ms dhe pastaj duke kontrolluar nëse ato janë të njëjta - zbulova se levë herë pas here do të jepte lexime sporadike, dhe kjo vonesë e vogël ishte e mjaftueshme për të ndaluar rrotullimin e motorit bazuar në këto Me Alsoshtë gjithashtu një vonesë mjaft e shkurtër saqë nuk duket se ndërhyn në hyrjet e qëllimshme.
Pjesa tjetër e kodit është mjaft vetë -shpjeguese dhe unë kam bërë çmos për ta dokumentuar atë; Një seri deklaratash IF krahasojnë këndin aktual të levës me këndin e motorit dhe e lëvizin motorin në atë kënd. 28BYJ-48 ka 5.689 hapa për shkallë, prandaj ne shumëzojmë lëvizjen e kërkuar me këtë numër në dukje të çuditshëm!
Njëra pjesë e kodit që kërkon më shumë shpjegim është ajo që unë e kam quajtur "rasti përfundimtar". Në atë që levë & motor ishin në p.sh. +175 °, dhe levë më pas u zhvendos në -175 ° (një lëvizje prej vetëm 10 ° në levë, nga veriu i perëndimit në jug të perëndimit), motori do të lëvizte në drejtimin e gabuar me 350 °! për të dhënë llogari për këtë rasti i veçantë është shkruar.
Rasti përfundimtar fillon duke kontrolluar që motori dhe levë kanë shenja të kundërta, domethënë motori është pozitiv dhe levë negative, ose anasjelltas. Gjithashtu kontrollon që shuma e vlerave absolute (domethënë pozitive) të levës dhe motorit është mbi 180 °.
Nëse të dyja këto pohime janë të vërteta, atëherë funksioni kontrollon nëse motori duhet të lëvizë në drejtim të akrepave të orës (vlera e motorit është negativ) ose në drejtim të kundërt (nëse vlera e motorit është pozitive).
Vlerat absolute të këndit të motorit dhe këndit të levës janë mbledhur dhe zbritur nga 360 ° për të përcaktuar distancën për të lëvizur. Së fundi, këndi i motorit (i cili tani pasqyron këndin e levës) përditësohet si i tillë.
Hapi 3: P FRFUNDUAR
Pra, gjithçka që mbetet për të bërë është të ngarkoni kodin në Arduino tuaj dhe ta ekzekutoni! Shikoni videon e mësipërme për një ide të mirë se si funksionon projekti. Kjo do të ishte e dobishme për gimbalët e kamerës, krahët robotikë dhe shumë aplikacione të tjera!
Nëse përdorni kodin, ju lutem më tregoni, dhe nëse shihni ndonjë vend ku mund të përmirësohet kodi, do të doja të dëgjoja reagimet tuaja.
Recommended:
Kontrolli i pozicionit të motorit DC: 5 hapa
Kontrolli i pozicionit të motorit DC: Ky udhëzim do të tregojë se si të kontrolloni pozicionin e motorit përmes rrjetit lokal të uebit. Tani mund të përdorni telefonin inteligjent ose iPad të lidhur me rrjetin, pastaj të shkruani adresën e web serverit lokal të motorit Nga këtu, ne mund të kontrollojmë diskun e pozicionit të motorit me rrotullim
Kontrolli i motorit DC Arduino Uno R3: 6 hapa
DC Motor Control Arduino Uno R3: Në këtë eksperiment, ne do të mësojmë se si të kontrollojmë drejtimin dhe shpejtësinë e një motori DC me madhësi të vogël nga një çip drejtues L293D. Duke bërë eksperimente të thjeshta, ne thjesht do ta bëjmë motorin të rrotullohet majtas dhe djathtas, dhe të përshpejtojë ose ngadalësojë automatikisht
Arduino Tutorial - Kontrolli i motorit me hapa me drejtues ULN 2003: 5 hapa
Arduino Tutorial - Kontrolli i Stepper Motor With Driver ULN 2003: Ky udhëzues është versioni i shkruar i " Arduino: Si të kontrolloni një motor stepper me ULN 2003 Motor Driver " Videoja në YouTube që kam ngarkuar kohët e fundit. Ju rekomandoj fuqimisht ta kontrolloni
Kontrolli i motorit Stepper Me Arduino: 8 hapa
Kontrolli i Stepper Motor Me Arduino: Salut les Makers :) c'est Maker3.0Notre premier " udhëzues " është një kërkesë e vogël që ju mund të kontrolloni dhe kontrolloni motorin tuaj pas " Stepper Motor " sa vitesse son sens de rotation et cela de façon manuelle ou automatique!
DREJTIMI DHE KONTROLLI I SHPEJTSIS OF I DC MOTORIT PINGR PRDORIMIN E LABVIEW (PWM) DHE ARDUINO: 5 hapa
DREJTIMI DHE KONTROLLI I SHPEJTSIS OF I DC MOTORIT P USR PRDORIMIN E LABVIEW (PWM) DHE ARDUINO: Përshëndetje djema para së gjithash më falni për anglishten time qesharake. Në këtë udhëzues unë do t'ju tregoj se si të kontrolloni shpejtësinë e një motori dc duke përdorur labview Le të fillojmë