Léptetőmotor vezérlés PIC16F887 mikrovezérlővel

A léptetőmotorok széles körben alkalmazott eszközök a precíziós mozgásvezérlési feladatokban, ahol pontos pozicionálás és sebességszabályozás szükséges. Ahogy korábbi bejegyzésekben már részletesen tárgyaltuk a léptetőmotorok működési elvét, ez a cikk a PIC16F887 mikrovezérlővel történő illesztés és programozás részleteire fókuszál. Megvizsgáljuk az áramköri megvalósítást és a szoftveres megoldásokat, amelyekkel a léptetőmotorok hatékonyan vezérelhetők.

A léptetőmotorok alapjai

A léptetőmotorok egy állandó mágneses forgó tengelyből, azaz a rotorból, és a motor körüli állórészben található elektromágnesekből, a sztátorból állnak. Egy léptetőmotor egy teljes fordulatát az alábbiakban szemléltetjük. Az 1. pozícióban láthatjuk, hogy a rotor a felső elektromágnesnél kezd, amely jelenleg aktív (feszültség van ráadva). Az óramutató járásával megegyező irányú (CW) mozgáshoz a felső elektromágnes kikapcsol, és a jobb oldali elektromágnes bekapcsol, aminek hatására a rotor 90 fokkal CW irányba fordul, és az aktív mágnessel egy vonalba kerül.

A léptetőmotor belső szerkezete és működési elve

Az átlagos léptetőmotor felbontása - az impulzusonként elforduló fokok száma - sokkal nagyobb, mint a fenti példa 90 fokos felbontása. Egyes motorok felbontása megduplázható egy fél-léptetésnek nevezett eljárással. Ahelyett, hogy egyszerre csak egy következő elektromágnest kapcsolnánk be a forgás során, a fél-léptetésnél mindkét elektromágnes bekapcsolódik, ami egyenlő vonzást eredményez közöttük, ezáltal megduplázva a felbontást.

A 2. pozícióban mind a felső, mind a jobb oldali elektromágnes aktív, ami a rotort a két aktív pólus közé helyezi. Végül a 3. pozícióban a felső mágnes kikapcsol, és a rotor teljesen jobbra húzódik. Ez a folyamat megismételhető a teljes fordulatra.

A léptetőmotor típusai és felépítése

Többféle léptetőmotor létezik. A 4 vezetékes léptetőmotorok mindössze két elektromágnest tartalmaznak, azonban működésük bonyolultabb, mint a három vagy négy mágnessel rendelkezőké, mivel a meghajtó áramkörnek minden lépés után képesnek kell lennie az áram irányának megfordítására.

A valós motorok minipólusok sorozatát alkalmazzák a sztátoron és a rotoron a felbontás növelése érdekében. Bár ez bonyolultabbnak tűnhet a motorok meghajtása szempontjából, a működés azonos az egyszerű, 90 fokos motorral, amelyet példaként használtunk. Példaként egy többpólusú motor látható, ahol az 1. pozícióban a rotor állandó mágnesének északi pólusa a sztátor elektromágnesének déli pólusával van egy vonalban. Fontos megjegyezni, hogy több pozíció is egyszerre illeszkedik. A 2. pozícióban a felső elektromágnes kikapcsol, és a tőle közvetlenül balra lévő következő bekapcsolódik, aminek hatására a rotor pontosan meghatározott mértékben elfordul.

Kísérleteinkhez egy ST-02: 5VDC, 5 fok/lépés típusú léptetőmotort használunk, amelynek 6 vezetéke van. Az elektromos megfelelőjét figyelembe véve láthatjuk, hogy 3 vezeték megy a tekercsek minden feléhez, és a tekercselések párosítva vannak bekötve. Ha azonban nem rendelkezünk egyenértékű diagrammal a használni kívánt motorhoz, készíthetünk egy ellenállás-táblázatot a titokzatos csatlakozások megfejtéséhez. A középcsapos vezeték és minden végvezeték között 13 ohm, míg a két végvezeték között 26 ohm ellenállás mérhető.

A PIC16F887 mikrovezérlő és a meghajtó áramkör

Ez a cikk a léptetőmotor illesztésének programozásával és áramköri megvalósításával foglalkozik PIC mikrovezérlővel. Általában mikrovezérlőt használnak a léptetőmotor léptetési szekvenciájának előállítására. Ez azonban nem az egyetlen módszer a léptetési szekvencia előállítására. Előállítható flip-flopok, logikai kapuk és némi digitális elektronikai ismeretek segítségével is. De ez a cikk az előbbi módszerrel foglalkozik, mivel az jobb és egyszerűbb.

Miért szükséges meghajtó áramkör?

A mikrovezérlő 5V-on működik, a léptetőmotornak viszont 12V-ra van szüksége a működéshez. Ezért a mikrovezérlő portlábai önmagukban nem képesek meghajtani a motort. Ehhez szükségük van egy úgynevezett meghajtó áramkörre. Ez az áramkör tipikusan alacsony szintű jeleket vesz át a vezérlőtől, és magas feszültségű/áramú jelekké alakítja azokat, amelyek képesek gerjeszteni a sztátor tekercselését.

A léptetőmotor áram- és feszültségigényétől függően kell megépíteni a meghajtó áramkört. Ebben a cikkben a legkisebb léptetőmotort fogom használni, ami a rendelkezésemre áll. Ez pusztán azért van, hogy elkerüljük a dedikált teljesítmény-meghajtó áramkörök építését. Ha nincs nálad kicsi, akkor szükséged lesz meghajtó áramkörre. Egyelőre feltételezem, hogy van nálad egy kis motor.

Meghajtó áramkör illusztrációja a mikrovezérlő és a motor között

A PIC16F887 mikrovezérlő áttekintése

A PIC16F887 egy népszerű 8 bites mikrovezérlő a Microchip PIC sorozatából, amely számos funkciót kínál beágyazott rendszerekhez. Különösen alkalmas vezérlési feladatokra, mint például a léptetőmotorok irányítása, köszönhetően a rugalmas I/O portoknak és a beépített perifériáknak.

A PIC16F887 főbb jellemzői

Az alábbi táblázat összefoglalja a PIC16F887 néhány fontos paraméterét:

Paraméter Érték
Flash memória 14000B
Üzemi hőmérséklet -40...125°C
Komparátorok száma 2
Üzemi frekvencia 0...20MHz
Kimeneti compare csatornák száma 2
Bemeneti capture csatornák száma 2
Integrált generátor 32kHz, 8MHz
Építésmód 8-bit
Interfészek A/E/USART, LIN, MSSP (SPI / I2C), RS232, RS485
Integrált áramkör tulajdonságai Brown Out Reset (BOR), Power-on Reset (PoR), Watchdog

A teljes beállítás és áramköri megvalósítás

Íme az általam készített összeállítás az illesztéshez. Ez a felépítés egy teljesen önálló áramkör, amelyhez mindössze egy 12V-os tápegység szükséges. Az áramkört különböző részekre bontottam. Az alábbiakban láthatóak az egyes blokkok kapcsolási rajzai. Ezek magától értetődőek, és további magyarázatot nem igényelnek.

A léptetőmotor vezérlés kapcsolási rajza breadboardon

Programozás PIC16F887-hez C nyelven

A programozás rendkívül egyszerű, és mindössze néhány sor C kóddal elvégezhető. Az alábbi programban mindhárom típusú léptetési szekvencia szerepel három tömbben, amelyek makrókkal választhatók. Így a kód teljes léptetésű módhoz való használatához definiálni kell egy FULL_STEP makrót.

Aki még nem tudja, a #ifdef MACRO_NAME ellenőrzi, hogy a MACRO_NAME makró definiálva van-e. Ha igen, akkor a #ifdef MACRO_NAME és #endif utasítások közötti sorok hozzáadódnak a programhoz. Ha ilyen makró nincs definiálva, akkor a köztük lévő sorok kikommentálásra kerülnek. Alapvetően ez egy if utasítás, de előfeldolgozás szempontjából.

Az Orbán-kormány pusztítása összevethető a tatárjárással – Magyar Péter felszólalása élőben

A videóban a hullám léptetés szekvenciát használtam. Biztos vagyok benne, hogy nincs nagy észrevehető különbség a különböző léptetési szekvenciák között, ezért nem fáradtam az összes felvételével. Látható a sebesség változása is a lépések közötti késleltetés változásával. Reméljük, hogy ez a cikk segített a léptetőmotor illesztés alapjainak megértésében.

tags: #pic16f887 #stepper #motor #vezerles