Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Stappenmotor erug traag

Pagina: 1
Acties:
  • 294 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een stappenmotor aangeloten op mijn mijn paralelle poort door middel van de driver (is) ULN2803A.
De stappenmotor heeft 4 spoelen.

Ik heb in delphi een programmatje gemaakt dat die stappenmotor laat draaien.
Het programma zorgt er voor dat alle spoelen ombeurten (in de goede volgorde)
magnetich worden.

Als ik de spoelen met tussenposen van 1msec magnetisch laat worden draait de
stappenmoter achter maar met een snelheid van ongeveer 60 RPM.
Ik wil die stappenmotor sneller laten draaien, hoe kan ik dit doen :?
Die tussentijd van 1 msec kan niet kleiner.

  • iMars
  • Registratie: Augustus 2001
  • Laatst online: 10:54

iMars

Full time prutser

geen idee, sorry ...

maar ik ben wel geïnteresseerd in de aansluitschema ... misschien kan ik je dan wel helpen...

Koop hier mijn P1 reader :)


  • Gaius
  • Registratie: September 2001
  • Niet online
Kan het misschien zijn dat die tijd te kort is?
Dat het magnetische veld te snel wisselt, waardoor de traagheid van de as te groot is en dus niet goed op toeren kan komen.

Misschien lul ik maar wat, maar wie weet :+

  • MeneerKrab
  • Registratie: Augustus 2000
  • Laatst online: 27-11 23:03
kan dat niet gewoon door een hoger voltage?

iig wij hebben een robot (victo robot) op een 18v ipv de standaard 12v en hij draait/beweegt sneller met de stappenmotors die hij heeft.

Verwijderd

Topicstarter
Afbeeldingslocatie: http://www.southwest.com.au/~jfuller/sio5schematic.gif

ik heb dit schema gebruikt

op pin 18, 17, 16 ,15 heb ik dan de spoelen van stappenmotor aangesloten in plaats van die ledjes.

de voeding van 5V= staat over de pinnen 9 en 10, met negatief op pin 9

ik heb geen zenerdiode gebruikt, dit as niet echt nodig.

Verwijderd

Topicstarter
De stappenmotor komt uit een oude matrixprinter en de spanning over de spoelen tijdens het draaien is al iets hoger dan in de printer.

Hij moet sneller kunnen draaien want in die printer heeft hij een hoog toerental (hoe hoog weet ik niet, zo snel kan ik niet tellen ;) )

  • McFizban
  • Registratie: Juli 2001
  • Laatst online: 22-11 17:54

McFizban

Hackito ergo sum.

Een aantal mogelijkheden:

1) Gebruik je full stepping (1 wikkeling tegelijk actief) of half stepping (2 wikkelingen tegelijk actief).
Als je half stepping gebruikt kun je hem nog een factor 2 sneller te krijgen door over te stappen op full stepping.

2) zoals boven vermeld: misschien ga je wel te snel, probeer eens 10 ms delay. Als hij dan 10 keer zo langzaam is weet je dat dit het probleem niet is en moet je naar stap 3.

3) hoeveel stappen heeft je stepper? Als hij iets van 500 stappen per omwenteling heeft is je delay van 1 ms echt veel te lang om hem snel rond te kunnen draaien.

Het voltage verhogen bij een stappenmotor maakt hem niet sneller, aleen krachtiger. De stap snelheid regel je met de snelheid van aansturen.

Haardware: meuk die zo oud is dat het alleen nog nuttig is voor in de openhaard.


Verwijderd

Topicstarter
1) ik heb full stepping en half stepping geprobeerd, dit maakt weinig verschil uit.

2) als ik een delay neemt van 10 ms gaat alleen maar langzamer.

3) ik weet niet hoeveel stappen hij maakt voor 1 rotatie, maar ik kan de delay niet kleiner dan 1 ms zetten dat is mijn prbleem. Misschien is er een andere oplossing :s

  • McFizban
  • Registratie: Juli 2001
  • Laatst online: 22-11 17:54

McFizban

Hackito ergo sum.

Om het aantal stappen per omwenteling te meten:
-Zet een merkteken op de as
-Geef een aantal stappen
-Kijk hoe ver de as is gedraait
-Maak een schatting hoe veel stappen er nodig zijn voor een volledige draai
-Geef zo veel stappen
-Tweak het aantal totdat je precies rond bent en
-Voilá, het aantal stappen per omwenteling!

Zo heb je een aardig nauwkeurig idee hoe veel stappen je motor heeft per omwenteling.

Haardware: meuk die zo oud is dat het alleen nog nuttig is voor in de openhaard.


Verwijderd

Topicstarter
Dat gaat nu alleen ff niet :s
want ik zit nu in een ander besturingsysteem dan dat dat motertje op werkt.

maar ik schat zo ongeveer +_ een stap of 50 misschien zoon beetje.
Dit is dus een schatting he

  • McFizban
  • Registratie: Juli 2001
  • Laatst online: 22-11 17:54

McFizban

Hackito ergo sum.

Ik ken Delphi niet zo goed. Ik weet dat je je programma kan compileren, maar kan je het in een interpreter mode draaien?
-Zo ja, doe je dat? En als je het dan compileert?
-Zo nee, laat maar. 8)7

Haardware: meuk die zo oud is dat het alleen nog nuttig is voor in de openhaard.


Verwijderd

Topicstarter
je moet altijd eerst compileren en dan runnen.
Als je niet compileerd, doet die dat zelf

Verwijderd

Superdeluxe-dummy-mode om voor de test althans kleinere delays te maken: bouw een "lege" lus van b.v. 100.000 stappen, en meet de tijd die je proggie daarovr doet. Stel dat dit 10ms is, dan is een 1ms delay dus een lus van 10.000 stappen, en 0.1ms een delay van 1000 stappen.... voila! Perfect voor de test :P

  • McFizban
  • Registratie: Juli 2001
  • Laatst online: 22-11 17:54

McFizban

Hackito ergo sum.

Verwijderd schreef op 02 oktober 2002 @ 22:58:
Dat gaat nu alleen ff niet :s
want ik zit nu in een ander besturingsysteem dan dat dat motertje op werkt.

maar ik schat zo ongeveer +_ een stap of 50 misschien zoon beetje.
Dit is dus een schatting he
50 stappen is niet veel, maar kan heel goed kloppen.
Je zou verwachten dat je iets minder dan 1000 stappen per sec kan doen.
Bij 50 stappen zou je motor dus 20 omwentelingen per seconde kunnen maken.

Ergens zit dus een extra delay.

Ben je al een keertje al debuggend door je programma heen gelopen om te kijken of hij bij iedere loop ook maar echt één keer je motor aanstuurt en ook maar één keer een delay uitvoert.
En vergeet dan niet om te kijken wat er naar je printerpoort wordt gestuurd. (Ik heb er een leuk programma voor, maar het linkje heb ik op m'n werk. Heb je dus nog te goed)

Haardware: meuk die zo oud is dat het alleen nog nuttig is voor in de openhaard.


Verwijderd

Topicstarter
jah dat is een oplossing, maar dat is mijn probleem niet.
Ik wil alleen weten hoe ik mijn stappenmotor sneller kan laten draaien.
die 1ms is dus de snelste delay die ik heb

  • McFizban
  • Registratie: Juli 2001
  • Laatst online: 22-11 17:54

McFizban

Hackito ergo sum.

Bij 1 ms delay draait hij 20 keer per sec rond. Er is dus niet een totale delay van 1 ms, maar van 20 ms.
Je moet die 20 ms omlaag zien te brengen!
Het lijkt er op dat je je delay meer dan eens aanroept.
Ik kan me nl. niet voorstellen dat het aanroepen van je printerpoort zo veel tijd in beslag neemt.
(en zonder die 1 ms?)

Haardware: meuk die zo oud is dat het alleen nog nuttig is voor in de openhaard.


  • TD-er
  • Registratie: Januari 2000
  • Laatst online: 24-11 07:50
+/-60 rpm, dus 1 omw/sec.
+/- 50 stappen, dus zeer waarschijnlijk 48 stappen/omw.
Dat wil dus zeggen dat je maar 48 stappen per sec volbrengt.
Dat is ongeveer 20 ms/stap.
Oftewel je minimale timing is het probleem niet.
Wanneer je ineens geen stroom meer door een spoel laat lopen, probeert die spoel om de stroom constant te houden en zal een zgn. tegen-EMK leveren. Oftewel zelf een spanning op wekken. Dit kun je een beetje tegen gaan door anti-parallel een diode over de spoel te zetten. (de anode aan de +9V en kathode aan de andere aansluiting van de spoel, van je schakeling) Deze diode zal de spanning die de spoel opwekt zeer snel doen afnemen en je voorkomt schade aan de rest van de electronica.

Je zou ook de spoelen via een aantal transistoren kunnen laten schakelen, dan weet je zeker dat de stroom die de spoeltjes trekken niet beperkt wordt door het gebruikte buffer-IC

Verder is je buffer IC een HEX-inverter, oftewel een "1" op de input geeft een "0" op de output. Hou je rekening hiermee bij het aansturen?
Anders kan een NOT wel uitkomst bieden ;)

Een goedkope voeding is als een lot in de loterij, je maakt kans op een paar tientjes korting, maar meestal betaal je de hoofdprijs. mijn posts (nodig wegens nieuwe layout)


  • McFizban
  • Registratie: Juli 2001
  • Laatst online: 22-11 17:54

McFizban

Hackito ergo sum.

Hmmm, de 1 ms... Is dat een windows call? Die heeft nl. een minimum van 5 ms of zo.

Als je eenvoudig iets korters wilt hebben zou je een lege for-loop kunnen gebruiken. (Alleen om te testen natuurlijk)

Haardware: meuk die zo oud is dat het alleen nog nuttig is voor in de openhaard.


  • McFizban
  • Registratie: Juli 2001
  • Laatst online: 22-11 17:54

McFizban

Hackito ergo sum.

Oeps, ik zie nu wat voor driver ic je gebruikt (ik dacht dat hij wat luxer was... Silly me!)
Inderdaad, je hebt toch wel aan je extra diodes gedacht?

Maar dan nog, als je je delay verhoogt naar 10 ms. Gaat hij dan met 6 omwentelingen per min. draaien of met meer?

[ Voor 0% gewijzigd door McFizban op 02-10-2002 23:24 . Reden: Moet gaan slapen.... ]

Haardware: meuk die zo oud is dat het alleen nog nuttig is voor in de openhaard.


Verwijderd

Topicstarter
ik denk ook dat er ergens anders tyd verloren gaat, omdat het verschil tussen 1 sec en 1ms nou niet echt geweldig groot is

ik heb wel al eens een test prog gemaakt met 2 knoppen start en stop. en dus 1 delay loop.
ook heb ik vershcilende dll's gebruikt, maar het maakte allemal niets uit.

maar bedankt vor jullie reacties tot zo ver
ik wordt er nu een beetje :s van.
morgen weer een dag, dan zie ik el eer verder.
mochten jullie nog suggesties hebben., je mag altijd mailen naar actdriesen@hotmail.com

Verwijderd

Verwijderd schreef op 02 oktober 2002 @ 21:39:
Ik heb een stappenmotor aangeloten op mijn mijn paralelle poort door middel van de driver (is) ULN2803A.
De stappenmotor heeft 4 spoelen.

Ik heb in delphi een programmatje gemaakt dat die stappenmotor laat draaien.
Het programma zorgt er voor dat alle spoelen ombeurten (in de goede volgorde)
magnetich worden.

Als ik de spoelen met tussenposen van 1msec magnetisch laat worden draait de
stappenmoter achter maar met een snelheid van ongeveer 60 RPM.
Ik wil die stappenmotor sneller laten draaien, hoe kan ik dit doen :?
Die tussentijd van 1 msec kan niet kleiner.
Als je de standaard timer in de Delphi VCL gebruikt haal je lang niet de 1 ms interval, omdat deze timer zeer onnauwkeurig is.
Het is beter om de Multimediatimer te gebruiken, aangezien deze wel nauwkeurig de 1 ms haalt en callback ondersteund, of dat je voor een nog hogere frequentie de high performance timer gebruikt.
De high performance timer heeft alleen als nadeel dat deze gepolled moet worden, waardoor er onderbrekingen kunnen ontstaan als er veel taken in Windows tegelijk gedraait worden.

Verwijderd

Topicstarter
en waar kan ik deze timers vandaan halen?
Ik heb gekeken op verschillende delphi pagina's waar je timer conponenten kon downloaden maar of ze werken niet of het haalt niets uit.

Verwijderd

Verwijderd schreef op 03 oktober 2002 @ 13:18:
en waar kan ik deze timers vandaan halen?
Ik heb gekeken op verschillende delphi pagina's waar je timer conponenten kon downloaden maar of ze werken niet of het haalt niets uit.
De performance timer is toegankelijk via de windows api functies:

BOOL QueryPerformanceFrequency(
LARGE_INTEGER *lpFrequency // address of current frequency
);

en

BOOL QueryPerformanceCounter(
LARGE_INTEGER *lpPerformanceCount // address of current counter value
);

De multimedia timer (wel mmsystem in het uses blok opnemen) is toegankelijk via de functie:

MMRESULT timeSetEvent(
UINT uDelay,
UINT uResolution,
LPTIMECALLBACK lpTimeProc,
DWORD dwUser,
UINT fuEvent
);

Als je deze functies in delphi in typt en dan op f1 drukt komt er wel een helppagina te voorschijn waar een uitgebreidere uitleg over deze timers staat.
Pagina: 1