So, ich hab mich weiter belesen und noch ein wenig nachgedacht. Ich würde es wohl so realisieren, dass auf dem µC ein Timer und ein Counter laufen. Der Counter zählt die Inkremente, wobei durch Abfrage der zweiten GLS bestimmt wird, ob rauf oder runter gezählt wird. Die Zählvariable ist erstmal nur temporär und unabhängig von der Positionsvariable. Der Timer löst dann in gröberen Abständen aus, zB. alle 10ms, wobei dann die temporäre Zählvariable als aktuelle Geschwindigkeit gespeichert und auf die Position aufaddiert wird. Die Position sollte man wohl wirklich schon als Long wählen, während bei der Geschwindigkeit Integer reichen dürfte (gibts in Bascom eigentlich auch Short?). Wenn man schon dabei ist, wird dann auch gleich die Regelung in den kleinen µC integriert. Ich würde da wohl einen PI-Regler nehmen, um gute Positioniergenauigkeit zu erhalten. Für den Entwurf ließe sich wohl ein einfaches PT1-System heranziehen, das aus Zeitkonstante und Verstärkungsfaktor identifiziert wird. Bei hoch übersetzenden Getriebe soll ja meist die Motordynamik am einflussreichsten auf die Regelung sein. Sollwerte hatte ich vor, über UART zu übertragen, ist das sinnvoll? Wie wird bei sowas das Protokoll am besten aufgebaut?
Nun ist die Frage: welcher ATtiny hat einen Counter, einen Timer, einen PWM-Ausgang und UART?
Außerdem ist mir aufgefallen, dass die Teilung der Encoderscheibe aus der Maus wohl eine zu feine Teilung hat. Wenn man dann versuchen würde, eine Position anzufahren, die pratisch zwischen zwei Motorphasen liegt, würde das Teil nur die ganze Zeit herumzuppeln. Wäre es da dann praktischer, bei 3 Motorphasen auch nur 3 oder 6 Segmente auf die Scheibe zu setzen?
Lesezeichen