PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : schrittmotor geschwindigkeit



Felix H.
10.03.2008, 18:03
Hi,

eine vllt doofe frage... aber ich wollte folgendes realisieren:

Ein kleiner schrittmotor mittels Transen an 4 Pins vom AVR. Es werden immer zwei gleichzeitig geschaltet un einen weiteren schritt zu machen. Insgesamt 4 verschiedene codes gibt es. Hi ein Auszug aus meinem Programm:


If Pina.1 = 0 Then
Portb.0 = 1
Portb.1 = 0
Portb.2 = 0
Portb.3 = 1
Waitms 10
Portb.0 = 0
Portb.1 = 0
Portb.2 = 1
Portb.3 = 1
Waitms 10
Portb.0 = 0
Portb.1 = 1
Portb.2 = 1
Portb.3 = 0
Waitms 10
Portb.0 = 1
Portb.1 = 1
Portb.2 = 0
Portb.3 = 0
Waitms 10
Else
End If
Pina.1 = 1

Der Schrittmotor müsste so doch so lange laufen wie ich auch den knopf an Pina.1 drücke. Jetz läuft der Motor so ja bei 200 S/U recht langsam. Soll ja auch so sein. Aber wie kann ich die bedingung einfügen das wenn ich den knopf länger als 2 sekunden drücke, der motor den turbo einlegt. Müsste ja recht einfach zu ändern sein, z.b. wenn man die Waitms dann auf 5 setzen würde.... wie mach ich das?

Danke schonmal ;-)

mull
10.03.2008, 22:07
Wieso nimmst du nicht einen Poti-Joystick und kiest am getadc kanal die spannusn aus und kannst dann mit der if anweisung das ganze in schritten verändern, sprich, wenn ADC < 4 dann waitms 4 .....

Gruss

Ratber
10.03.2008, 23:00
Man kann es auch noch etwas einfacher machen.

Die Routine zur ansteuerung der Portpinne lasen wir mal so stehen.
Beim Befehl "Waitms" sind auch Variablen zulässig also zb. "Waitms X"
Damit kann man alle Wartebefehle zusammen beeinflussen.
zb. in der Form wie Felix vorgeschlagen hat.

Für die Zeit bis der "Turbo" einsetzt kann man einfach den Timer einsetzen.
Der wird bei Tastendruck gestartet und beim Loslassen wieder gestoppt und zurückgesetzt.
Läuft er solange das er seine Zielzeit erreicht dann wird die Wartezeit des Steppers umgeschaltet.

Der nächste Schritt ist die Massenträgheit zu berücksichtigen also eine Rampe einzubauen damit der Stepper auch hinterherkommen kann.

merlin63
24.03.2008, 15:22
hallo felix

also doofe fragen gibt es nicht, sondern nur doofe antworten. O:)
du hast ja leider nicht geschrieben, was für eine betriebsspannung an deinem motor anliegt :-b
ist aber ein wichtiger faktor, was die endgeschwindigkeit angeht. na und die waits kannst glaube ich auch rausschmeissen [-X

es wurde ja schon erwähnt....ne rampe müstest auch noch einfügen...für den anlauf und das abbremsen....so ca. 0.1 sec müßten reichen.
also viel erfolg noch.

gruß thomas