Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotorprogrammierung mit Bascom
Gunnar.Wild
30.01.2008, 15:58
Hallo zusammen
ich will einen Schrittmotor mit Bascom programmieren und ihn mit dem AVR Board ansteuern. Hat jemand eine Idee bzw Beispielprogramm? Ich habe 2 Taster zur Verfügung und er sollte langsam hochlaufen und dann wieder langsamer werden. Dies soll er solange machen bis ich taste. Dann soll er stehen bleiben. Hab schon angefangen aber häng gerade bei der Zeit fest.
Schon mal schönen Dank für Eure Hilfe!
Gruß
ich hab nen bipolaren Schrittmotor über L293D so angesteuert:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1600000
Dim A As Byte
Config Pina.0 = Input
Config Pina.2 = Input
Porta.0 = 1
Porta.2 = 1
Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Portc.3 = 1
A = 0
Do
If Pina.0 = 0 Then
Waitms 300
If A < 4 Then
A = A + 1
Else
A = 1
End If
End If
If Pina.2 = 0 Then
Waitms 300
If A > 1 Then
A = A - 1
Else
A = 4
End If
End If
If A = 1 Then
Gosub Macheschritt1
End If
If A = 2 Then
Gosub Macheschritt2
End If
If A = 3 Then
Gosub Macheschritt3
End If
If A = 4 Then
Gosub Macheschritt4
End If
Loop
Declare Sub Macheschritt1
Declare Sub Macheschritt2
Declare Sub Macheschritt3
Declare Sub Macheschritt4
Sub Macheschritt1
Portc.0 = 0
Portc.1 = 1
Portc.2 = 0
Portc.3 = 1
Waitms 20
End Sub
Sub Macheschritt2
Portc.0 = 0
Portc.1 = 1
Portc.2 = 1
Portc.3 = 0
Waitms 20
End Sub
Sub Macheschritt3
Portc.0 = 1
Portc.1 = 0
Portc.2 = 1
Portc.3 = 0
Waitms 20
End Sub
Sub Macheschritt4
Portc.0 = 1
Portc.1 = 0
Portc.2 = 0
Portc.3 = 1
Waitms 20 '
End Sub
End
Weis nicht ob die Verzögerungen notwenig sind. Ich glaub so könntest du auch das langsam Hochfahren lösen. Über zwei Taster hab ich ihn einen Schritt nach links bzw. rechts machen lassen.
Gunnar.Wild
30.01.2008, 16:58
Erst mal danke für die schnelle Hilfe.
Sieht schon sehr gut aus. Problem bei mir ist nur das die Drehzahl langsam steigert bis zu einem Endwert und danach soll er selbständig stoppen und wieder von alleine langsam hochfahren, bis ich einen Taster drücke.
Vieleicht fällt dir ja hierzu noch was ein.
Ich denk da irgendwie an einen Timerder ständig die Werte erhöht oder so. Oder eine Art Schieberegister der den Wert in kleinen Schritten erhöht.
Gruß \:D/
stefan_Z
30.01.2008, 23:10
FOR / NEXT Schleife?
Gunnar.Wild
31.01.2008, 22:58
for/next Schleife? wie soll ich die anwenden? Kannst du mir ein Beispiel schicken?
Gruß
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.