Ich habe jetzt sämtliche Kabelpositionen durchprobiert Gelb auf 1A, 1B, usw. , der Schrittmotor dreht sich nicht. Er zuckt jedesmal kurz, wenn ich den Strom einschalte.
Woran kann es liegen. Hier mein Programm. Gibts da evtl. einen Fehler?
Code:
' PWM Testprogram
'''''$prog , 255 , &B11011100,
$prog , 255 , &B11011001,
$regfile = "m2560def.dat"
$hwstack = 82 '80
$framesize = 68 ' 64
$swstack = 68 '44
$crystal = 16000000 'Quarzfrequenz
$baud = 19200
Config Pind.5 = Output
Led Alias Portd.5
Config Pinc.0 = Output ' Stiftleiste JP 2; Pin 3; PC0
Stepper1_reset Alias Portc.0
Config Pinc.1 = Output ' Stiftleiste JP 2; Pin 4; PC1
Stepper1_rotational_direction Alias Portc.1
Config Pinc.2 = Output ' Stiftleiste JP 2, Pin 5; PC2
Stepper1_enable Alias Pinc.2
Dim Stepper1_speed As Integer
Echo Off
' Bei dem Motortreiber 18V15 von Pololu liegt die PWM Frequenz (kHz) bei max. 40 kHz, siehe Doku des Motorboard auf Seite 3
' Formel zur kHz-Berechnung: Ausgangsfrequenz = (Quarzfrequenz/Prescale ) /(Timerauflösung*2)
' Quarzfrequenz = $crystal = 16000000
' Bei 16 Bit Timer: Prescale = 1, 8, 64, 256, 1024 für Timer1 Seite 164 der Doku für ATMEGA2560
' Bei 8 Bit Timer/ Counter2: Prescale = 1, 8, 32, 64, 128, 256 , 1024
' Timerauflösung = Bit, bzw. Pwm = 8, Bit ist dann 8. Mit dem Wert Bit wird die Zahl 2 hochgenommen => 2 hoch 8 = 256
' (16000000:1024):(256*2) = 30,517578125 kHz
' Timer1 ist ein 16 Bit Timer, wird in diesen Fall auf 8 Bit gesetzt.
'Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1024 ' Stiftleiste JP 1; Pin 24
' (16000000:1024):(256*2) = 30,517578125 kHz
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1024 ' 3,814697265625 ' Stiftleiste JP 1; Pin 24
Timer1 = 16
Led = 0 ' LED einschalten
Stepper1_enable = 1 ' Stepper1 ausschalten
Wait 1
Stepper1_enable = 0 ' Stepper1 einschalten
Wait 1
Stepper1_reset = 1
Waitms 1
Stepper1_reset = 0
Waitms 1
Stepper1_reset = 1
Stepper1_rotational_direction = 1
Stepper1_speed = 100
Wait 5
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Do
Toggle Led
Waitms 250
' Der max. Wert von Compare1a liegt bei 2 hoch Bit-Wert => 2 hoch 8 = 256. Da ab 0 gezählt wird, ist der max. Wert für einen 8 Bit-Timer 255
Compare1a = Stepper1_speed ' Stiftleiste JP 1; Pin 24
Loop
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End
Lesezeichen