Danke für deine Ausführung - macht Sinn!
Also mit diesem kleinen Code läuft der Motor schon mal...
Code:
$regfile = "M168def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600
'Programmkonfiguration
Config Portb.4 = Output
Config Portc.1 = Output
Config Portb.1 = Output
Config Pind.4 = Input
Puls Alias Portb.1 'Pul
Puls = 0
Richtung Alias Portc.1 'Dir
Richtung = 1
Freigabe Alias Portb.4 'Ena
Freigabe = 1
S1 Alias Pind.4 'Taster
S1 = 1
'Hauptprogramm
Do
If S1 = 0 Then
Waitms 1
Puls = 0
Waitms 1
Puls = 1
Else
Puls = 0
End If
Loop
End
Den Schrittmotor habe ich parallel an den Treiber angeschlossen. Ansonsten wie im Code zu sehen:
PinB.4 = Freigabe (obwohl der Motor auch ohne diesen Anschluss läuft - warum?)
PinC.1 = Richtung (das klappt mit 1 = Linkslauf / 0 = Rechtslauf)
PinB.1 = Puls (die Frequenz die hier einfach über ein waitms erzeugt wird - hier 2ms => 500Hz => 0.5kHz richtig?)
PinD.4 = Taster S1 (die Frequenz soll erst erzeugt werden wenn Taster gedrückt wird)
Den Treiber habe ich so eingestellt:
Current RMS = 3A
Puls / Schritte = 400
400 Schritte finde ich recht wenig aber bei den anderen Einstellungen läuft er nur sehr viel langsamer - habt ihr irgendwelche Tipps dazu?
...und macht das denn überhaupt Sinn die Frequenz so zu erzeugen oder sollte man da besser eine PWM nutzen?
Der nächste Schritt wäre die Geschwindigkeit über ein Poti zu steuern - aber da hört es jetzt erstmal völlig auf bei mir...
Hab ja frei heute - ich probier mal rum!
Danke für deine Unterstützung i_make_it
- - - Aktualisiert - - -
...ok, hab mal ein wenig mit dem waitms gespielt - den 2. Wert durch 10 geteilt. Bei 400 Schritten läuft der Motor sehr viel schneller...
Wenn ich die Schrittweite am Treiber von 400 auf z.B. 6400 umstelle läuft der Motor entsprechend langsamer. Klar, er muss ja mehr Schritte bei gleicher Frequenz machen. Ok, dachte ich Frequenz nochmals erhöhen - aber bringt nix - Geschwindigkeit bleibt gleich. Wenn man es mit der Frequenz übertreibt z.B. 0,2ms (5kHz) dann steht der Motor und Summt nur laut...
...irgendwelche Ideen wie ich es besser machen könnte?
Greez,
p@
- - - Aktualisiert - - -
...hier mal der Code mit Schalter für Richtungswechsel...
Code:
$regfile = "M168def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600
'Programmkonfiguration
Config Portb.4 = Output
Config Portc.1 = Output
Config Portb.1 = Output
Config Pind.4 = Input
Config Pind.5 = Input
Puls Alias Portb.1 'Pul
Puls = 0
Richtung Alias Portc.1 'Dir
Richtung = 1
Freigabe Alias Portb.4 'Ena
Freigabe = 1
T1 Alias Pind.4 'Taster zum Frequenzerzeugen
T1 = 1
S1 Alias Pind.5 'Schalter zum Richtungswechsel
S1 = 1
'Hauptprogramm
Do
If T1 = 0 Then
Waitms 1
Puls = 0
Waitms 0.1
Puls = 1
Else
Puls = 0
End If
If S1 = 1 Then
Richtung = 1
Else
Richtung = 0
End If
Loop
End
Lesezeichen