-
-
Genaue Motorsteuerung mit HALL Sensor
Hallo zusammen
ich arbeite im Moment an einer X-Y Steuerung mit zwei 12V Getriebemotoren. Ich möchte mit meinem ATMEL mega8 die Umdrehungen der Motoren überwachen und damit kontrollierte Bewegungen z.B 100 Umdrehungen in eine bestimmte Richtung fahren.
Wichtigstes Ziel: Dabei keine Schritte verlieren und das Ziel möglicht genau treffen.
Die Motoren sind jeweils mit einem HALL Sensoren bestückt. Auf der Motorachse ist ein kleinen runden Magneten aufgeklebt, daneben sitzt der Hallsensor Beschriftung: 177 823B. Dieser liefert ein einfaches Rechteck im TTL Pegel.
Da ich die Drehrichtung ja softwareseitig vorgebe, dachte ich mir einfach die Flanken zu zählen.
Ich arbeite mit einem mega8 der über eine Brücke L289 die Motoren ansteuert.
Ich will über die beiden externen interrupts INT0 und INT1 die Flanken zählen und die Motoren mit einem PWM Signal quasi an die gewünschte Position heranfahren.
Zunächst mit nur einem Motor hat das ganz gut geklappt und ich habe bis auf +-2 Umdrehungen immer ganz gut meine Marke getroffen.
Als ich allerdings die zweite Achse in mein Programm aufgenommen habe, ging es mit den Problemen los.
Aus mir bisher unerfindlichen Gründen läuft Achse 1 zwar, aber die Anzahl der gezählten Schritte erscheint mir eher zufällig. Achse 2 über INT 2 läuft dafür unaufhörlich was vermuten lässt, dass gar nichts gezählt wird.
Hat vielleicht jemand Erfahrunge mit so einer Motorsteuerung über einen einfachen HALL Drehgeber? Was ist hier ein sinnvoller Ansatz?
Wie stelle ich sicher, dass keine Schritte verlohren gehen?
Ich programmiere in C++ und würde mich riesig über eine paar Denkanstöße freuen.
Beste Grüße
Sven
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen