Hallo zusammen, uihhh neues Forum-Design, seit wann isn das ? Also habe meinen Stepper am laufen. Bisher natürlich alles sehr "dirty" programmiert, also vollkommen ohne Timer/Counter/PWM.... Bisher dreht der auch nur in eine Richtung und das unentwegt. Das kann ich sowohl im Halb-, als auch im Vollschritt machen.... Meine Fragen wären also: 01) Wenn ich den Motor nun andersrum laufen lassen wollte, msste ich dann nur die Werte in der Tabelle umdrehen? (hier Halfstep) PORTC = 0x03; schlaf(1); PORTC = 0x01; schlaf(1); PORTC = 0x09; schlaf(1); PORTC = 0x08; schlaf(1); PORTC = 0x0C; schlaf(1); PORTC = 0x04; schlaf(1); PORTC = 0x06; schlaf(1); PORTC = 0x02; schlaf(1); Also z.B. aus PORTC = 0x03 wird dann PORTC = 0xFC ??? Also das dann immer ganz genau umgekehrt angesteuert wird...? 02) Wie kann ich es realisieren, das der Motor nur einen HalfStep macht, dazu muss ich dann doch die Position wissen, in der sich der Anker befindet. Und somit dann jedes mal den letzten Step merken, damit ich beim nächsten mal weiss wo ich weiter machen muss, oder ?? Danke
um ihn rückwärts laufen zu lassen, muss du deine Tabelle einfach nur rückwärts durchlaufen. Welchen Stepper hast du denn wie an deinem Controller dran? Die einzelnen Schrittwerte sehen etwas merkwürdig aus.
irgendein unipolar motor ausm alten scanner hat 12V versorgun und 2 spulen mit mittenanzapfung, die auf einen draht gelegt wurde, somit hat der stepper also 5 drähte... habe ihn an meinem atmega16 angeklemmt dazwischen sitz pro strang ein widerstand 1k, 1 BC639, 1 freilaufdiode 1N 4148 läuft alles wunderbar, richtig schön leise und im kreis, wird auch nicht zu warm de motor... nur wenn ich jetzt einen Halbschritt machen will, wie mache ich das dann ?? muss dann doch die Position vom vorherigen male speichern, und dann beim nächsten halbschritt ab der stelle weiterfahren, oder ??
das ist doch das Grundprinzip eines Schrittmotorantriebs. Der Motor weiß nicht wo er grade steht. Dazu brauchst du eine Variable mit der die Schritte des Motors gezählt werden. Diese Variable legt dann auch fest, welche Zeile deiner Tabelle gerade aktuell ist. Du kannst ja eine Tabelle für Halbschritt im RAM ablegen. Für Vollschritt musst du dann halt einen Wert überspringen.
Vollschritt: es wird immer nur eine Wicklung bestromt 1 -> 2 -> 3 -> 4 -> 1 -> 2 -> 3 -> 4 (...) Halbschritt: um einen Halbschritt zu machen werden zwischen den Vollschritten, in denen nur eine Wicklung bestromt wird, zwei Wicklungen gleichzeitig bestromt. 1 -> 1+2 -> 2 -> 2+3 -> 3 -> 3+4 -> 4 -> 4+1 -> 1 (...) Gruß, Magnetus
Normalerweise sollte immer nur EINE Wicklung unbestromt sein, zum Steppen eine zweite abschalten, im nächsten Schritt die vorige Spule bestromen: 0111 0011 1011 1001 1101 1100 1110 0110 wären 4 Steps.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.