Ik heb stappenmotpren van v Dijken electronica 3,15V en per spoel 3,15 Ohm.
Nou stuur ik ze aan via mijn parrallelepoort door een met VB6 gemaakt Progje.
Ik vind ze alleen niet zo snel draaien, Ik gebruik een voeding van 6V en een interface van transistoren Tip122.
Wat kan ik hier aan doen zodat ze sneller gaan draaien ??
een interface? een programma? een manier van aansturen?
Full step, halfstep? microstep?
Hoeveel delay heb je in je programma?
er zit wel een fysischmaximum aan de snelheid van de stappenmotor, maar denk niet dat je daar al aan zit
MEER INFO?
frequentie van schakelen verhogen?
hoe ziet het programma er uit waar je de boel mee aanstuurd?
en hoe ziet de hardware er uit? toch niet rechtrsteeks hoop ik?
Ik heb de frekwentie moeten aanpassen anders werkt het niet, de motor wilde dan niet draaien. En ik heb een voeding van 6V 3Amp. de volle 3 Amp kan er door, er zit geen stroom begrenzing op.
klein is fijn
Moderator
Als je je stappenmotoren aanstuurt via de parallele poort dan kan je het wel een beetje vergeten als je meer snelheid wil, dat kan die poort en windows niet aan.
Nee, dat vermoeden had ik al, maar ik dacht dat het misschien ook temaken had met de delay`s die ik noodgedwongen moest gebruiken. Tussen iedere puls zit er 2 ms delay.
Je hebt een voeding van 6 volt en 3.15 ohm per winding.
Er kan dus nooit 3 ampere gaan lopen. Als je de step frekwentie op gaat voeren zal door de zelfinductie van de motoren nog minder stroom gaan lopen.
Oplossing is om een stroomgestuurde driver te nemen en dan met 30 of 40V te voeden. Of als je het simpel wilt houden en veel energie wilt verstoken kun je grote serieweerstanden gebruiken.
Op 25 maart 2007 22:48:19 schreef Don`t Know:
Nou stuur ik ze aan via mijn parrallelepoort door een met VB6 gemaakt Progje.Ik vind ze alleen niet zo snel draaien, Ik gebruik een voeding van 6V en een interface van transistoren Tip122.
Hoe ziet je wachtlus er uit? Met VB timer kom je niet boven de 20 Hz, met 'Sleep' kom je niet boven de 50Hz. Je moet een ander soort timer hebben of zelf een wachtlus schrijven. Iets maken dat op alle computers werkt is helaas niet simpel, maar als je altijd dezelfde computer gebruikt kun je een wachtlusje maken door uitproberen. Bijv.
Dim i As Long
Dim k As Long
DoEvents
For i = 0 To 1000
For k = 0 To 10000
Next k
Next i
Op 25 maart 2007 22:51:44 schreef klein is fijn:
Als je je stappenmotoren aanstuurt via de parallele poort dan kan je het wel een beetje vergeten als je meer snelheid wil, dat kan die poort en windows niet aan.
Dat valt nogal mee.
[Bericht gewijzigd door ikkedus op ]
of je zorgt ervoor dat je een string met 'X stappen rechtsom' stuurt naar een uC, die ervoor zorgt dat het uitgevoerd wordt op hoge snelheid
Hoi klein is fijn
***dat kan die poort en Windows niet aan***
Kun je me dat ook uitleggen waarom dat niet zou willen,
Heb alle Windows versies gebruikt (95.98.2000.XP en vista),en altijd de snelheid kunnen regelen.
Vr
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Wat ik wel eens gezien heb in de oude 5.25" floppy drives is dat ze bij het bekrachtigen van een winding, even kortstondig 12V erop werd gezet. De normale bekrachtiging is dan 5V. Dat deden ze met een extra transistor die via een C werd aangestuurd.
Dus bij elke stap stond er even een puls van 12V op, daarna valt dat snel terug naar 5V. De stepper krijgt zoe wat extra "pit".
sNiks
Wie wat bewaard, die heeft wat.
Een poosje terug had ik ook zo'n zelfde probleem met de parallelle poort. Hierbij kwam ik niet boven de 100 Hz uit. Met een bepaalde functie (welke ik niet meer weet) kon je de nauwkeurigheid van 'sleep()' verbeteren tot 1 ms. 1 kHz was voor mij nog steeds te weinig.
Het verschil met dit geval was dat ik C programeerde.
Uiteindelijk heb ik de snelheid kunnen opvoeren met de functies "QueryPerformanceFrequency" en "QueryPerformanceCounter".
Als deze functies ook beschikbaar zijn onder VB kan kan je hetzelfde truckje uitvoeren als ik heb gedaan.
Ergens in de chipset van een pc zit een counter die ongeveer op 3 MHz loop (kan verschillen per computer).
Met "QueryPerformanceFrequency" kan je de frequente van de counter uitlezen en je gewenste periodetijd bepalen. Met de functie "QueryPerformanceCounter" kan je de huidige waarde van de counter uitlezen.
Door eerst de counter uit te lezen en je periode tijd bij deze waarde op te tellen, weet je bij welke waarde van de counter actie moet ondernemen.
Er is geen interrupt of wat dan ook, je moet in een while-lus de counter polen.
LET OP !!!
Het is geen garantie dat de gewenste timing wordt gehaald, dit komt omdat Windows niet realtime is.
Ik heb hier nog kunnen achterhalen dat een parallelle poort tot 2MB/s kan verwerken, dus ongeveer 2 MHz moet voor bepaalde poorten geen probleem zijn.
[edit]
Zelf heb ik getest tot ongeveer 500 kHz, helaas niet precies kunnen nameten met een scoop.