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.

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.

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.

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.