Ich habe mich jetzt auch mal an die Schrittmotoren gewagt und erstmal den 12Euro Bausatz von Pollin und den HOWARD Motor zusammengewerkelt. Das funktionierte auch ganz gut, außer dass das Loch vom Kühlkörper eine ganze Lochlänge zu weit oben war.
Heute habe ich mich dran gemacht eine eigene Software dafür zu entwickeln. Nach einer viertel Stunde die Inpout32.dll zu Studieren mittels den Beispielcodes vom CodeArchiv(Vielen Dank NicTheQuick und lefaje) gelang es mir schon den Schrittmotor im Vollschritt laufen zu lassen. Das ganze habe ich dann weiter ausgebaut und das hier ist daraus entstanden:
Code: Alles auswählen
; Schrittmotoransteuerung mit dem Bausatz für 12Euro von Pollin und dem HOWARD 325704 Motor
; Autor: Daniel Brall (DarkDragon) (überglücklich, dass es funktioniert :-) )
; Benutzung auf eigene Gefahr!
; Dank geht an NicTheQuick und lefaje für die Beispielcodes
#HALF_STEP = 0 ; Halb Schritt Modus
#COUNT = 200 ; Schritte insgesamt
#DELAY = 15 ; Verzögerung
#PORT = $378 ; LPT Port
Structure SStep
bValue.b
EndStructure
NewList Steps.SStep()
; Es kann auch etwas eigenes sein:
CompilerIf #HALF_STEP = 1
AddElement(Steps()) : Steps()\bValue = %1000
AddElement(Steps()) : Steps()\bValue = %1010
AddElement(Steps()) : Steps()\bValue = %0010
AddElement(Steps()) : Steps()\bValue = %0110
AddElement(Steps()) : Steps()\bValue = %0100
AddElement(Steps()) : Steps()\bValue = %0101
AddElement(Steps()) : Steps()\bValue = %0001
AddElement(Steps()) : Steps()\bValue = %1001
CompilerElse
AddElement(Steps()) : Steps()\bValue = %1000
AddElement(Steps()) : Steps()\bValue = %0010
AddElement(Steps()) : Steps()\bValue = %0100
AddElement(Steps()) : Steps()\bValue = %0001
CompilerEndIf
; Inpout32.dll öffnen und vorbereiten:
If OpenLibrary(0, "inpout32.dll")
*out = GetFunction (0,"Out32")
*in = GetFunction (0,"Inp32")
If *out And *in
; Datenregister ist für uns am wichtigsten, trotzdem definiere ich die anderen 2 Register,
; weil von PIN 10/11 auch noch eine Leitung zum Bausatz geht(Vermutlich aktueller Status).
d_reg = #PORT
s_reg = #PORT+1
c_reg = #PORT+2
If CountList(Steps()) > 0
For k=1 To #COUNT
SelectElement(Steps(), k%CountList(Steps()))
CallFunctionFast(*out, d_reg, Steps()\bValue)
Delay(#DELAY)
Next k
EndIf
Else
MessageRequester("ERROR", "Library functions of inpout32.dll not found!", #PB_MessageRequester_Ok)
EndIf
CloseLibrary(0)
Else
MessageRequester("ERROR","Library inpout32.dll not found",#PB_MessageRequester_Ok)
EndIf
Wer schon etwas passendes Zuhause hat, wie z.B. das Netzteil oder das Sub-D Verbindungskabel braucht es nicht nochmal bestellen. Die Platine kann maximal 24V/2A und minimal 0,5A an den Schrittmotor weitergeben.pollin hat geschrieben:Menge Best.Nr. Artikelbezeichnung Einzelpreis Gesamtpreis
--------------------------------------------------------------------------------------
1 94-350139 Netzgerät PL152, 0...15V/2A 39,95 EUR 39,95 EUR
1 94-810027 Schrittmotorplatine, Bausatz 12,95 EUR 12,95 EUR
1 94-830143 Messleitungen mit Krokodilklemmen, 0,95 EUR 0,95 EUR
1 94-310335 Schrittmotor Howard Ind. 1-19-4203 2,95 EUR 2,95 EUR
1 94-720115 Sub-D-Verbindungskabel, 25-polig, 1,60 EUR 1,60 EUR
--------------------------------------------------------------------------------------
Verpackungspauschale (0,85% von 58,40 EUR) 0,50 EUR
Versandkostenpauschale 7,00 EUR
Die Gesamtsumme exkl. MwSt. beträgt 56,81 EUR
Die Gesamtsumme inkl. MwSt. beträgt 65,90 EUR
[EDIT]
Da war ein kleiner Bug drin, sollte jetzt behoben sein .