Tartalomjegyzék:
- 1. lépés: Ismerje meg a Stepperst
- 2. lépés: Keresse meg a közös alapot
- 3. lépés: Határozza meg a lépések sorrendjét
- 4. lépés: A motor vitele próbaútra
- 5. lépés: Fordítsa vissza és előre
- 6. lépés: Soha nem lépek félig, mert nem vagyok féllépcsős…
- 7. lépés: Adjon hozzá egy motorvezérlőt
- 8. lépés: A vége
Videó: Hajtson léptetőmotort AVR mikroprocesszorral: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Van néhány kidobott léptetőmotor a nyomtatókból/lemezmeghajtókból/stb.
Néhány szondázás ohmmérővel, majd néhány egyszerű illesztőprogram -kód a mikroprocesszoron, és stílusosan lépked.
1. lépés: Ismerje meg a Stepperst
Alapvetően ki kell találnia, hová kerül az összes kis vezeték.
Az első lépés annak megállapítása, hogy unipoláris vagy bipoláris motorról van szó. Vessen egy pillantást Jonesra a Steppers -en, és nézzen mélyebb hátteret, majd Ian Harries webhelyén, ahol egy egyszerű módszert talál egy ismeretlen motor megtalálására. Olvasson egy kicsit, majd csatlakozzon hozzám, és ismertesse ezt a motort, amelyet olcsón kaptam. (Jelenleg 0,99 dollárért kaphatók. Kicsi, viszonylag könnyű, de nincs nagy nyomatékuk. Még nem tudom, mire lesz jó.)
2. lépés: Keresse meg a közös alapot
Tehát öt (vagy négy vagy hat) vezeték van. A motornak két fele lesz, és valószínűleg azt is meg tudja állapítani, ha megnézi, hogy melyik vezeték melyik oldalához tartozik.
Ha csak négy vezetéket néz, akkor szerencséje van - ez egy bipoláris motor. Mindössze annyit kell tennie, hogy kitalálja, melyik két vezetékpár megy össze. Ha unipoláris motorja van, vagy több mint 4 vezeték, akkor ki kell kapcsolnia az ohmmérőjét. Amit keres, az a közös (földelt) vezeték minden fél számára. Meg lehet határozni, hogy melyik a földelt egy bipoláris motorban, mert az ellenállása fele a pólusoknak, mint a pólusoknak. A képen a jegyzeteim találhatók a vezetékek és a vezetékek összekapcsolásáról, és az ellenállás megjegyzéséről (vagy ha egyáltalán csatlakoztatva vannak). Látható, hogy a fehér a talaj az alsó hármas b/c számára, felean ellenáll a vörösnek vagy a kéknek, mint egymásnak. (Ez a motor furcsa, és nincs középső csapja a felső mágnestekercsen. Olyan, mintha félig bipoláris, félig egypólusú lenne. Talán ezt használhatná a piros-fehér-kék tekercs forgásának érzékelésére, amikor a fekete-sárga tekercset hajtják.)
3. lépés: Határozza meg a lépések sorrendjét
Ezt a motort bipolárisként akartam vezetni, ezért figyelmen kívül hagyom a fehér földvezetéket. Csak négy vezetékem van, ami miatt aggódnom kell.
Érdemes mindenesetre bipolárisként működtetni az egypólusú motorját, mert az az egész tekercset használja mindkét fázisban, ahelyett, hogy az egyes tekercsek két fele között váltakozna. Több tekercs = nagyobb nyomaték. Futtassa az áramot egy páron (vegye figyelembe a választott polaritást), majd futtassa az áramot a másik páron egyszerre. Amikor csatlakoztatja a második párt, figyelje, hogy a motor melyik irányba fordul. Írd le ezt. Most fordítsa meg a polaritást az első választott páron. Ezután kapcsolja be ismét a második párt, és a polaritásuk is megfordul. Jegyezze fel az irányt. Ebből ki kell derítenie a motor bármely irányba történő forgatásának sorrendjét. Az én példámban mindkettő az óramutató járásával ellentétes irányba fordult, így a sorrendet az általam választott módon átlépve a motor CCW lép.
4. lépés: A motor vitele próbaútra
Ha még nem vagy túl erős a mikroprocesszoros programozáshoz, rosszabbul járhatsz, mint a Ghetto Development Kit vagy bármelyik PIC programozó. Csatlakoztassa a vezetékeket közvetlenül a mikroprogramhoz, és égesse el a következő kóddal:
/* Játszik a kis léptetőmotorok meghajtásával. */
/ * Include delay function */ #define F_CPU 1000000UL #include/ * Pin defs for ATTiny2313 *// * Óramutató járásával megegyező irányban */ #define BLUE _BV (PB0) #define BLACK _BV (PB1) #define RED _BV (PB2) #define SÁRGA _BV (PB3) #define DELAY 200 / * ezredmásodperc a lépések között * / int main (void) {DDRB = 0xff; / * Kimenet engedélyezése az összes B érintkezőn */ PORTB = 0x00; / * Állítsa be mindegyiket 0v */ while (1) {/ * fő hurokra itt */ PORTB = KÉK; _delay_ms (DELAY); PORTB = FEKETE; _delay_ms (DELAY); PORTB = PIROS; _delay_ms (DELAY); PORTB = SÁRGA; _delay_ms (DELAY); }} Mennyire egyszerű ez a kód? Tényleg egyszerű. Mindössze annyit tesz, hogy szép definíciókat készít, hogy a vezetékekre színe alapján utalhassak, nem pedig a pin-nevekre, majd sorra kapcsolja be őket, állítható késéssel. Kezdésként fél másodperces késleltetést választottam a lépések között. Az eredményekért tekintse meg a rövid videót. Ha igazán kedve van a játékhoz, számolja meg a ciklusonkénti lépések számát, hogy megtudja a motor egylépcsős szögfelbontását. (Ó, igen. PS. Könnyen, 3,6 V feszültség nélkül hajt. Lásd az akkumulátort a videóban.)
5. lépés: Fordítsa vissza és előre
Tehát az óramutató járásával megegyező irányban kell működnie. Valami érdekesebb? Egy kis kódtisztítás, és futtathatjuk oda-vissza. Az óramutató járásával megegyező sorrendet egy tömbbe helyezem, hogy a fázisokat egy egyszerű for ciklus segítségével átléphesse. Most felfelé vagy lefelé futtathatja a hurkot az óramutató járásával megegyező vagy az óramutató járásával ellentétes irányba.
int main (void) {const uint8_t delay = 50; const uint8_t az óramutató járásával megegyező irányban = {KÉK, FEKETE, PIROS, SÁRGA}; uint8_t i; DDRB = 0xff; / * Kimenet engedélyezése az összes B érintkezőn */ PORTB = 0x00; / * Állítsa be mindegyiket 0v */ while (1) {/ * fő hurokra itt */ for (i = 0; i <= 3; i ++) {/ * lépjen át a színeken az óramutató járásával megegyező irányba */ PORTB = az óramutató járásával megegyező irányban ; _delay_ms (késleltetés); } for (i = 3; i> = 0; i-) { / * lépjen át a színeken ccw * / PORTB = az óramutató járásával megegyező irányban ; _delay_ms (késleltetés); }}} Nézze meg a heves videót a hátulütésről.
6. lépés: Soha nem lépek félig, mert nem vagyok féllépcsős…
A küldetés szövegét félretéve, a motor félig léptetése ott van, ahol van. Több csúcsáramot, nagyobb pillanatnyi nyomatékot és kétszeres szögfelbontást kap. Fél lépés dióhéjban: Kék, fekete, piros, sárga helyett kék, kék+fekete, fekete, fekete+piros, piros, piros+sárga, sárga, sárga+kék színekkel hajtja a motort. A végeredmény az, hogy az idő felében mindkét mágnest egyszerre kapcsolja be. Abban az időben, amikor mindkét készlet be van kapcsolva, a motor félúton mutat a kettő között, és csökkenti a "lépések" közötti szöget, és a motor egyenletesebben forog. Meg tudod mondani a videóból? Nem vagyok benne biztos … Most a kódnak az a része, amelyik félig lép, így néz ki:
void halfStepping (uint16_t késleltetés, uint8_t irány ) {uint8_t i; for (i = 0; i <= 3; i ++) {PORTB = irány ; / * egytekercses rész */ _delay_ms (késleltetés); PORTB | = irány [i+1]; / * add fél lépésben */ _delay_ms (késleltetés); }} Az első PORTB parancs egyetlen pólust állít pozitívra, a többit pedig negatívra. Aztán vár. Ezután a második PORTB parancs a második pólust (a másik tekercsen) pozitívra állítja, és mindkét tekercset összekapcsolja 1,4 -szeres nyomatékkal (és 2x az árammal). A teljes programlistát az alábbi melléklet tartalmazza. Most két tömb van definiálva (az óramutató járásával megegyező, az óramutató járásával ellentétes irányban), és mindkettőben 5 elem található, amelyek lehetővé teszik az i+1 bejegyzést a halfStepping függvényben.
7. lépés: Adjon hozzá egy motorvezérlőt
Eddig jó.
Az egyetlen probléma az, hogy a motornak nincs annyi nyomatéka, ami annak a ténynek tudható be, hogy a mikroprocesszor csak ~ 50 mA -t bocsát ki. A nyilvánvaló következő lépés az lenne, ha csatlakoztatnánk egy motoros meghajtóhoz, hogy több levet biztosítson neki. De akkor egy kis gondolkodás: csak 5V-al hajtom, és a tekercselési ellenállás ~ 125 ohm. Ez azt jelenti, hogy a motor egyetlen 40 mA -es húzást használ csaponként, és a (marha!) AVR chipnek tökéletesen kell hajtania. Tehát, hogy nagyobb feszültséget kapjon a motor, csatlakoztattam egy SN754410 H-híd chiphez. Az áramkör meglehetősen egyszerű. Az AVR minden csapja bemenetre megy, és a megfelelő kimeneti tüskék a motorhoz. A chipnek 5 V -ra van szüksége a logikai szakaszhoz, és sokkal több feszültséget vehet fel a motor szakaszban. A 11,25 V -os (három 3,6 V -os elem) működtetése némileg segített. Érezhetően nagyobb nyomaték az ujjamnak, de még mindig nem erőmű. Nem rossz egy olyan motornál, amely kisebb, mint a nikkel. És most az áramkör általános célú bipoláris léptetőmotor-meghajtóvá vált. Hozzáadva november 29 -én: Tegnap este 12V -on járatta a motort egy ideig, és elkezdett forrósodni. Nem tudom, hogy rezonanciafrekvenciás probléma volt -e, vagy egyszerűen túl nagy volt a tekercselés. Akárhogy is, legyen óvatos, ha ezzel a kis motorral nagyobb feszültséget vezet.
8. lépés: A vége
Szóval mit tanultam? A léptetőmotor vezetése AVR (és H-híd chip) segítségével meglehetősen egyszerű, még "divatos" féllépcsős módban is.
Még nem tudom, mit kezdjek a kis léptetőmotorokkal. Valami javaslat?
Ajánlott:
AVR összeszerelő bemutató 2: 4 lépés
AVR Assembler 2. bemutató: Ez az oktatóanyag az "AVR Assembler Tutorial 1" folytatása. Ha még nem ment át az 1. oktatóanyagon, akkor most hagyja abba, és először tegye meg ezt. Ebben az oktatóanyagban folytatjuk az atmega328p u összeszerelési nyelv programozásának tanulmányozását
AVR összeszerelő bemutató 1: 5 lépés
AVR Assembler Tutorial 1: Úgy döntöttem, hogy írok egy sor oktatóanyagot arról, hogyan kell összeállítani a Nyelv programokat az Atmega328p -hez, amely az Arduino -ban használt mikrokontroller. Ha az emberek továbbra is érdeklődnek, továbbra is hetente fogok egyet, amíg el nem fogy
AVR Assembler bemutató 6: 3 lépés
AVR Assembler 6. bemutató: Üdvözöljük a 6. bemutatóban! A mai bemutató rövid lesz, ahol egy egyszerű módszert fogunk kifejleszteni az adatok közlésére az egyik atmega328p és a másik között, két port segítségével. Ezután vesszük a kockadobót a 4. oktatóanyagból és a nyilvántartásból
Arduino ISP -ként -- Írja be a hexafájlt az AVR -ben -- Biztosíték az AVR -ben -- Arduino programozóként: 10 lépés
Arduino ISP -ként || Írja be a hexafájlt az AVR -ben || Biztosíték az AVR -ben || Arduino programozóként: ……………………… További videókért Iratkozzon fel YouTube -csatornámra …….. Ez a cikk az arduino -ról szól, mint isp. Ha hexadecimális fájlt szeretne feltölteni, vagy ha be szeretné állítani a biztosítékot az AVR -ben, akkor nem kell programozót vásárolnia, megteheti
Azta !! Futtassa a léptetőmotort illesztőprogram nélkül -- Új ötlet 2018: 4 lépés (képekkel)
Azta !! Futtassa a léptetőmotort illesztőprogram nélkül || Új ötlet 2018: Szia! Ebben az utasításban megtanítom, hogyan kell folyamatosan léptetni a léptetőmotort nagy sebességgel, meghajtó áramkör, arduino vagy váltakozó áramú tápegység nélkül. Ezenkívül a vezetékek felcserélésével mindkét órában futtatható. bölcs & számláló az óramutató járásával megegyező irányba