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