[HowTo] Stappenmotoren

Pagina: 1 2 3 Laatste
Acties:
  • 58.916 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • lexophilia
  • Registratie: Januari 2004
  • Laatst online: 26-03-2023
Ok thnx voor je reactie.

Ik ben onlangs bij de electronica boer geweest en heb een ULN2004A aangeschaft. Heb er ook een unipolaire stappenmotor gekocht voor 1,15(onbetwist de goedkoopste stappenmotor die ik hier iemand heb zien kopen :) )

Nu heb ik mn unipolaire stappenmotor aangesloten volgens het duidelijke scheme van thunderbolt.

Afbeeldingslocatie: http://www.xs4all.nl/~loosen/elektronica/Stappenmotor%20unipolair%20schema%20uln2003.png

Mijn probleem zit hem in visual basic als ik eerlijk mag zijn is de visual basic howto een beetje onduidelijk.

Er wordt niet goed aangegeven wat WAAR hoort te staan ik denk dat ik het al uitgevogelt heb...was weer een zwaar mysterieus avondje met al dat speurwerk.

Ik heb bij form dit staan :


Dim intStepCount As Integer
Dim strDirection As String

Private Sub cmdTurnL_Click()
strDirection = "l"
tmrStep.Enabled = True <=======Hier krijg ik melding 424 dat tmrStep niet kan worden verklaart
End Sub

Private Sub cmdTurnR_Click()
strDirection = "r"
tmrStep.Enabled = True <=======Hier krijg ik melding 424 dat tmrStep niet kan worden verklaart
End Sub

Private Sub cmdStop_Click()
tmrStep.Enabled = False
End Sub

Private Sub Form_Load()
intStepCount = 1
End Sub

Private Sub tmrStep_Timer()
Select Case intStepCount
Case 1
Out Val(888), Val(32) <=======Stel ik hier nou de interval in? lijkt me wel eig...
Case 2
Out Val(888), Val(64) <=======en hier
Case 3
Out Val(888), Val(16) <=======en hier
Case 4
Out Val(888), Val(8) <=======en hier?^^^^^^
End Select
If strDirection = "r" Then
intStepCount = intStepCount + 1
If intStepCount = 5 Then intStepCount = 1
Else
intStepCount = intStepCount - 1
If intStepCount = 0 Then intStepCount = 4
End If
End Sub
In de module heb ik gekopieerd wat er werd aangegeven wat gekopieerd moest worden maar die zit ook niet te emmeren het is voornamelijk de code in de form.

Waar komt deze code te staan de form of de module?

Function Bin2Dec(Num As String) As Long
Dim n As Integer
n = Len(Num) - 1
a = n
Do While n > -1
x = Mid(Num, ((a + 1) - n), 1)
Bin2Dec = IIf((x = "1"), Bin2Dec + (2 ^ (n)), Bin2Dec)
n = n - 1
Loop
End Function

Alvast bedankt en als ik iets fout doe dan hoor ik het graag.

BTW ik doe dit ter verruiming van mij kennis ik heb altijd al wat met visual basic en in de toekomst nog wat emt c++ willen gaan doen, dus gelieve niet alleen met een kant en klare oplossing te komen maar ook graag een uitleg WAT ik fout doe :) anders leer ik er niet van.

Naar aanleiding van dit topic ben ik wel al plannen gaan maken voor een deelbare hoedenplank die met behulp van stappen motoren omhoog moet gaan komen, ideën hierover zijn ook welkom...ik heb nog helemaal geen plan van aanpak maar zat al wel te denken aan bijv 2 stappen motoren 1 aan elke kant die beiden tegelijkde hoedenplank omhoogdrukken ofzo...Hoe zit dat met tandwielen hoe moet ik dat aanpakken?

Acties:
  • 0 Henk 'm!

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Ik ben niet bekent met visual basic, meer c/c++/java
Dit stuk
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Select Case intStepCount
Case 1
Out Val(888), Val(32) 'Geeft 0100000 naar buiten op de paralelle poort lijkt me
Case 2
Out Val(888), Val(64) 'Geeft 1000000 naar buiten
Case 3
Out Val(888), Val(16) 'Geeft 0010000 naar buiten
Case 4
Out Val(888), Val(8)  'Geeft 0001000 naar buiten
End Select
       'Waarom juist deze volgorde weet ik niet,
       'ik zou eerlijk 32 en 64 omwisselen.
If strDirection = "r" Then 'Bepaald de richting van de motor r = rechtsom.
intStepCount = intStepCount + 1 'Gaat naar de volgende stap
If intStepCount = 5 Then intStepCount = 1
       'Zorgt dat bij stap5 die terug naar 1 gaat
       'Dat dus de 4 stappen in een lus komen.
Else   'Hier gaat de motor linksom
intStepCount = intStepCount - 1
If intStepCount = 0 Then intStepCount = 4
          'Zelde als bij rechtsom, dus voor die lus.
End If
End Sub

Die code is dus voor de motor aan te sturen, de delay zal je ergens anders moeten instellen.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
Function Bin2Dec(Num As String) As Long 
Dim n As Integer 
n = Len(Num) - 1 
a = n 
Do While n > -1 
x = Mid(Num, ((a + 1) - n), 1) 
Bin2Dec = IIf((x = "1"), Bin2Dec + (2 ^ (n)), Bin2Dec) 
n = n - 1 
Loop 
End Function

Dit is om een binair getal om te zetten naar een decimaal, waarom dat is en waar dat moet komen weet ik niet.

Ook de 2 fouten die je krijgt in het begin van de code weet ik niet waarom. Ik heb alleen in c/c++ een stappenmotor aangestuurd. Dat is volgens mij gemakkelijker, misschien moet je dat eens proberen. Ik heb hier nog wat vb code liggen voor onder windows of linux normaal.

Acties:
  • 0 Henk 'm!

  • Rowwan
  • Registratie: November 2000
  • Laatst online: 06:10
Waarschijnlijk bestaat 'tmrStep' gewoon niet... Gokje: Het is een timer die de functie 'tmrStep_Timer' aan moet roepen..

Acties:
  • 0 Henk 'm!

  • lexophilia
  • Registratie: Januari 2004
  • Laatst online: 26-03-2023
Ok uhm dan ga ik het in c++ proberen, heb verder nog geen ervaring in programmeren en wil het wel graag leren. Dus het is een mooi project om mee te leren ook.

Ik heb wel ervaring met HTML enzo.

@Rowwan
Als ik dat zo lees zou ik de code dus ook kunnen proberen door tmrstep te vervangen door tmrStep_Timer

ga meteen ff poging doen en als t nie werkt ga ik c++en :)

Acties:
  • 0 Henk 'm!

  • Nocturno
  • Registratie: September 2001
  • Laatst online: 30-12-2024
zet OP je form een timer (icoontje van een klokje in je toolbar) en noem deze : tmrStep
dan zal het allicht beter gaan ;)

Acties:
  • 0 Henk 'm!

  • Rowwan
  • Registratie: November 2000
  • Laatst online: 06:10
lexophilia schreef op dinsdag 29 augustus 2006 @ 18:04:
@Rowwan
Als ik dat zo lees zou ik de code dus ook kunnen proberen door tmrstep te vervangen door tmrStep_Timer
C++ gaat niet helpen als je niet begrijpt wat je doet.. (Is niet flauw bedoeld). NocTorno heeft gelijk.

'tmrstep' is een variabele van het type 'Timer'
'tmrStep_Timer' is een functie die uiteindelijk wordt aangeroepen door je timer.

Acties:
  • 0 Henk 'm!

  • lexophilia
  • Registratie: Januari 2004
  • Laatst online: 26-03-2023
Hmm ik wil c++ zoiezo leren weet alleen niet goed hoe ik moet beginnen dacht dat dit wel eens leuk was om te beginnen :)

Niemand is geboren met c++ kennis right? :)

@Nocturno

Thnx voor je advies...doe wat Noc zegt en al je problemen verdwijnen als sneeuw voor de zon :)


Als het goed is doet mn eerste zelf geschreven progje het nu heb als even geprobeerd maar heb tot noch toe geen beweging gehad in de stappenmotor, wel wordt hij heel heet das over het algemeen niet echt een goed teken. Ik heb hier al ergens gelezen dat je er dan een component tussen moet zetten zodat je de stappenmotor niet de hele tijd bekrachtigd houdt.

Nouja ik pruts wel ffies aan ik heb zo'n vaag vermoeden dat ik nog een aanpassing in mn code moet maken omdat mn ULN2004 is aangesloten op pin 6 tot 9.

Ik vindt dit allemaal rete interessant by the way :)

Acties:
  • 0 Henk 'm!

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Heb je helemaal geen beweging? Of gaat de motor wat zitten trillen? Je moet eens kijken hoe de aansluitingen van de motor intern zijn. Doormeten met een Ω-meter of zo.

Dan moet je zien dat je de juiste spoelen op de juiste aansluiting hebt. Dat die warm wordt is inderdaad omdat de spoel bekrachtigd is. Kan niet zoveel kwaad, zolang je hem kan aanraken zit die onder de 60°. Ik weet niet wat die mag hebben, maar die van mij werd loeiheet bij stilstand.

Je zou er inderdaad iets kunnen tussen maken dat de spoelen geen stroom krijgen bij stilstand of zo, maar dan heb je ook geen houd-koppel meer.

Wat je ook kan doen is een aantal ledjes aan je ULN2004 hangen (denk ook aan de weerstandjes en de polariteit.) en kijken hoe de volgorde juist is.

Acties:
  • 0 Henk 'm!

  • lexophilia
  • Registratie: Januari 2004
  • Laatst online: 26-03-2023
kluyze schreef op woensdag 30 augustus 2006 @ 11:44:
Heb je helemaal geen beweging? Of gaat de motor wat zitten trillen? Je moet eens kijken hoe de aansluitingen van de motor intern zijn. Doormeten met een Ω-meter of zo.

Dan moet je zien dat je de juiste spoelen op de juiste aansluiting hebt. Dat die warm wordt is inderdaad omdat de spoel bekrachtigd is. Kan niet zoveel kwaad, zolang je hem kan aanraken zit die onder de 60°. Ik weet niet wat die mag hebben, maar die van mij werd loeiheet bij stilstand.

Je zou er inderdaad iets kunnen tussen maken dat de spoelen geen stroom krijgen bij stilstand of zo, maar dan heb je ook geen houd-koppel meer.

Wat je ook kan doen is een aantal ledjes aan je ULN2004 hangen (denk ook aan de weerstandjes en de polariteit.) en kijken hoe de volgorde juist is.
Jij bent hip daar had ik zelf nog niet eens aan gedacht gewoon eerst ledjes erop kijken of het programma uberhaupt wel iets aanstuurt(kan namelijk nogsteeds fout in programma zitten tuulk)

Ga het meteen ff proberen ik piost nog wel ff wat het resultaat is :)

Acties:
  • 0 Henk 'm!

  • lexophilia
  • Registratie: Januari 2004
  • Laatst online: 26-03-2023
lexophilia schreef op woensdag 30 augustus 2006 @ 19:25:
[...]


Jij bent hip daar had ik zelf nog niet eens aan gedacht gewoon eerst ledjes erop kijken of het programma uberhaupt wel iets aanstuurt(kan namelijk nogsteeds fout in programma zitten tuulk)

Ga het meteen ff proberen ik piost nog wel ff wat het resultaat is :)
Vette shit maar het werkt niet...

als ik er ledjes op zet stuurt ie zoiezo al verkeerd aan...er gaan drie ledjes branden alle 3 behalve de eerste..

Ook als ik mijn zelf geschreven app run blijven ze alle 3 branden..

- Of de app stuurt niet goed aan en stuurt niks naar lpt
-LPT dll die ik hier bij de ts gedownload heb werkt niet
- dat 1e ledje is gewoon stuk :P
- dit is 1 ding maar wel 1tje waar ik zeker van ben: ik bak er helemaal niks van...

Acties:
  • 0 Henk 'm!

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Denk eraan dat de ULN2004 de uitgangen naar de GND trekt.

Als je wil wil ik wel een progje sturen waar ik zeker van ben dat het werkt in c. Of een deel van de code als je het liever zelf maakt.

[ Voor 16% gewijzigd door kluyze op 03-09-2006 21:10 ]


Acties:
  • 0 Henk 'm!

Anoniem: 188190

Hallo,

Ik heb een servo motor uit een scanner gehaald met de volgende draadkleuren: rood, wit, bruin, zwart, geel. Tussen wit bruin zwart en geel meet ik 60Ohm
alles tussen rood, en overige kleuren is 30 Ohm ik heb dergelijke manieren geprobeerd maar wat de motor doet is stap vooruit, halve stap, vooruit, stap terug of iets dergelijks. Weet iemand waar dit aan ligt of kan iemand me tips geven zodat ik het gevaarte vooruit kan laten draaien? Ik gebruik gewoon de ULN2004 en het programa lpt-port (stuurt 1000 0100 0010 0001 e.d.)

Alvast bedankt Tim

Acties:
  • 0 Henk 'm!

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Staat er iets op de motor? een kenplaatje/sticker of zo? Je kan misschien een foto of zo van die motor laten zien, zo is het redelijk moeilijk om te zien wat motor je hebt.

Je zegt zelf servo, waarom? Een servo stuur je niet hetzelfde aan als een stappenmotor.

Acties:
  • 0 Henk 'm!

  • Chesta
  • Registratie: November 2004
  • Laatst online: 20-02-2023
ik heb laatst allemaal ouwe printers en scanner weggegooit :'(

het aansluitschema in de startpost is down

End of Transmission


Acties:
  • 0 Henk 'm!

Anoniem: 188190

Oeps, ik bedoel natuurlijk stappenmotor. st425 190112 staat er op.. meer niet het is een zeer kleine stappen motor. 41,8mm bij 15,8mm Mischien dat je hier wat aan hebt. Ik ga vanavond nog ff proberen verschillende combinaties te maken met de aansluiting op de stappen motor.

Alvast bedankt gr, Tim

Acties:
  • 0 Henk 'm!

Anoniem: 203901

Kan iemand misschien de plaatjes in de ts weer oplappen Ik ben nl wel benieuwd naar wat schema's die missen.

En ik heb een stappen motor met andere kleur draden :?

blauw
2X grijs
wit
geel
roze

hoe stuur ik dit dan aan? Help

Acties:
  • 0 Henk 'm!

  • TD-er
  • Registratie: Januari 2000
  • Laatst online: 29-04 00:03
Anoniem: 203901 schreef op maandag 08 januari 2007 @ 18:36:
Kan iemand misschien de plaatjes in de ts weer oplappen Ik ben nl wel benieuwd naar wat schema's die missen.

En ik heb een stappen motor met andere kleur draden :?

blauw
2X grijs
wit
geel
roze

hoe stuur ik dit dan aan? Help
Kwestie van de spoeltjes met een Ohm meter nameten
Mijn gok is dat het 2 spoeltjes zijn, elk met een middenaftakking.

Afbeeldingslocatie: http://www.ibiblio.org/obp/electricCircuits/AC/02448.png
(plaatje afkomstig van deze site)

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)


Acties:
  • 0 Henk 'm!

  • BasilFX
  • Registratie: Mei 2004
  • Laatst online: 02-05 15:47

BasilFX

BasilFX

Voor mensen die graag een Bipolaire stappenmotor willen aansturen, kijk eens naar de 'l6228n'l. Deze chip heeft direct onboard logic om deze gelijk aan de LPT\Microprocessor te hangen. Hij kan verder tot 50v aan bij 1,4A dacht ik. Ik gebruik zelf deze om 2 bipolaire motoren aan te sturen van een oude printer.

Aansturen kan heel simpel door een clock te genereren (frequentie bepaalt de snelheid). Enkele andere lijnen bepalen andere parameters, zoals de richting, halve stap/hele stap, enabled, etc. Alleen een clock genereren is voldoende, maar dan moet je de overige lijnen wel aan GND of +5V hangen.

[ Voor 32% gewijzigd door BasilFX op 08-01-2007 21:42 ]

http://www.basilfx.net


  • jaapb13
  • Registratie: November 2007
  • Laatst online: 18-05-2023
Ik heb een robot arm, misschien heeft iemand mijn topic gezien, die niet meer werkt. Ik ben nu van plan om de oude controller eruit te halen en er een nieuwe in te zetten. In de arm zelf zitten 6 stepper motoren die op 12 volt lopen en 4 fase hebben. Uit elke motor komen zes draden. voor meer info zie Schakeling maken voor het aan sturen van een robotarm. Hier staat ook een plaatje in hoe onze motoren zijn aan gesloten.

Graag tips.

Anoniem: 705078

Topic is al erg oud. Op hoop van goede zegen! Ik heb uit een printer 2 motoren gehaald, zitten maar 2 draadjes aan..kunnen dit stapppenmotoren zijn?

  • vincent_1971
  • Registratie: Juni 2004
  • Nu online
Anoniem: 705078 schreef op donderdag 11 augustus 2016 @ 17:03:
Topic is al erg oud. Op hoop van goede zegen! Ik heb uit een printer 2 motoren gehaald, zitten maar 2 draadjes aan..kunnen dit stapppenmotoren zijn?
Nee zijn dc cq ac motoren. Wellicht type en merk hier neerzetten? Een stappenmotor heeft minimaal 4 draden.

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 07:41
Anoniem: 705078 schreef op donderdag 11 augustus 2016 @ 17:03:
Topic is al erg oud. Op hoop van goede zegen! Ik heb uit een printer 2 motoren gehaald, zitten maar 2 draadjes aan..kunnen dit stapppenmotoren zijn?
Nee, stappenmotoren hebben altijd 4 of 6 aansluitingen. 2 draden klinkt als een dc of ac motor.

Anoniem: 705078

Type en merk kan ik helaas niet achterhalen zijn allebei blanco. Toch maar even neuzen op marktplaats :-) bedankt!
Pagina: 1 2 3 Laatste