Hallo zusammen.
Am Anfang soll erst mal gesagt sein das ich ein µC Neuling bin.
Ich habe folgendes Script zusammengebastelt, wobei ein Schrittmotor von einen Poti ( später Joystick ) gesteuert wird. Bei Mittenstellung steht der Schrittmotor. Je weiter man nach links oder rechts dreht - umso schneller wird der Schrittmotor. Der Richtungswechsel klapt perfekt nur die Geschwindigkeit ist nicht linear.
Was mache ich falsch und kann man das eventuell im Hintergrund laufen lassen, da später nochmal 3 Schrittmotoren dazu kommen und die Schritte gespeichert werden sollen.
Ich habe das RN-Control Board V.1.4 und den 12V Schrittmotor von robotikhardware.de
Code:Declare Sub Motorrechts() Declare Sub Motorlinks() $regfile = "m32def.dat" $crystal = 16000000 'Quarzfrequenz $baud = 9600 Config Adc = Single , Prescaler = Auto Dim Taste As Byte Dim Volt As Single Dim Joy1x As Word 'Variablen für Positionen des Steuerknüppel Dim Joy1y As Integer Dim Focus As Integer Dim Zoom As Integer Dim Faktor As Integer ' Für die Motoren 'Ports für linken Motor Config Pinc.6 = Output 'Linker Motor Kanal 1 Config Pinc.7 = Output 'Linker Motor Kanal 2 Config Pind.4 = Output 'Linker Motor PWM 'Ports für rechten Motor Config Pinb.0 = Output 'Rechter Motor Kanal 1 Config Pinb.1 = Output 'Rechter Motor Kanal 2 Config Pind.5 = Output 'Rechter Motor PWM 1a Alias Portb.0 'Pin als Spule 1a benennen 1b Alias Portb.1 'Spule 1b 2a Alias Portc.6 'Spule 2a 2b Alias Portc.7 'Spule 2b Portb.0 = 0 'Spule 1a definiert auf Null Portb.1 = 0 'Spule 1b Portc.6 = 0 'Spule 2a Portc.7 = 0 'Spule 2b Dim Zeit As Integer Zeit = 1 'Zeit zwischen den einzelnen Schritten (kleiner=schneller) I = 0 Sound Portd.7 , 400 , 450 'BEEP Sound Portd.7 , 400 , 250 'BEEP Sound Portd.7 , 400 , 450 'BEEP Print Print "**** RN-Control 1.4 *****" Print "Das neue Experimentier- und Roboterboard" Print "Weitere passende Zusatzboards bei www.robotikhardware.de" Print Portd.4 = 1 'Motortreiber Spule 1 Enable Portd.5 = 1 'Motortreiber Spule 2 Enable Do Start Adc Joy1y = Getadc(0) Joy1y = Joy1y - 511 Select Case Joy1y Case -10 To 10 JMP Ende Case Else Joy1y = Joy1y - 0 BRMI Links JMP Rechts End Select Links: Joy1y = Joy1y / 51 Joy1y = Joy1y * -1 Zeit = 11 - Joy1y Motorlinks JMP Ende Rechts: Joy1y = Joy1y / 51 Zeit = 11 - Joy1y Motorrechts JMP Ende Ende: Loop End Sub Motorrechts() 1a = 1 : 1b = 0 : 2a = 1 : 2b = 0 'Schritt 1 Waitms Zeit 1a = 1 : 1b = 0 : 2a = 0 : 2b = 0 'Schritt 2 Waitms Zeit 1a = 1 : 1b = 0 : 2a = 0 : 2b = 1 'Schritt 3 Waitms Zeit 1a = 0 : 1b = 0 : 2a = 0 : 2b = 1 'Schritt 4 Waitms Zeit 1a = 0 : 1b = 1 : 2a = 0 : 2b = 1 'Schritt 5 Waitms Zeit 1a = 0 : 1b = 1 : 2a = 0 : 2b = 0 'Schritt 6 Waitms Zeit 1a = 0 : 1b = 1 : 2a = 1 : 2b = 0 'Schritt 7 Waitms Zeit 1a = 0 : 1b = 0 : 2a = 1 : 2b = 0 'Schritt 8 Waitms Zeit End Sub Sub Motorlinks() 1a = 0 : 1b = 1 : 2a = 1 : 2b = 0 'Schritt 1 Waitms Zeit 1a = 0 : 1b = 1 : 2a = 0 : 2b = 0 'Schritt 2 Waitms Zeit 1a = 0 : 1b = 1 : 2a = 0 : 2b = 1 'Schritt 3 Waitms Zeit 1a = 0 : 1b = 0 : 2a = 0 : 2b = 1 'Schritt 4 Waitms Zeit 1a = 1 : 1b = 0 : 2a = 0 : 2b = 1 'Schritt 5 Waitms Zeit 1a = 1 : 1b = 0 : 2a = 0 : 2b = 0 'Schritt 6 Waitms Zeit 1a = 1 : 1b = 0 : 2a = 1 : 2b = 0 'Schritt 7 Waitms Zeit 1a = 0 : 1b = 0 : 2a = 1 : 2b = 0 'Schritt 8 Waitms Zeit End Sub
Lesezeichen