Sadržaj:
- Korak 1: Upoznajte Steppere
- Korak 2: Pronađite zajedničku osnovu
- Korak 3: Pronađite redoslijed koraka
- Korak 4: Uzimanje motora na probnu vožnju
- Korak 5: Zamahnite naprijed -nazad
- Korak 6: Nikad ne pravim pola koraka, jer nisam polukorak …
- Korak 7: Dodajte upravljački program motora
- Korak 8: Kraj
Video: Vozite koračni motor s mikroprocesorom AVR: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:09
Imate li negdje okolo pospremljenih koračnih motora sa pisača/diskovnih pogona/itd?
Nekoliko sondiranja ohmetrom, nakon čega slijedi jednostavan kod upravljačkog programa na vašem mikroprocesoru i bit ćete u korak sa stilom.
Korak 1: Upoznajte Steppere
U osnovi, morat ćete otkriti kamo idu sve male žice.
Prvi korak je utvrditi radi li se o unipolarnom ili bipolarnom motoru. Za dublju pozadinu pogledajte Jones on Steppers, a zatim i web lokaciju Iana Harriesa za jednostavnu metodu otkrivanja nepoznatog motora. Pročitajte malo, a zatim mi se pridružite u obilasku ovog motora koji sam jeftino nabavio. (Trenutno su u prodaji po 0,99 USD. Mali su, relativno lagani, ali nemaju veliki okretni moment. Ne znam za šta će to još biti dobro.)
Korak 2: Pronađite zajedničku osnovu
Dakle, imate pet (ili četiri ili šest) žica. Vaš motor će imati dvije polovine, a vjerovatno možete čak i zaključiti gledajući kojoj strani pripada svaka žica.
Ako gledate samo četiri žice, imate sreće - to je bipolarni motor. Sve što trebate učiniti je shvatiti koja dva para žica idu zajedno. Ako imate unipolarni motor ili više od 4 žice, morat ćete prekinuti svoj ohmetar. Ono što tražite je zajednička (uzemljena) žica za svaku polovicu. Možete znati koje je tlo u bipolarnom motoru jer ima polovicu otpora prema bilo kojem od polova nego što polovi imaju preko sebe. Na slici su moje bilješke o spajanju žica na žice i bilježenju otpora (ili ako su uopće povezane). Možete vidjeti da je bijela osnova za donji trio b/c i da ima upola manji otpor prema crvenoj ili plavoj boji koji imaju jedno prema drugom. (Ovaj motor je čudan i nema središnji dodir na gornjoj zavojnici magneta. Kao da je polubipolarni, polu unipolarni. Možda biste ovo mogli koristiti da osjetite rotaciju u zavojnici crveno-bijelo-plavo kada je crno-žuta zavojnica se pokreće.)
Korak 3: Pronađite redoslijed koraka
Htio sam voziti ovaj motor kao bipolarni, pa ignoriram bijelu uzemljenu žicu. Moram brinuti samo o četiri žice.
Možda biste ipak htjeli pokrenuti svoj unipolarni motor kao bipolarni, jer koristi cijelu zavojnicu u obje faze, umjesto da izmjenjuje dvije polovice svake zavojnice. Više zavojnice = veći obrtni moment. Provedite struju kroz par (uzimajući u obzir polaritet koji ste odabrali), a zatim prođite kroz drugi par istovremeno. Kada spojite drugi par, pazite u kojem smjeru se motor okreće. Zapiši ovo. Sada promijenite polaritet na prvom paru koji ste odabrali. Zatim ponovno spojite drugi par s obrnutim polaritetom. Obratite pažnju na smer. Iz ovoga biste trebali moći shvatiti redoslijed okretanja motora u bilo kojem smjeru. U mom primjeru obojica su se okrenula u smjeru suprotnom od kazaljke na satu, pa će korakom kroz sekvencu na isti način koji sam odabrao koračati motor CCW.
Korak 4: Uzimanje motora na probnu vožnju
Ako već niste previše obučeni za programiranje mikroprocesora, mogli biste proći gore od Ghetto Development Kit -a ili bilo kojeg od različitih programera PIC -a. Priključite žice direktno na mikroprocesor i spalite ih sa sljedećim kodom:
/* Igranje sa pokretanjem malih koračnih motora. */
/ * Uključuje funkciju kašnjenja */ #define F_CPU 1000000UL #include/ * Def defs za ATTiny2313 *// * Redoslijed kazaljke na satu */ #define BLUE _BV (PB0) #define BLACK _BV (PB1) #define RED _BV (PB2) #define ŽUTI _BV (PB3) #define ODLOGA 200 / * milisekundi između koraka * / int main (void) {DDRB = 0xff; / * Omogući izlaz na svim B pinovima */ PORTB = 0x00; / * Postavite ih sve na 0v */ while (1) {/ * glavna petlja ovde */ PORTB = PLAVA; _delay_ms (DELAY); PORTB = CRNO; _delay_ms (DELAY); PORTB = CRVENO; _delay_ms (DELAY); PORTB = ŽUTI; _delay_ms (DELAY); }} Koliko je jednostavan taj kod? Zaista jednostavno. Sve što on čini su neke lijepe definicije kako bih se mogao pozivati na žice prema boji, a ne prema njihovim imenima, a zatim ih uključuje u nizu s podesivim kašnjenjem između. Za početak, odabrao sam pola sekunde kašnjenja između koraka. Za rezultate pogledajte kratki video zapis. Ako ste zaista u igri, izbrojite broj koraka po ciklusu da biste utvrdili kutnu rezoluciju motora s jednim korakom. (O da. PS. Lako vozi bez opterećenja na 3,6 V. Pogledajte bateriju u videu.)
Korak 5: Zamahnite naprijed -nazad
Znači, radi vam u smjeru kazaljke na satu. Ima li šta zanimljivije? Malo čišćenje koda i možemo ga pokrenuti naprijed-nazad. Stavio sam niz u smjeru kazaljke na satu u niz tako da možete koračati kroz faze jednostavnom for petljom. Sada možete pokrenuti petlju gore ili dolje za kretanje u smjeru kazaljke na satu ili suprotno.
int main (void) {const uint8_t kašnjenje = 50; const uint8_t u smjeru kazaljke na satu = {PLAVA, CRNA, CRVENA, ŽUTA}; uint8_t i; DDRB = 0xff; / * Omogući izlaz na svim B pinovima */ PORTB = 0x00; / * Postavite ih sve na 0v */ dok (1) {/ * glavna petlja ovdje */ for (i = 0; i <= 3; i ++) {/ * koraka kroz boje u smjeru kazaljke na satu */ PORTB = u smjeru kazaljke na satu ; _delay_ms (kašnjenje); } za (i = 3; i> = 0; i-) { / * korak kroz boje ccw * / PORTB = u smjeru kazaljke na satu ; _delay_ms (kašnjenje); }}} Za napred i nazad pogledajte video zapis o utrkama.
Korak 6: Nikad ne pravim pola koraka, jer nisam polukorak …
Ostavite tekstove na stranu, pola koraka s motorom tu je. Dobivate veću vršnu struju, trenutniji okretni moment i dvostruku kutnu rezoluciju. Ukratko u pola koraka: Umjesto plave, crne, crvene, žute, motor vozite plavom, plavom+crnom, crnom, crnom+crvenom, crvenom, crvenom+žutom, žutom, žutom+plavom. Zaključak je da polovinu vremena aktivirate oba magneta odjednom. A za vrijeme dok su oba seta uključena, motor pokazuje na pola puta između dva, smanjujući kut između "koraka" i čineći da se motor lakše okreće. Možete li reći iz videa? Nisam siguran … Sada dio koda koji radi polustepeno izgleda ovako:
void halfStepping (uint16_t kašnjenje, uint8_t pravac ) {uint8_t i; za (i = 0; i <= 3; i ++) {PORTB = pravac ; / * dio sa jednom zavojnicom */ _kašnjenje_ms (kašnjenje); PORTB | = pravac [i+1]; / * dodaj u pola koraka */ _delay_ms (kašnjenje); }} Prva PORTB naredba postavlja jedan pol na pozitivan, a svi ostali na negativan. Onda čeka. Zatim druga PORTB naredba postavlja drugi pol (na drugom namotu) na pozitivan, uključivajući oba namota za 1,4x obrtni moment (i 2x struju). Potpuni popis programa nalazi se u nastavku. Sada su definirana dva niza (u smjeru kazaljke na satu, suprotno od kazaljke na satu) i oba imaju po 5 elemenata koji omogućavaju unos i+1 u funkciji halfStepping.
Korak 7: Dodajte upravljački program motora
Zasada je dobro.
Jedini problem je što motor izgleda nema toliki zakretni moment, što bi moglo biti posljedica činjenice da će mikroprocesor gasiti samo ~ 50mA po pinu. Očigledan sljedeći korak bio bi spojiti ga s vozačem motora kako bi mu isporučio više soka. Ali onda malo razmišljam: vozim ga samo s 5v, a otpor namota zavojnice je ~ 125 ohma. Što znači da motor troši samo 40mA po pinu, a trebao bi ga sasvim dobro pokretati (jaki!) AVR čip. Kako bih dobio veći napon koji pokreće motor, spojio sam ga na čip SN754410 H-bridge. Krug je prilično jednostavan. Svaki pin iz AVR -a ide na ulaz, a odgovarajući izlazi na motor. Čipu je potrebno 5V za logičku sekciju i može podnijeti mnogo veći napon u dijelu motora. Pokretanje na 11.25v (tri 3.6v baterije) je malo pomoglo. Primetno veći obrtni momenat na mom prstu, ali to i dalje nije moć. Ipak, nije loše za motor koji je manji od nikla. A sada je krug postao univerzalni upravljački program bipolarnog koračnog motora. Dodano 29. novembra: Sinoć sam neko vrijeme radio na 12v i počeo se vrućiti. Nisam siguran je li to bio problem s rezonantnom frekvencijom ili je jednostavno bilo previše struje za namote. U svakom slučaju, budite malo oprezni ako vozite ovaj mali motor s većim naponima.
Korak 8: Kraj
Šta sam naučio? Upravljanje koračnim motorom s AVR-om (i čipom H-mosta) prilično je jednostavno, čak i u "otmjenom" načinu rada s pola koraka.
Ipak, nisam siguran što ću učiniti s malim koračnim motorima. Neki prijedlog?
Preporučuje se:
Koračni motor sa MIDI upravljanjem sa čipom za direktnu digitalnu sintezu (DDS): 3 koraka
Koračni motor sa MIDI-upravljanjem sa čipom za direktnu digitalnu sintezu (DDS): Jeste li ikada imali lošu ideju da ste SAMO morali da se pretvorite u mini projekat? Pa, igrao sam se sa skicom koju sam napravio za Arduino Due s ciljem stvaranja muzike s AD9833 modulom za direktnu digitalnu sintezu (DDS) … i u jednom trenutku sam pomislio & q
Koračni motor sa Arduino UNO: 3 koraka
Step motor sa Arduino UNO: Step motori su istosmjerni motori koji se kreću u diskretnim koracima. Imaju više zavojnica koje su organizirane u grupe pod nazivom "faze". Napajanjem svake faze u nizu, motor će se okretati, korak po korak. Koračni motori su vrlo korisni
Vozite Rover (automobil igračka) Internetom: 8 koraka
Vozite rover (automobil igračku) preko Interneta: ono što ćete graditi Ovaj vodič će vas naučiti kako izgraditi rover koji se može voziti pomoću vašeg mobilnog telefona. Sadrži video feed uživo i kontrolno sučelje za vožnju. Budući da i rover i vaš telefon imaju pristup internetu, igračka može
Koračni motor upravljanim koračnim motorom - Koračni motor kao rotacijski davač: 11 koraka (sa slikama)
Koračni motor upravljanim koračnim motorom | Koračni motor kao rotacijski davač: Imate li nekoliko koračnih motora koji leže i žele nešto učiniti? U ovom Instructableu, upotrijebimo koračni motor kao rotacijski davač za kontrolu položaja drugog koračnog motora pomoću Arduino mikrokontrolera. Pa bez odlaganja, idemo
Pike - Vozite sigurnije, vozite pametnije, vozite štuku !: 5 koraka
Pike - Vozite sigurnije, vozite pametnije, vozite štuku !: Dobro došli u moj projekat koji se zove Pike! Ovo je projekt u sklopu mog obrazovanja. Ja sam student NMCT -a na Howest -u u Belgiji. Cilj je bio napraviti nešto pametno pomoću Raspberry Pi. Imali smo potpunu slobodu u kojoj smo htjeli postati pametni. Za mene je to bilo