Forum: Analoge Elektronik und Schaltungstechnik Hilfe beim Programmieren zweier unabhängiger Impulsfolgen benötigt.


von Adair (adair)


Lesenswert?

Hallo zusammen, ein Freund hat mich gebeten, ihm bei der Reparatur einer 
Polyester-/Kunststoffschneidemaschine zu helfen.

Die Maschine verfügt über zwei Schrittmotoren 
(https://www.oyostepper.com/), die an eine H-Brücke angeschlossen sind. 
Die Schrittmotoren werden durch Impulse angesteuert, und es gibt zwei 
zusätzliche Eingangssignale zur Richtungssteuerung. Ich muss mehrere 
Unterprogramme schreiben, in denen das Hauptprogramm drei Parameter 
einliest: den Wert der X-Achse, den Wert der Y-Achse und den Zeitwert. 
Die Unterprogramme erzeugen basierend auf diesen Werten zwei Impulse im 
Zeitfeld (Takt): einen X-Impuls (zum Ansteuern der Motorbewegung entlang 
der X-Achse) und einen Y-Impuls.

Ich bin mir unsicher, wie ich das am besten umsetze. Ich habe überlegt, 
einen äquidistanten Takt zu verwenden (dafür bräuchte ich einen 
separaten, aus dem Bild generierten Takt), dessen Timing mindestens der 
Aktivierungszeit der FET-Transistoren in der H-Brücke entsprechen 
sollte. Dadurch hätte ich zwei Variablen: crtx und crty. Anfangs sind 
diese Werte beide auf 0 gesetzt und werden einmal pro Taktzyklus 
dekrementiert (ich beziehe mich auf den im Bild dargestellten Takt, 
nicht auf den tatsächlichen Takt, der mit einem Quarzoszillator erzeugt 
wird. Dies ist notwendig, da diese Zeit veränderbar sein muss). Wenn sie 
überlaufen (ist „Überlauf“ hier der richtige Begriff? :P), setze ich sie 
auf ihre Standardwerte zurück (z. B. alle 3 Impulse für die x-Achse und 
alle 97 Impulse für die y-Achse), die aus einem anderen Satz von 
x/y-Variablen stammen, und setze dann die entsprechenden Pins für einen 
Taktzyklus auf HIGH.

Ich habe etwas Ähnliches schon einmal gemacht, indem ich mit einem 
12F675 PWM erzeugt und die Helligkeit von drei LEDs durch Vergleich 
ihrer „aktuellen“ Werte mit einem Schwellenwert geändert habe, ohne 
Multitasking. Ich denke, das ist vergleichbar mit der aktuellen 
Situation, bin mir aber nicht sicher.

Was meinst du? Welcher Ansatz wäre für mich am besten?

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
Noch kein Account? Hier anmelden.