Hallo, da ich einen neuen Schrittmotor mit 4096 Schritten pro Umdrehung schnell ausprobieren wollte habe ich auf die Schnelle ein Arduino Mega Board genommen um die fertien Progammteile zu verwenden. stepper_One_Step_at_Time der Lauf ist aber unerwartet ruppig. Jetzt wollte ich mal zu den 4 Vollschritten die 4 Halbschritte hinzufügen, jemand eine Idee wo man das findet. Habe eine Datei stepper.h .cpp ausfindig gemacht wo folgendes drinsteht Step C0 C1 C2 C3 1 1 0 1 0 2 0 1 1 0 3 0 1 0 1 4 1 0 0 1 wird diese .h Datei überhaupt verwendet oder ist das eher eine Erklärung, spielen da noch andere Dateien rein. Würde gerne die Schrittfolge so aussehen lassen 1010 1000 1001 0001 0101 0100 0110 0010 Habe mit dem Arduino noch nicht viel am Hut programmiere sonst die AVRs in .asm
:
Bearbeitet durch User
Thomas O. schrieb: > Jetzt wollte ich mal zu den 4 Vollschritten die 4 Halbschritte > hinzufügen, jemand eine Idee wo man das findet. > > Habe eine Datei stepper.h .cpp ausfindig gemacht wo folgendes drinsteht > Step C0 C1 C2 C3 > 1 1 0 1 0 > 2 0 1 1 0 > 3 0 1 0 1 > 4 1 0 0 1 Das ist aber doch ja wohl lediglich ein Kommentar. Das sollte man als Programmierer aber eigentlich schon erkennen können. Die Schrittfolge ist in stepper.cpp in der Funktion
1 | void Stepper::stepMotor(int thisStep) |
2 | ...
|
ausprogrammiert.
In der .H Datei ist nur eine Erklärung als Kommentar. Ändern dort bringt gar nichts. Die Implementierung ist in der .cpp Datei, void Stepper::stepMotor(int thisStep) im Zusammenspiel mit void Stepper::step(int steps_to_move) Dort sollte auf 8-Schritte und das Bitmuster geändert werden.
habe mal die .ccp mit Notepad++ geöffnet nun sehe ich klarer, weils damit strukturiert ist. Denke das ich hier ansetzten muss.
Karl Heinz schrieb: > Die Schrittfolge ist in stepper.cpp in der Funktion >
1 | > void Stepper::stepMotor(int thisStep) |
2 | > ... |
3 | >
|
> ausprogrammiert.
Auch musst du hier
1 | void Stepper::step(int steps_to_move) |
2 | {
|
3 | ....
|
4 | // step the motor to step number 0, 1, 2, or 3:
|
5 | stepMotor(this->step_number % 4); |
6 | ...
|
eingreifen. DAs ganze funktioniert offensichtlich so, dass die Klasse eine absolute Schrittnummer mitführt. Die Modulo Division errechnet daraus, welcher der 4 Motor-'Zustände' dieser absoluten Schrittnummer entspricht und die Funktion stepMotor stellt dann die für diesen Motor-'Zustand' notwendigen Ausgangspegel ein. Wenn du die Halbschritte mit dazu nehmen willst, hast du dann logischerweise nicht mehr 4 unterschiedliche Zustände der Ausgangslsitungen sondern deren 8. Der Code muss darauf angepasst werden.
so hat sich überschnitten, danke bin jetzt auch darauf gekommen und werde in kürze die abgeänderte Datei bereitstellen
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.