Pedig rajta van ez a lehetöség is... reset allati tüs csatik arduino lapot meg elhagyos ugyis!
Előzmény: Varga Ferenc, 2018-12-05 11:25:01 [1310]
dtb | 1922
2018-12-05 12:40:48
[1313]
Hát ha jól értettem amit telefonon beszéltünk, akkor ez kell neked:
Előzmény: Varga Ferenc, 2018-12-05 11:25:01 [1310]
dezsoe | 2934
2018-12-05 12:20:46
[1312]
Szerintem semmi akadálya, ha a lábakat jól kötöd be. Leírás van a neten bőven, például itt. Egy dologgal lehet bajod: ha a printer port nem ad elég határozott jelet, de ez gépfüggő.
Előzmény: Varga Ferenc, 2018-12-05 11:25:01 [1310]
dtb | 1922
2018-12-05 11:46:47
[1311]
Kicsit pontosíthatnál a kérdésen, mi nélkül akarod bekötni (és pontosan mit is)? Arduino nékül, csak a shield-del? Az szerintem nem megy. Csak az ardiuno-val akarod vezérelni a stepper drivert? Annak semmi akadálya, rengeteg leírást találni hozzá a neten.
Előzmény: Varga Ferenc, 2018-12-05 11:25:01 [1310]
Varga Ferenc | 430
2018-12-05 11:25:01
[1310]
Sziasztok. Az lenne a kérdésem, van egy cnc shield v3 van hozzá arduinó, is de e nélkül szeretném bekötni.A Mac3 step dyr jelét szeretném használni, mi a véleményetek meg oldható?
Törölt felhasználó
2018-11-26 12:22:47
[1309]
A szöggyorsulás kapcsán nem pontosan arról beszélsz, amiről én írtam. Egyéb állításid, feltételezéseid se igazak szerintem. Kérlek, gondold át miket is írtál, és azoknak mennyi köze van a TÉNY-ekhez.
Gondoltam hogy ez lesz az amit szeretnél nos akkor kicsit másképp állnék hozzá először is a motorok, eleve nagy osztással kell menjenek, netán áttétellel hogy a felbontás minél finomabb legyen és akkor kijön hogy míg a csévetest fordul pl 1/8-ot akkor a drót helyező motor pedig csak 10et lép most csak mondtam valamit...
lényeg jó felbontással elérhető az amit szeretnél de 100/10 lépés mennyiségnél nem 100 000 /10 000 lépésnél már igen
Köszönöm az "én szerencsém"-ről írt "fölmagasztaló" eszmefuttatásodat. Mindig is tudtam olvasni a sorok között.:) Pontosan ezt vártam Tőled, erre számítottam.
Nem lepődök én meg már semmin. Köszi, de a Robsy CNC vezérlő rendszerekben épp eleget foglalkoztam már ezekkel a feladatokkal, annyira ismerhetsz, imádom a villamos motorok lelkivilágát, hajtásdinamikai kérdéseit. Építettem már 3D nyomtatót is, igaz saját vezérlővel a cs. világ, és G kód nélküli verzióban.
A te szerencséd ezeknél a kütyüknél pedig az, hogy a fejlesztőmérnökök helyetted már megoldották ezeket a mozgásdinamikai feladatokat, és neked csak pár ikon klikkelgetéssel kell törődnöd a deriválási örömök nélkülözése mellett, amikor átküldöd a G kódokat a kis kütyüdbe. Mondjuk még egy kicsit a virtuális grafikákon én csiszolnék ezeknél a programoknál, túl sokat "füllentenek" a csodálatos síklapú nyomtatott felületek mutogatása kapcsán, pedig mint tapasztalhattad a valóság mindig más ezeknél a kinyomtatott dolgoknál. A lényeg az, hogy ez se zavar téged, van aki viszont nem szereti, ha sokat hazudnak neki.
Csak ugyen itt a feladat kapcsán két motort kell egyidejúleg, szinkronban kezelni, és borulnak ezek az egész számos arányú egyszerű programozási lehetőségek a gyorsulási rámpa szakaszoknál.
Javaslom, építs, vagy vegyél egy pár tízezer forintos "mezei" 3D nyomtatót,és kezd el használni a maga nemes egyszerűségében. Meg fogsz lepődni, mire képes manapság pld. az "Arduinós virtuális valóság, vagy...csicsavilág".(ha már őt említetted)
Majdnem jó, amit írtál csak lehagytál egy fontos szócskát, a "szög"-et. Egy léptető motornak szögsebessége, és szöggyorsulása van, nincs neki sebessége, és gyorsulása, ezeket a kifejezáseket egyenes vonalú mozgásra értelmezhetők.
A következtetésed is majdnem jó, csak erre is van egy szakkikfejezés, az adott léptetőmotor start/stop szögsebessége a döntő. Ha ezalatt szórakozunk egy motorral, lehet olyan egyszerűen programozgatni, hogy sebesség egységugrasztva indítom. Egyébként meg kell a szöggyorsulással is foglalkozni, mert az a szerencsétlen léptetőmotor csak forgás nélkül visítva jelzi, az Ardunió gazdája virtuális valóságban él, és azt hiszi, amit lát a csicsavilág felprogramozáskor, az a valóságban is úgy lesz.
Ezt nem értem... " ha a gyorsabban forgó motor szögelfordulásának az idő szerinti első deriváltja nagyobb egy a motorra jellemző értéknél" = Ez lenne a sebesség (RPM) ugye?
"akkor foglalkozni kell a második deriválttal is a programozás kapcsán" = Ez lenne a gyorsulás
Tehát magyarán ha az első motor fordulatszáma nagyobb a névlegesnél (vagy amit el tud érni?), akkor a gyorsulását is figyelembe kell venni a programozáshoz. Jól fordítottam le? De ezzel mit akartál mondani?
Ez így nem elég információ a feladat korrekt megoldásához, ugyanis ha a gyorsabban forgó motor szögelfordulásának az idő szerinti első deriváltja nagyobb egy a motorra jellemző értéknél (ez a 2. eset), akkor foglalkozni kell a második deriválttal is a programozás kapcsán. Csak halkan jegyzem meg, az első esetben 2 db 20 forintos IC-vel is megoldható a feladat pl. 1:1 ... 255 tetszés szerinti n arány beállítási lehetőséggel.
Nem árulok zsákbamacskát, csak egy tekercselő gépet akarok összehozni. A saját kútfejemből már megírtam egy progit, ami működik is, de bíztam benne, hogy létezik egy ennél jobb megoldás is. Az én progim "for-next" és "if" utasításokkal működik.
PSoft | 18696
2018-11-21 18:13:30
[1290]
Ez igaz, de Miklós eddig még, nem írt a "környezetről".:) Én nem értek hozzá, de szerintem biztos megoldható PC nélkül is, egy zsebben lapuló okos telóról. (ha nem, majd a hozzáértők...megmondod):)
Szerintem a megoldandó feladatnak csak egy része a kérdés, az meg arduino esetében ritkán feltételezhető, hogy valaki a pici arduino panel mellé magával cipel egy számítógépet, amin ki tudja adni azt a parancsot.
Mivel egy rutin fut csak egymás után sorba igy követik egyást de nem egyszer igy azért látszik a kapcsolási késés (fordulat) a két művelet kötöz! Ha több művelet lehet egy idöbbe futtatni párhuzamosan multitask millis fügvényel
Amit írsz, az nem szerepel a kódban. Itt csak annyi van, amit írtam. Kap 10 impulzust az X motor, 1-et az Y motor. Az 1-et nem lehet jobban darabolni. A mikrolépések pedig ettől függetlenek, valamint a 200lépés/ fordulat is.
Ha betennéd azt a kódot, amivel próbálod, talán jobban át lehetne nézni, hogy hol a probléma.
Ez csak egész lépéseknél használható, ha 16 mikrolépést, és a motor 200 lépés/fordulatot is beállítom, akkor már nem igen használható, mivel egyik motor mozgatása után kezdi a másik motor mozgatását. Nekem a szinkron mozgás lenne elfogadható.
itt van egy 3 motoros kód UNO pinekkel, CNCshield panellal A4988 vagy DRV8825, mindegy. Ebben a beállításban x 10x többet fordul mint y, z pedig nem forog
step(false, X_DIR, X_STP, stpx); //X forog jobbra, ha balra kell, akkor true step(false, Y_DIR, Y_STP, stpy); //Y forog jobbra, ha balra kell, akkor true step(false, Z_DIR, Z_STP, stpz); //Z forog jobbra, ha balra kell, akkor true
delay(10); // sebességet itt lehet állítani
Természetesen, igazad van, de nem ismerem, hogy milyen meghajtás van tervezve, így csak a megvalósításhoz való elképzelésemet vázoltam. Összedobhatok egy kódot is, ha kell, szerintem DRV8825 érdemes, ha már arduinorol beszélünk, és step dir megoldással.
ebben a módiban, nincs stepper driver, tehát valami tranyó mező vagy tranyók kellenek a meghajtáshoz, de az elv rendes step dir jelet fogadó meghajtóknál is így néz ki, csak akkor a step lábakat kell csak birizgálni
4 timer? csak a mega boardokon van 3 nál több, amiből eleve a rendszer lekap 2 őt!azokat közvetlen nem is éred el csak alányúkálva de a timer1 re direkt van lib és mindent szépen meg lehet vele oldani
1 nek kell lennie, aminek olyan időt kell beállítani hogy mindent végre tudjon hajtani
Amennyiben mindkét motor csak egy irányban kell hogy forogjon, akkor 4 timert kell definiálnod. Egy lesz az A motor indítója (STEP ON, PIN HIGH), 1 a B motot indítója, 1-1 pedig a motorok impulzushosszát vezérli a step jel megfelelő kikpacsolásával (STEP OFF, PIN LOW) A timerek ről itt (is) találsz egy tutorialt, de ezen kívül is van sokmillió Link: Arduino 101: Timers and Interrupts
Igy is lehet, de ha valaki nem annyira jártas a dologban az jobban jár ha keres egy stepper library-t, van arduinohoz egy pár, azokhoz mindjárt van mintapélda is.
Kell egy timer, hogy viszonylag pontos legyen a dolog. pl a timerone.h egy jó lib erre
majd beállítod hogy mennyire legyen gyors a 100 at forduló, és miközben billegeted a lábon a lépés jelet a motor meghajtójának szépen elszámolsz 10 ig és akkor billented a másikét is....
Úgy szeretnéd, hogy a programban fixen legyen a kód megírva, hogy melyik motor mennyit menjen, milyen sebességgel? Vagy van más paraméter is hozzá, mondjuk potméterek, vagy kapcsolók?