4 tengelyes léptető motor vezérlő

Ábel István  ©2003
ai1@freemail.hu

4 tengelyes PIC mikrokontroller alapú, LPT porthoz csatlakoztatható léptető motor vezérlő, unipoláris motorok meghajtására, R/L + Zener dióda meghajtási sémával, teljes és fél lépés üzemmódra, egybeépített PWM modulátorral, izzószál teljesítmény szabályzáshoz.

első változat 2003.10.17 -én

Az előzőekben ismertetett cnc habvágó gépemhez készítettem ezen vezérlőt, ami több a neten fellelhető kapcsolás ötvözéséből saját külön igényeimnek figyelembevételével készült. Alkalmas 4 unipoláris léptetőmotor meghajtására, és PWM kimenettel is rendelkezik. A PC párhuzamos (LPT) portjához kapcsolódik, lehet belőle hobby cnc gépet, plottert, habvágót, motorizált távcsövet vagy bármi mást építeni. A PC-ről a vezérlő tipikusan cnc kontroller programmal működtethető, de plotter és távcső vezérlő programok is fellelhetőek hozzá. Az itt ismertetett meghajtónál erősebb ( 2 A / fázis ), ipari kivitelű, optocsatolóval elválasztott bemenetű, bipoláris motorokhoz is alkalamzható chopper üzemű elektronika bemutatása a bipolar stepper driver oldalon található.

Bemenetén a motorokra vonatkozóan lépés ( STEP ) és irány ( DIR ) jeleket fogad. A PWM kimenet működtetése, ( + ) ( - ) nyomógombokkal, az én általam készített megmunkáló programba írt rutinokkal ( M kódként ), esetleg kompatibilis üzemmódba kapcsolva a cncnet féle megmunkáló programmal lehetséges ( ez esetben a PWM generálás szerepét a mikrokontrollertől a PC veszi át ). A párhuzamos porton bújtatott I2C busz csak az általam írt programmal működik, aminek segítségével lehet a kontroller néhány funkcióját állítani ( PWM kitöltési tényező, frekvencia ). Az I2C buszt megpróbáltam szabványosan kialakítani, és kérésre az azonosítókat is megadom, tehát aki akar azért írhat hozzá parancs kezelőt. A cncnet-el való kompatibilitás miatt van egy IRQ_Timer kimenete a PC felé amin másodpercenként 2000/4000 megszakítás kérést tud generálni.

A kapcsolás jelenleg saját számozásom szerint a 2.0 -ás változatban van. Ezen változat várhatóan nem végleges, mivel tudok optimalizálási pontokat, de ezek megtételéhez bizonyos például a cncnet féle programmal való kompatibilitást fel kellene adnom.


vezérlő rajzának letöltése pdf formátumban (31k)

Alakult Franciaországban egy "klub" féle kezdeményezés cncnet néven, mely repülő modell habvágásra specializálódott, saját letölthető habvágó programmal, ( melynek használatáért egy kisebb összeget azért fizetni kell ), és kidolgozott, letölthető formátumú hab-modellekkel. Ezen programmal a vezérlőm együtt tud működni, de ehhez egyedileg huzalozott párhuzamos porti csatlakozó kábelt kell készíteni. Ezen kellemetlenség azért adódott mert a vezérlő készítésekor saját vezérlő programom kiszolgálását részesítettem előnyben, aminek részét képezi az I2C buszos megoldás ( ami szerintem jobb mint a francia ). Az I2C buszt a párhuzamos porton nem lehet bárhova kötni, továbbá azt szerettem volna, hogy saját programommal sima a boltban beszerezhető "switch" kábellel összeköthető legyen, ezért maradt a cncnet féle összekapcsoláshoz szükséges egyedi huzalozású kábel mint megoldás ( az eltérés a "switch" kábeltől csak 5-7 csatlakozást érint ).

A mikrokontrolleren futó program jelenleg az I2C buszt software-ből valósítja meg, habár a processzorban van erre a célra külön hardware modul is. A PWM kimenet frekvenciája jelenleg a processzor ciklusidejének léptetésre való optimalizálása miatt 100 Hz körül van és szintén software-ből lett megvalósítva ( habár erre is van hardware modul ). A PWM kimenet alapvetően alkalmas nem csak izzószál hanem például DC motor meghajtására is, ez jelenleg az alacsony PWM frekvencia miatt nem működik. Az áttérés a hardware PWM modulra folyamatban, elkészülte után a várhatóan rendelkezésre álló 20kHz fölötti PWM frekvenciával már kis egyenáramú motorok is ( mint néhány szerszám ) fordulatszám-szabályozható lesz, méghozzá a megmunkáló programból.

Elektromos ismertető:

Léptetőmotorok:

A léptetőmotorokat elektromos szempontból tekercsenkénti ellenállásukkal, induktivitásukkal és terhelhetőségükkel szokás jellemezni. A motor forgását két egymáshoz képest eltolt térbeli helyzetű tekercsrendszer hozza létre, melyekben a folyamatos forgás biztosítása érdekében tekercsenként mind a két irányú mágneses teret elő kell tudni állítani. Ez alapvetően kétféleképpen szokott történni:

Motor meghajtó fokozatok:

A léptetőmotorokkal elérhető teljesítményt ( nyomaték, léptetési sebesség ) jelentősen befolyásolja a motor tekercsek meghajtására alkalmazott megoldás. Amit én a vezérlőben megvalósítottam, az nem a legjobb, de azért ár/teljesítmény viszonylatban mégiscsak jó megoldás. A motor nyomatéka és léptetési sebessége az állórészben felépülő mágneses tér függvénye. Egy adott tekercs által gerjesztett mágneses tér többé kevésbé arányos a tekercsen átfolyó árammal. A tekercsen átfolyó áramnak korlátot szab a tekercs saját ellenállása ( és egyéb veszteségek ), melyen az áram hőt ad le, s ez által a motort melegíti, a túláram pedig túlmelegítí. A motorból a legjobb teljesítmény akkor lenne kihozható, ha az adott léptetési sebességnél ez egy tekercsre jutó bekapcsolási időtartam alatt a tekercs árama végig a megengedett maximális lenne és előtte valamint utána 0 illetve az adott léptetési sorozattól függő érték. Mivel azonban a tekercsnek nem csak ellenállása hanem induktivitása is van, ez nem lehetséges. Egy ideális induktivitást adott U feszültségre kapcsolva benne az áram I(t)= U/L * t alakú időfüggvénnyel fog emelkedni, ahol L a tekercs öninduktivitása. A bekapcsolási folyamat során a tekercsben belső mágneses tér alakul ki, ami energiát tárol. Ez a tárolt energia a kikapcsolás során szűnik meg, de mivel energia el nem vész ezért ennek valahova távoznia kell. A kikapcsolás során is érvényes az előbbi egyenlet a tekercs feszültségére és áramára, amiből az következik, ha eredeti célkitűzés alapján a kikapcsoláskor azt szeretnénk, hogy a tekercs árama igen rövid idő alatt csökkenjen, ez csak úgy lenne megoldható, ha a tekercs feszültségét nem korlátozzuk és az igen magasra is felszökhet a kikapcsolás utáni rövid mágneses tér leépülés alatt. Egy elektromos áramkörben az nem mindig jó, ha egy feszültség túl magas is lehet, mivel a kikapcsolást általában félvezető végzi, ami feszültségtűrés határral rendelkezik. Milyen meghajtási lehetőségek adódnak ezek után, például egy 8 V-os tekercsenkénti feszültséget elviselő motornál, aminél a tekercs árama 0.3 A értéket vesz föl:

Motor beállítás:

Az általam készített vezérlő, R/L meghajtási módot alkalmaz Zener diódás tramziens lecsengés gyorsítással. A megfelelő működéshez az elektronikát minden egyes motorhoz külön be kell állítani. Először is tisztázandó, milyen motor áll rendelkezésre. Először is a motor csak unipoláris lehet, és a maximális megengedett tekercsáram nem lehet 1 A -nél több ( ha mégis több, akkor a vezérlőt nem lehet a megengedett maximális motor áramra beállítani ). Szükséges még a motor névleges tekercs feszültsége is ( természetesen az ellenállás, áram, feszültség hármasból elegendő bármely kettő ismerete, a harmadik számítható ). Ezen adatok ismeretében választhatunk tápfeszültséget, melyhez kiszámíthatjuk a szükséges előtét ellenállás és Zener dióda adatai.

Re= ( Utáp-Umotor ) / Imotor

amennyiben az így adódó ellenállás nem szabvány értékű, megpróbálhatjuk szabvány értékű ellenállásokból összeállítani. Megoldás még egy ennél nagyobb értékű szabványos ellenállás választása amivel a motor nem fog teljesen a megengedhető terhelése közelében működni. Amennyiben új ellenállás értéket választottunk, számoljuk ki a motor áramot ezzel. Az ellenállás meghatározása a teljesítmény szükséglet számításával végződik:

P = URe * I

A nyomtatott áramkörbe 5 W-nál magasabb teljesítményű ellenállás nem forrasztható be. Ha a teljesítmény ennél magasabb, akkor dróttal kivezetett ellenállásokat alkalmazhatunk hűtőfelületen, de leginkább új tápegységet választhatunk kisebb kimenő feszültséggel aminél nem lépjük túl a boltban könnyen beszerezhető ellenállások teljesítmény határát.

Zener dióda kiválasztása:

UZener = ( UCEmax * 0.9 ) - Utáp - 0.6V

Az egyenletben UCEmax a kapcsoló eszköz maximális megengedett feszültsége, ami ULN2803 esetén 50V, ULN 2823 esetén 95V. A 0.9 -es szorzó 10% biztonsági tartalékot képez, Utáp a meghajtáshoz alkalmazott tápfeszültség a 0.6 V pedig a Zener diódával az IC belül sorba kapcsolódó dióda nyitó feszültsége. Amennyiben a számított értékű Zener dióda nem szabványos, akkor ennél kisebbet válasszunk.

Mi kell egy komplett rendszerhez ( a mechanikán kívűl ):

Árlista:

Az ismertetett vezérlő elektronika, szerelve, kipróbálva, a nekem előzőleg megadott motor és tápfeszültség adatokhoz beállított ellenállásokkal és Zener diódákkal, 1 db közel 3 m hosszú párhuzamos porti switch kábellel, ( ház, tápegység, motor kábel és csatlakozó nélkül ), 1 hónap visszavásárlási és 2 év normál garanciával áfával 40000 Ft. Az első tíz vevő megkapja hozzá az általam írt G-Code feldolgozó program teszt verzióját ( teszt: olyan állapotban amilyenben a program éppen van ). A cncnet féle programhoz való egyedi bekötésű vezeték, motor csatlakozó, egyedi méretű ( hosszú ) párhuzamos porti csatlakozó szintén rendelhető némi felár ellenében.

A szükséges tápellátás biztosításához: torroid transzformátorok 1-2 db szekunder tekerccsel ( harmadik tekercs 10% felár ellenében ). Minden szekunder tekercs feszültsége egyedileg kérhető. Javasolt szekunderfeszültség és teljesítmény habvágáshoz: 24 V - 150 VA, 30 V - 200 VA, 34 V - 300 VA. Rendelés előtt célszerű az izzószálat beszerezni és lemérni a meglepetések elkerülése végett. Fontos: 24 V -nál nagyobb váltófeszültség és 50 V -nál nagyobb egyenfeszültség már nem minősül érintésvédelmi törpe feszültségnek, tehát a vezetékezésre ugyanazok az előírások vonatkoznak mint a 230 V -os hálózatra ( mivel azonban a hálózattól a kisfeszültségű oldal el van választva ezért az egyik kivezetés érintése nem, de mindkettő érintése viszont okozhat áramütést ). A transzformátorok 1 év garanciával, 1 db fém és 2 db gumi rögzítőtárcsával, beépített hőbiztosítékkal rendelkeznek: 100 VA 6200 Ft, 150 VA 7200 Ft, 200 VA 8800 Ft, 250 VA 10300 Ft, 300 VA 11500 Ft áfával. 5 db és ennél több egyforma transzformátor esetén mindez 20%-al olcsóbban ( 2004 -es adat ).

Amennyiben a vezérlőből nem habvágó, hanem valami egyéb lesz ami nem igényel fűtő teljesítményt, és a léptetőmotor feszültsége 10 V alatti, olcsó megoldásként alkalmazható bontóból beszerezhető AT/ATX PC tápegység, mely 12 V-on 5 A-t legalább biztosítani tud, és külön 5 V-os kimenete is van. Ilyen tápegység alkalmazása esetén a panel áthuzalozható a külső stabilizált táp használathoz.

A vezérlőhöz is használható motor a stepper motor oldalon szerezhető be. Ezek ipari maradék ( új ) példányok, de még az NDK -ból. Ettől eltérő motort, használtan leginkább bontással lehet beszerezni selejtezésre kerülő nyomtatókból.

Amennyiben az itt leírttól eltérő elektronikára, motorra, megoldásra, szerszámgép átalakításra lenne szükség kérem emailben jelezni.

Bekötési információ ( SUBD-25M ):

PinPIC
pin
Description DirectionLPT
pin
LPT register and bit
1.RB0Motor ON
I2C Data
Input-Output
(rbpu)
1.C0 Open Collector
2.RA0Dir1 Input only
(10k pullup)
2.D0  
3.RB3LVP
thru jumper
Input only
in prog mode
3.D1  
4.RA1Dir2 Input only
(10k pullup)
4.D2  
5.RB6Step2
LVP Clock
Input only
(rpbu)
5.D3  
6.RA2Dir3 Input only
(10k pullup)
6.D4  
7.RB5Step3 Input only
(rpbu)
7.D5  
8.RA3Dir4 Input only
(10k pullup)
8.D6  
9.RB4Step4 Input only
(rpbu)
9.D7  
10.RE0Timer Output only10.S6IRQ capable on PC
11.RE1Heat sense Output only11.S7  
12.RB2Heating Switch
sense
Output only
(rbpu)
12.S5 also input for PIC
from switch
13.n.c.free free13.S4free input on PC
14.RB1Heating
I2C Clock
Input-Output
rbpu)
14.C1 Open Collector
15.n.c.free free15.S3 free input on PC
16.MCLR
VPP
Reset
VPP
Input only
(10k pullup)
16.C2 Open Collector
inverted
17.RB7Step1
LVP Data
Input only
Prog I/O
17.C3 Open Collector
18.GND-GND- -18.GND  
19.GND-GND- -19.GND  
20.GND-GND- -20.GND  
21.GND-GND- -21.GND  
22.GND-GND- -22.GND  
23.GND-GND- -23.GND  
24.GND-GND- -24.GND  
25.GND-GND- -25.GND  

A táblázatban megadott LPT port bit jelzések ( a csatlakozás ez esetben mezei switch kábellel történik ): D - az adott port adat regiszterének egyik bitje, S - az adott port státusz regiszterének bitje, C - az adott port control regiszterének bitje ( a párhuzamos portról bővebben itt ).

Léptető motorokról bővebben ( Parker Automation )
Motor technológia tartalomjegyzék
Léptető motorok, PDF ( 215k )
Léptető motor meghajtások, PDF ( 156k )

Párhuzamos portról bővebben
Párhuzamos port imertető

A vezérlőhöz használható néhány alkalmazás:
EMC - Linux alatt működő, ingyenes, fejlett mozgásvezérlő, nem csak szerszámgépek számára.
CncNet - Win9x alatt futó, olcsó, francia habvágó program, repülőgépek, szárnyak vágására.
bbastrodesign - ingyenes távcső vezérlő program.

Néhány érdekes oldal:
majosoft - gravírozógépek, plotterek, tervek, útmutatók.
otocoup - méretes fa megmunkáló gravírozógép, tervekkel.
luberth - plotter, digitális méretleolvasó, software, forrás és link gyűjtemény.
bbastrodesign - számítógép vezérlésű távcső, software és link gyűjtemény.

A kérdéseket és megjegyzéseket emailben lehet feltenni, illetőleg esténként a (29) 351-678 telefonszámon.