Sisällysluettelo:

Aja askelmoottoria AVR -mikroprosessorilla: 8 vaihetta
Aja askelmoottoria AVR -mikroprosessorilla: 8 vaihetta

Video: Aja askelmoottoria AVR -mikroprosessorilla: 8 vaihetta

Video: Aja askelmoottoria AVR -mikroprosessorilla: 8 vaihetta
Video: MKS Gen L - модуль параллельного двигателя 2024, Marraskuu
Anonim
Aja askelmoottoria AVR -mikroprosessorilla
Aja askelmoottoria AVR -mikroprosessorilla

Onko sinulla roska -askelmoottoreita tulostimista/levyasemista/jne. Makaamassa?

Jotkut mittaukset ohmetrilla, jota seuraa yksinkertainen ajurikoodi mikroprosessorissasi ja astut tyylikkäästi.

Vaihe 1: Tutustu Steppersiin

Tutustu Steppersiin
Tutustu Steppersiin
Tutustu Steppersiin
Tutustu Steppersiin

Periaatteessa sinun on selvitettävä, minne kaikki pienet johdot menevät.

Ensimmäinen askel on selvittää, onko se yksinapainen vai kaksisuuntainen moottori. Katso Jonesista Steppersissä syvempää taustaa ja sitten Ian Harriesin sivustolta yksinkertainen menetelmä tuntemattoman moottorin selvittämiseksi. Lue hiukan ja liity kanssani esittelyyn tästä moottorista, jonka sain halvalla. (Niitä myydään tällä hetkellä 0,99 dollarilla. Ne ovat pieniä, suhteellisen kevyitä, mutta niillä ei ole paljon vääntöä. En tiedä vielä, mihin se sopii.)

Vaihe 2: Etsi yhteinen perusta

Etsi yhteinen perusta
Etsi yhteinen perusta
Etsi yhteinen perusta
Etsi yhteinen perusta

Joten sinulla on viisi (tai neljä tai kuusi) johtoa. Moottorissasi on kaksi puoliskoa, ja luultavasti voit jopa kertoa vain katsomalla, kummalle puolelle kukin lanka kuuluu.

Jos katsot vain neljää johtoa, olet onnekas - se on kaksisuuntainen moottori. Sinun tarvitsee vain selvittää, mitkä kaksi johtoparia menevät yhteen. Jos sinulla on yksinapainen moottori tai yli 4 johtoa, joudut rikkomaan ohmimittarin. Mitä etsit, on yhteinen (maadoitus) johto kummallekin puolelle. Voit kertoa, mikä on maadoitettu bipolaarisessa moottorissa, koska sillä on puolet vastusta kumpaakaan napaa vastaan kuin napoissa. Kuvassa on muistiinpanoni johtojen liittämisestä johtoihin ja vastuksen huomioiminen (tai jos ne on kytketty ollenkaan). Näet, että valkoinen on pohja alimpalle kolmikolle b/c sillä on puolet punaisen tai sinisen vastustuskyvystä. (Tämä moottori on outo, eikä siinä ole keskikohtaa ylemmässä magneettikäämisessä. Se on kuin puoli-kaksisuuntainen, puoliksi yksinapainen. Ehkä voisit käyttää tätä havaitsemaan pyörimisen puna-valko-sinisessä kelassa, kun musta-keltainen kelaa ajetaan.)

Vaihe 3: Selvitä askeljärjestys

Selvitä askeljärjestys
Selvitä askeljärjestys

Aioin ajaa tätä moottoria kaksisuuntaisena moottorina, joten jätän huomiotta valkoisen maadoitusjohdon. Minulla on vain neljä johtoa huolestuttavana.

Saatat haluta käyttää yksinapaista moottoriasi bipolaarisena joka tapauksessa, koska se käyttää koko kelaa molemmissa vaiheissa sen sijaan, että vaihtaisi kunkin kelan kahden puoliskon välillä. Enemmän kelaa = enemmän vääntöä. Juokse virta parin läpi (huomioi valitsemasi napaisuus) ja juokse sitten virta toisen parin läpi samanaikaisesti. Kun kytket toisen parin, katso, mihin suuntaan moottori pyörii. Kirjoita tämä muistiin. Käännä nyt napaisuus ensimmäiselle valitsemallesi parille. Kytke sitten toinen pari uudelleen niiden napaisuuden ollessa päinvastainen. Huomaa suunta. Tästä sinun pitäisi pystyä selvittämään moottorin pyörimissuunta kumpaankin suuntaan. Esimerkissäni molemmat päätyivät kääntymään vastapäivään, joten vaiheen läpikäyminen samalla tavalla kuin valitsin, liikuttaa moottoria CCW.

Vaihe 4: Moottorin ottaminen koeajoon

Moottorin vieminen koeajoon
Moottorin vieminen koeajoon

Jos et ole jo liian valmis mikroprosessoriohjelmointiin, voit tehdä huonommin kuin Ghetto Development Kit tai jokin muu PIC -ohjelmoija. Liitä johdot suoraan mikroprosessiisi ja polta se seuraavalla koodilla:

/* Leikkiminen pienillä askelmoottoreilla. */

/ * Include delay function */ #define F_CPU 1000000UL #include/ * Pin defs for ATTiny2313 *// * myötäpäivään järjestys */ #define BLUE _BV (PB0) #define BLACK _BV (PB1) #define RED _BV (PB2) #define KELTAINEN _BV (PB3) #define DELAY 200 / * millisekuntia vaiheiden välillä * / int main (void) {DDRB = 0xff; / * Ota lähtö käyttöön kaikissa B -nastoissa */ PORTB = 0x00; / * Aseta ne kaikki arvoon 0v */ while (1) {/ * pääsilmukka tässä */ PORTB = SININEN; _viive_ms (DELAY); PORTB = MUSTA; _viive_ms (DELAY); PORTB = PUNAINEN; _viive_ms (DELAY); PORTB = KELTAINEN; _viive_ms (DELAY); }} Kuinka yksinkertainen koodi on? Todella yksinkertaista. Kaikki se tekee vain hienoja määritelmiä, jotta voisin viitata johtoihin värin sijaan niiden pin-nimien sijaan, ja sitten se kytkee ne päälle järjestyksessä säädettävän viiveen välillä. Aloittelijaksi valitsin puolen sekunnin viive vaiheiden välillä. Katso tulokset lyhyeltä videolta. Jos olet todella pelissäsi, laske moottorin yhden askeleen kulmatarkkuus laskemalla vaiheiden määrä jaksoa kohti. (Voi kyllä. PS. Aja helposti ilman kuormitusta 3,6 voltilla. Katso akku videolta.)

Vaihe 5: Käännä se taaksepäin ja eteenpäin

Joten pyörität sitä myötäpäivään. Onko mitään mielenkiintoisempaa? Pieni koodinpuhdistus, ja voimme suorittaa sen edestakaisin. Laitoin myötäpäivään sekvenssin taulukkoon, jotta voit siirtyä vaiheiden läpi yksinkertaisella silmukalla. Nyt voit ajaa silmukkaa ylös tai alas siirtyäksesi myötä- tai vastapäivään.

int main (void) {const uint8_t delay = 50; const uint8_t myötäpäivään = {SININEN, MUSTA, PUNAINEN, KELTAINEN}; uint8_t i; DDRB = 0xff; / * Ota lähtö käyttöön kaikissa B -nastoissa */ PORTB = 0x00; / * Aseta ne kaikki arvoon 0v */ while (1) {/ * main loop here */ for (i = 0; i <= 3; i ++) {/ * astu värien läpi myötäpäivään */ PORTB = myötäpäivään ; _viive_ms (viive); } for (i = 3; i> = 0; i-) { / * astu värien läpi ccw * / PORTB = myötäpäivään ; _viive_ms (viive); }}} Katso hurja video takaisin ja vahvistus.

Vaihe 6: En koskaan astu puoleen väliin, koska en ole puoliaskel…

Quest lyriikka syrjään, puolivälissä askel moottorisi on missä se on. Saat enemmän huippuvirtaa, enemmän hetkellistä vääntömomenttia ja kaksinkertaisen kulmatarkkuuden. Puolivaihe pähkinänkuoressa: Sinisen, mustan, punaisen, keltaisen sijaan ajaa moottorilla sinisellä, sinisellä+mustalla, mustalla, mustalla+punaisella, punaisella, punaisella+keltaisella, keltaisella, keltaisella+sinisellä. Lopputulos on, että puolet ajasta käytät molempia magneetteja kerralla. Ja aikana, jolloin molemmat sarjat ovat kytkettynä, moottori osoittaa puolivälissä näiden kahden välillä, pienentää kulmaa "portaiden" välillä ja saa moottorin kääntymään tasaisemmin. Voitko kertoa videosta? En ole varma… Nyt koodin osa, joka tekee puolivälin, näyttää tältä:

void halfStepping (uint16_t viive, uint8_t suunta ) {uint8_t i; for (i = 0; i <= 3; i ++) {PORTB = suunta ; / * yksikelainen osa */ _viive_ms (viive); PORTB | = suunta [i+1]; / * lisää puolivaiheessa */ _viive_ms (viive); }} Ensimmäinen PORTB -komento asettaa yhden navan positiiviseksi ja kaikki muut negatiiviseksi. Sitten se odottaa. Sitten toinen PORTB -komento asettaa toisen napan (toisella käämityksellä) positiiviseksi, kytkemällä molemmat käämit 1,4 -kertaiseen vääntömomenttiin (ja 2x nykyiseen). Alla on luettelo kaikista ohjelmista. Kaksi taulukkoa on nyt määritetty (myötäpäivään, vastapäivään) ja molemmissa on 5 elementtiä, jotka mahdollistavat i+1 -merkinnän halfStepping -toiminnossa.

Vaihe 7: Lisää moottoriajuri

Lisää moottoriajuri
Lisää moottoriajuri
Lisää moottoriajuri
Lisää moottoriajuri
Lisää moottoriajuri
Lisää moottoriajuri

Toistaiseksi niin hyvin.

Ainoa ongelma on, että moottorilla ei näytä olevan niin paljon vääntömomenttia, mikä voi johtua siitä, että mikroprosessori antaa vain ~ 50 mA per nasta. Ilmeinen seuraava askel olisi kytkeä se moottoriajuriin, jotta se toimittaisi enemmän mehua. Mutta sitten vähän ajattelemista: Ajan vain 5 V: n jännitteellä, ja käämin vastus on ~ 125 ohmia. Tämä tarkoittaa, että moottorin ainoa piirustus on 40 mA per pin, ja sen pitäisi toimia hienosti (lihava!) AVR -sirulla. Joten saadaksesi enemmän jännitettä moottorin ohjaamiseen, kytkin sen SN754410 H-siltapiiriin. Piiri on melko yksinkertainen. Jokainen AVR: n nasta menee tuloon ja vastaavat ulostulonapit moottoriin. Siru tarvitsee 5 V: n logiikkaosalle, ja se voi ottaa paljon enemmän jännitettä moottoriosassa. Sen käyttäminen 11,25 voltilla (kolme 3,6 voltin akkua) auttoi hieman. Huomattavasti enemmän vääntöä sormelleni, mutta se ei silti ole voimanpesä. Ei kuitenkaan huono moottori, joka on pienempi kuin nikkeli. Ja nyt piiristä on tullut yleiskäyttöinen kaksisuuntainen askelmoottorin ohjain. Lisätty 29. marraskuuta: Käveli moottoria eilen illalla 12 V: n ajan ja se alkoi kuumentua. En ole varma, oliko se resonanssitaajuusongelma vai oliko se yksinkertaisesti liian suuri virta käämille. Joka tapauksessa ole hieman varovainen, jos ajat tätä pientä moottoria suuremmilla jännitteillä.

Vaihe 8: Loppu

Joten mitä opin? Askelmoottorin ajaminen AVR: llä (ja H-siltapiirillä) on melko helppoa, jopa "hienossa" puoliaskeltilassa.

En ole vielä varma, mitä teen pienillä askelmoottoreilla. Mitään ehdotuksia?

Suositeltava: