Magnetscheibe für Hallsensoren

Gast #4553373
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.
Gast #4553453
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.