Forum: Mikrocontroller und Digitale Elektronik Magnetscheibe für Hallsensoren


von noch_ein_bastler (Gast)


Lesenswert?

Hallo zusammen,

ich habe folgendes Problemchen: Habe mir diesen Motor mit fertigem 
Encoder gekauft: 
http://www.robotshop.com/eu/en/12v-103rpm-30-1-gear-motor-encoder.html

Bisher habe ich den Encoder nur zum Auslesen der Position genutzt, jetzt 
möchte ich aber auch noch Drehgeschwindigkeit und evtl. 
Drehbeschleunigung messen. Bei großen Geschwindigkeiten läuft das auch 
sehr zuverlässig über die gezählten Ticks, bei kleinen 
Drehgeschwindigkeiten kann ich die Geschwindigkeit jedoch nichtmehr 
verlässlich bestimmen, da zu wenige Inkremente/Zeitschritt auftreten.

Software-seitige Lösungen, (LP-Filter, Luenberger-Beobachter, 
Kalmanfilter) hat bis jetzt nicht wirklich weitergeholfen. Mir fallen 
jetzt noch zwei Lösungswege ein:

a) Die Magnetscheibe ersetzen: Meine jetztige Scheibe hat zwei Nordpole 
und zwei Südpole. Mit mehr Polpaaren, kann ich ja entsprechend die 
Auflösung erhöhen. Wisst ihr ob, man so etwas fertig kaufen kann, oder 
ist selbst basteln angesagt? Über Google habe ich keine Anbieter 
gefunden.

b) Die ISR umstellen: Über die beiden Hallsensoren zähle ich bei 
wechselnden Flanken die Ticks hoch und bestimme dann die Geschwindigkeit 
über Ticks/Samplezeit. Statt Ticks zu zählen könnte ich ja auch die Zeit 
zwischen zwei Ticks "messen" und dann die Drehgeschwindigkeit über

Drehgeschwindigkeit = 1 Tick / Zeit zwischen Ticks

bestimmen. Das Problem ist halt, dass ich auf diese Weise keinen 
Stillstand erkennen kann.

Was meint Ihr? Vielen Dank für Eure Antworten.

von Georg (Gast)


Lesenswert?

noch_ein_bastler schrieb:
> Statt Ticks zu zählen könnte ich ja auch die Zeit
> zwischen zwei Ticks "messen"

Das ist das Standard-Verfahren.

noch_ein_bastler schrieb:
> Das Problem ist halt, dass ich auf diese Weise keinen
> Stillstand erkennen kann.

Das geht theoretisch garnicht, egal welcher Encoder. Was heisst 
Stillstand? 1 Encoderschritt pro Jahr, oder gleich in der Ewigkeit? Du 
kannst höchstens feststellen, dass z.B. 1 Sekunde kein Zählimpuls kommt, 
und das als deine Version von Stillstand interpretieren. Ist dir das 
nicht genug, musst du einfach Encoder mit höherer Auflösung verwenden, 
was das Problem verringert, aber nicht endgültig löst. Da es optische 
Encoder mit vielen 1000 Schritten gibt, sollte das für die Praxis 
genügen.

Im übrigen gilt das auch für andere Messungen, du kannst auch nicht 
wirklich fesstellen, ob eine Spannung = 0 ist.

Georg

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.