Ich habe hier einen DC-Motor mit einer Schlitzscheibe mit 1024 Schlitzen die direkt auf der Motorwelle sitzt (kein Getriebe), also eine Wahnsinnsauflösung. Der Motor stammt aus einem alten Inkjet Drucker. Ich wollte mal sehen wie genau man in der Praxis eine Positionsregelung für diesen Motor aufbauen kann. Leider ist inzwischen die Lichtschranke kaputt, ich muss sehen ob ich dafür einen Ersatz bekommen kann. Ein Auswerteprogramm dafür auf einem ATtiny habe ich schon geschrieben, aber noch nicht probieren können. Das Projekt liegt jetzt aber schon länger auf Eis. Was mir natürlich auch bei solchen Sachen hilft ist meine Ausbildung zum Diplomingenieur.Was mich interessieren würde, hast du auch etwas ähnliches bauen müssen oder woher kommt das Wissen?
Die Auswertung beruht nicht auf Zeitdifferenzen zwischen dem Schalten der Lichtschranken. Es ist so, dass es 4 definierte Zustände gibt (jede der beiden Lichtschranken kann entweder an oder aus sein). Für jeden der 4 Zustände gibt es zwei erlaubte Übergänge in einen folgenden Zustand (entweder die eine Lichtschranke wechselt oder die andere). Die Übergänge unterscheiden sich nach der Drehrichtung. Sehr informativ ist dieser alte Thread.Aber davon abgesehen geht mir grad nicht ein, wieso eine zweite Diode die "genau in der Mitte schaltet" die Drehrichtung bestimmen läßt. Geht es nicht genau da nicht? Wenn sie nicht in der Mitte zwischen 2 Schaltpunkten der anderen schaltet ist die Zeitdifferenz in eine Richtung geringer als in die andere und die Reihenfolge ergibt die Drehrichtung.
Das wäre eine Möglichkeit um die Berechnung des Standorts nicht so häufig durchführen zu müssen. Allerdings verliert man dabei Information. Ein krasses Beispiel: Man wertet den Zähler aus, nachdem rechts 1000 Wechsel vorwärts stattgefunden haben und links 990 Wechsel vorwärts. Das kann passiert sein indem der Robi ein Stück geradeaus gefahren ist und am Schluss eine Linkskurve. Er kann aber auch gleich eine Linkskurve gemacht haben und dann geradeaus. Oder er ist ziemlich Schlangenlinien gefahren, insgesamt etwas mehr Linkskurve als Rechtskurve. Jedesmal wird die Position des Robbi eine andere sein. Wenn man nach jedem Lichtschrankenwechsel die neue Position ausrechnet dann gibt es diese Unsicherheit nicht. Wenn man einen MC nur für die Auswertung der beiden Räder und die Positionsrechnung verwendet sollte das noch nicht zeitkritisch sein. Bei der Positionsberechnung muss man vielleicht etwas überlegen dass man bei den Winkelfunktionen geschickt (prozessorzeitsparend) rechnet. Das habe ich bisher noch nicht so genau durchüberlegt.Je nach Anwendung könnt ich mir vorstellen das Signal von der Lichtschranke in einen Binärzähler zu schicken (und vielleicht vorher noch durch einen Schmitt-Trigger), anstatt jetzt Einzelperiode zu bestimmen. Dann kannst in ungefähr gleichen Zeitabständen den Zählerstand auslesen und resetten
Lesezeichen