Fórum témák
» Több friss téma |
Fórum » Léptetőmotorok (vezérlése)
Sziasztok!
Segítséget szeretnék Tőletek kérni. Van egy régi fényeffektem amiben PIC-es vezérlés volt eredetileg, de elszállt cakk pakk az egész. Van benne egy ábra tárcsa amit léptetőmotor mozgat és egy opto kapu amivel a null pozíciót meg lehet keresni. Egy Arduino Uno-val odáig eljutottam, hogy egész lépésben beállítom null pozícióba, majd ábránkánt léptetem 12 majd 13 lépést. a végén pedig vissza az egész. Sajna a motor néha lépést téveszt és kb. 3 ciklusonként újra kell pozícionálnia (egy-két lépéssel az optó mellé lép visszaforgatásnál). A motor 12 V-os, tekercsenként 33 Ohm és a névleges árama 400 mA ,de két tekercset hajtva 800 mA ami stimmel is. Egy L293D hajtja meg a motort, percenként 60 fordulat sebességel. Mitől lehet a tévesztés? A motor eléggé melegszik, mivel a vez fesz. folyamatosan rajta van. Nem tudom ki kell-e bírnia. Az arduino stepper könyvtárát használom és mivel két tekercset energizál hiába egész lépés, de a pólusok közé áll be és ha elvenném a tápot, akkor bebillen az egyik fix pozícióba. Ha egyszerre csak egy tekercsre kapcsolok áramot, akkor gondolom megy "sima" egész lépésbe, de ha megállítom honnan fogom tudni, hogy melyik legyen a következő lépés logika? Sajna a mikrokontroller programozást is csak ezen apropón kezdtem el, így eléggé nehézkesen megy. Minden segítséget köszönök előre is! Elnézést, ha hosszúőra sikerült.
Szia!
Percenként 60? Azaz másodpercenként 1? Azzal nem hibázhat. Próbáld meg, hogy nem indulsz azonnal max. sebességgel, hanem használj gyorsítási és lassítási rámpát. Megálláskor pedig állítsd be a két tekercs közül valamelyikbe, és így nem fog odébb lépni. Vagy használj egytekercses meghajtást, úgysem kell nagy nyomaték, meg finom járás.
Tudtok valahol mintakodokat ASM-ben léptetömotor hajtásra amiben gyorsulás meg lassulás is van? Az Atmelne vann C kodjai, de azokat én nem értem.
Kösz.
Szia!
Igen, másodpercenként 1 fordulat. A gyorsításnak nem látom értelmét, mert két ábra között csak 12 lépés van. Ha egy tekercses üzemben hajtom, akkor gondolom megírom a programban az egyes lépések plogikajat, majd egymas utan nemi szünettel léptetem? De, ha megállítom honnan fogom tudni megmondani melyik lépéssel folytassa a következő 12 lépést? Még csak hasonló példaprogramot sem találtam.
Az ábra szempontjából lehet, hogy nincs értelme, de valahogy ki kell találnod, miért téveszt lépést. Ha nem akarsz rámpát, akkor csak lassítsd le.
De mondom, 1-2 ezres fordulatig jó kellene legyen. Nem lehet, hogy a referencia kereső algoritmusban számolsz el valamit? Nem 200 lépéses motort használsz? Vagy nem azonos távolságra vannak az ábrák? Nem értem, mi a gond megállás után. A progi mindig tudja, hogy hol tart, nem? Kikapcsoláskor meg referenciára kell állni.
Neked az a 4 (8) állapotot be kell irni egy táblázatba, és egy mutatoval (pointer) kell lépkedned egymás után a táblázatban.
Addig amig a motir áram alatt van addig nincs gond. Ha megszünik majd ujra indul akkor onnan fogja kezdeni, ahol éppen van.
Leírom jelenleg, hogy megy:
Először egyet-egyet lép a motor míg meg nem találja az opto jelét. Innen egy "if"el kilép és 4 sec. Várakozás után 12 lép, majd 4 sec várakozás és 13-at lép stb. (azért 12 majd 13 lépés, mert elvben 12,5 kellene lépni, de így a beállással nincs gond és nem kellett szórakozni a fél lépéssel). 8 ábra után visszaforgatok annyit amennyit előre ment. Elvben az opto-nál kellene megállnia, de 2-3 ciklusonként nem sikerül és újra pozicionál. Massawa talán eltalálta mit nem értek. Jelenleg a step.() parancsot használom és lehet, hogy amiatt téveszt, hogy mikor kivárás után elindul nem a megfelelő lépéssel kezd. Ez a táblázat meg pointer jól hangzik, csak nem ismerem. Bocsánat, ha értetlen vagyok, de az összes motorvezérlési oldalt néztem már és szinte mindenhol csak az alapokig jutnak.
Segíts még egy kicsit megértenem.
8 ábra van a tárcsán? Akkor 25-öt kell lépni, nem?
Hajtsd rendesen kéttekercses módban és minden ábrához tegyél pozícionáló jelet az optónak , így csak az iránnyal kell foglalkoznod a lépésszámmal ne. Ja és ha rendesen hajtod akkor kereken 25 lépés kell ...
A hozzászólás módosítva: Jan 31, 2015
Ez egy kicsit több,mint egy félkör. 9 ábra van rajta,de ebből egy kitakarás. Teljes körön 16 ábra lenne,így jön ki a 12,5 lépés.
Ha tisztességesen betartja a vezérlés modját, akkor csak egyetlen optora van szüksége, amivel az induláskor összeszinkronizálja a motort a vezérléssel. Innen már csak lépegetnie kell oda vissza.
Egyszerübb az unipoláris (5 vezetékes) motor meghajtása.
A mechanika adott, nem szeretnék hozzányúlni. Már elfogadható lenne csak bosszant,hogy miért téveszt. Arra tippelek,hogy pl. megáll a 3 lépés logikán egy tekercses módban, de továbbindulaáskor nem a 4. Logikát kapja, hanem az 1-est és esetleg visszalép mielőtt előremenne,de a lépésszámba beletartozik.
A cél egy olyan progi ami emlékszik az utolsó szekvenciára és onnan lépeget tovább.
Van egyáltalán pointer ( mutato) a programodban?
Azt a 4 lépést: $05 $06 $0A $09 egy mutatonak kell kiválasztania, ami mindig csak egyet léphet elöre/hátra az utolso után az elsö jön
Nincsenek mutatók. Az arduino ide stepper könyvtárát használom. A step parsnccsal megadom,hogy mennyit lépjen és kész. Ezért gyanakszom rá, mert nem ismerem a ligikát amivel hajtja a kimeneteket. Másodpercenként 2 lépés sebességgel is ez a helyzet. Amikor egxesével leprogramoztam a lépéseket annak egy 293D látta kárát.
Amugy most én is szivok egy mega328al. Ha ki is törlöm a flasht, még mindig hibát jelez.
Ha elindul az enyém akkor majd megnézem lépésröl lépésre. A tiedben a step és Dir a mutato ( a softwaren belül). Ott kell megnézni, hogy hogyan kezeli a lépést ha irányt váltasz. Mint korábban irtam a mutato mindig csak egyet lephet elöre vagy hátra és ezt a proginak kell kezelnie. Már láttam olyan progit, aminé a DIR ujrainditja az algoritmust, ami autkmatikusan hibával jár. Én sajnos csak ASM-ben tudok ugy ahogy programozni, másban nem. ![]() A hozzászólás módosítva: Jan 31, 2015
A programozás annyiból áll, hogy meghívom a stepper könyvtárat, definiálom a 8,9,10,11 lábat kimenetnek, a 12- est bemenetnek (ez az opto), megadom, hogy 200 lépés egy körülfordulás, sebességnek percenként 60.
Ezután csak step(1)' if digitalRead(12) high /mig meg nem találja az optót addig lépeget 1-et a 60 fordulatnak megfelelő frekivel, de ezt is ő szàmolja ki/ Delay(4000); Mystepper step(12); Delay(4000); Mystepper step(13); ......... Mystepper step(-76); //ez a visszaforgatás// Ennyi a program, és nem igazán látni mi alapján dolgoztatja a mocit... Ebben is atmega328 van.
Esetleg lenne olyan progid amiben meg tudnám nézni a lépések kezelésèt?
A neten nem találtam csak oda-visszaforgatósdit...
Én is éppen egy mega328-t büvölök. Már végre elfogadta a kodot, de valamit én turtam el, igy még mindig nem megy.
![]() Van valamilyen szimulatorod (aVR Studio) abban lépegethetsz, én is azt fogm csinálni délután...
Sajnos nincs. Egyenlőre azt se tudom hová rakja a lefordított fájlt, csak simán feltöltöm az arduinora, és megy vagy nem megy...
A hozzászólás módosítva: Jan 31, 2015
Sziasztok, Epson FX 1000 és 1050 nyomtatót bontottam múltkor. A nyomtató fejet mozgató léptetőmotor feszültségére lennék kíváncsi mert nincs a motoron semmilyen felirat. Az célravezető lehet ha a trafóját kimérem (nagy trafó két piros és két kék vezetéke van, vagy a motor tekercseinek ellenállásából esetleg lehet következtetni, hogy 24V-os vagy csak 12)?
Ilyen motor.
Léptetőmotoroknak elsősorban nem a feszültsége érdekes hanem az árama. Bizonyos határok között nem számít a feszültség (sőt, a nagyobb feszültség még előnyös is). A bontott motorok pont ebből kifolyólag problémásak, mivel nem tudni mennyi is a névleges áramuk. Mérd ki a tekercseket, hogy megállapítsd melyik ér melyik, majd kösd rá egy motorvezérlőre. Ezután állítsd be a legkisebb megengedett áramot, majd pörgesd ide oda a motort pár percig. Nézd meg milyen meleg. Ha nem melegedett fel nagyon, akkor növelheted az áramot. Játszd ezt addig, ameddig elfogadhatónak tartod a melegedését és így meglesz a kb. árama a motornak.
A hozzászólás módosítva: Feb 5, 2015
Nyomtatóból kitermelt tranzisztorokkal (ami gyárilag vezérelte a motort) vagy FET-ekkel jobb meghajtani a motort?
A fet jobb, de ha megvan a gyári vezérlője, miért nem azt használod? Azon mérj feszültséget.
Akkor össze kell raknom a nyomtatót?
![]()
Nem kell összerakni
![]() Az eredetiből csak a meghajtó fokozat kell, a vezérlést neked kell majd megcsinálni. A hozzászólás módosítva: Feb 5, 2015
Az Epson leírás szerint:
Type 4-phase 200-pole stepper motor Voltage Driving: +36DC Holding: +5V DC Coil Resistance 11 0hm +-7% 25°C per phase Current Driving: 0.68A (max.) Hoding: O. 15A (typical) Excitation 1-2 phase, 2-2 phase
Kerestem, de én nem találtam. Köszönöm szépen. A leírtak szerint 150mA 5V tartja a pozícióját. A végén még nekem is lesz egy kis CNC gépem
![]()
Közben már elindult a vezérlöm és valoszinü, hogy az arduino kodja hibás. Az én minta kodom is ezt csinálta, irányváltáskor lépést vesztett, mert a gyári kodba nincs beépitve az irányváltáskor a lepéstartás. Már átirtam a kodot, igy most már jo. Nem tudom, hogy az arduinoba mit lehet vele csinálni.
Sziasztok!
Segítségeteket kérném, nemrég vettem egy szettet, gondoltam kipróbálom az otthoni cnc építést, és vettem egy 1axis felszerelést. Nos rajz szerint összekötöttem de sajnos valamilyért csak akkor pörög fel a motor ha a mach3ban az x-y-z tengelyt az output settingnél a dir és pul értéket azonos értékre állítom (pl: 2;3) a motoron is azt veszem észre hogy melegedne, nemtudom mi lehet a baj próbáltam utánna olvasni stb. A tab - távirányítónál nyomom a fel és balra nyilat zúg a motor és pörög. Elképzelhető hogy az A+ A- és a B+ B- értékek vannak elkötve? Előre is köszönöm! ![]() |
Bejelentkezés
Hirdetés |