Ich habe da mal eine Frage an die Experten: Ich möchte einen Inkrementalencoder nutzen um Pulse für einen Schrittmotor zu erzeugen. Die Idee dahinter ist, den Encoder an die Spindel einer Drehmaschine anzubauen, je nach Drehzahl möchte ich dann einen Schrittmotor an der Leitspindel der Maschine antreiben um so den Vorschub einstellen zu können. Momentan muss ich da immer Zahräder wechseln, ist eine einfache Maschine. Ich muss ca. 2mm/ Umdrehung der Spindel maximal schaffen, das entspräche einer Umdrehung des Schrittmotors pro Spindelumdrehung.
Ich habe hier einen Encder mit 400 Pulsen / Umdrehung, der Schrittmotor benötigt 200 Schritte pro Umdrehung, alle 2 Impulse müsste also ein Schritt gemacht werden.
Das ist das Maximum, im Normalfall liegt die Schrittrate weit darunter, eher alle 20 Impulse ein Schritt.
Ich könnte den ja mit dem IncPort8 auswerten, erhalte dann aber nur eine Position.
Ich muss für diese Sache aber zumindest bei jedem 2. Impuls des Encoders einen Schritt des Schrittmotors auslösen, bei langsameren Vorschub z.B. alle 20 Impulse ein Schritt.
So wie ich das sehe kann ich das mit dem Treiber nicht lösen, oder gibt es eine Möglichkeit in den PCInt rein zu "gehen" und dort die Impulse zu zählen und ggf. ein Schritt des Schrittmotors auszulösen?
Ich könnte natürlich auch zyklisch die Position abfragen, aber ich brauche ca. 13 KHz Abtastrate.
(2000 U/min der Spindel bei 400 Impulse/U = 13333 Hz
Der Controller hat nichts weiter zu tun, 20 MHz hätte ich zur Verfügung, z.B. ein Mega644P.
Hat jemand eine Idee wie oder ob das ginge?
Louis
Ich habe hier einen Encder mit 400 Pulsen / Umdrehung, der Schrittmotor benötigt 200 Schritte pro Umdrehung, alle 2 Impulse müsste also ein Schritt gemacht werden.
Das ist das Maximum, im Normalfall liegt die Schrittrate weit darunter, eher alle 20 Impulse ein Schritt.
Ich könnte den ja mit dem IncPort8 auswerten, erhalte dann aber nur eine Position.
Ich muss für diese Sache aber zumindest bei jedem 2. Impuls des Encoders einen Schritt des Schrittmotors auslösen, bei langsameren Vorschub z.B. alle 20 Impulse ein Schritt.
So wie ich das sehe kann ich das mit dem Treiber nicht lösen, oder gibt es eine Möglichkeit in den PCInt rein zu "gehen" und dort die Impulse zu zählen und ggf. ein Schritt des Schrittmotors auszulösen?
Ich könnte natürlich auch zyklisch die Position abfragen, aber ich brauche ca. 13 KHz Abtastrate.
(2000 U/min der Spindel bei 400 Impulse/U = 13333 Hz
Der Controller hat nichts weiter zu tun, 20 MHz hätte ich zur Verfügung, z.B. ein Mega644P.
Hat jemand eine Idee wie oder ob das ginge?
Louis