Forum: Mikrocontroller und Digitale Elektronik Hall Drehgeber analog Ausgang Auswertung


von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Das Signal eines Hall-Drehencoders mit analogem Ausgang soll so 
ausgewertet werden. Die Größe des analogen Signals entspricht dem 
Drehwinkel.
Es gibt zwei Herausforderungen:

1. Nach 360° wiederholt sich das Signal, sodass man die Umdrehungen per 
Programm zählen muss
2. Der Magnet kann auf der Achse leicht verdreht montiert sein. Dieser 
Winkel soll per Software korrigierbar sein.

Welche Probleme könnte es bei der Auswertung geben?

von Rahul D. (rahul)


Lesenswert?

Christoph M. schrieb:
> 1. Nach 360° wiederholt sich das Signal, sodass man die Umdrehungen per
> Programm zählen muss
Die letzte Possition mit der aktuellen vergleichen und daraus auf die 
Drehrichtung schließen.

> 2. Der Magnet kann auf der Achse leicht verdreht montiert sein. Dieser
> Winkel soll per Software korrigierbar sein.

Meinst du (a) "nicht konzentrisch" ausgerichtet, oder (b) um einen 
gewissen Winkel in Ruhestellung verdreht?

(a) müsste sich in den Messwerten bemerkbar machen... (ausprobieren).
Dann ist eine Korrekturfunktion nütig.
(b) Nullen, also einmalig die Ruhepostion bestimmen und als Offset 
verwenden

von Michael B. (laberkopp)


Lesenswert?

Christoph M. schrieb:
> Welche Probleme könnte es bei der Auswertung geben?

Kein, weil das Signal schon digital auslesbar ist.
Man muss halt oft genug auslesen, damit nie mehr als eine halbe 
Umdrehung zwischen beiden Werten liegt, damit man die Überläufe zählen 
kann.

von Peter D. (peda)


Lesenswert?

Christoph M. schrieb:
> Die Größe des analogen Signals entspricht dem
> Drehwinkel.

Theoretisch mag das so sein, nur kannst Du Dich dann von 12Bit Auflösung 
verabschieden.

Christoph M. schrieb:
> 1. Nach 360° wiederholt sich das Signal, sodass man die Umdrehungen per
> Programm zählen muss

Am einfachsten läßt sich das in Software lösen, d.h. den Sensorwert per 
I2C auslesen.

von Flunder (flunder)


Lesenswert?

Christoph M. schrieb:
> 2. Der Magnet kann auf der Achse leicht verdreht montiert sein. Dieser
> Winkel soll per Software korrigierbar sein.

Wenn Du I²C nimmst, kannst Du den Offset direkt in den Sensor 
programmieren.

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Ich verwende einen Sensor, der dem AS5600 ähnlich ist. Der hat leider 
nur einen Analogausgang.
Mittlerweile wird mir das Problem mit dem Analogausgang klar: Der Sensor 
erzeugt eine sägezahnförmige Schwingung, da er beim erreichen des 
maximalen Winkels wieder bei Null anfängt. Für die Positionserkennung 
ist da jetzt ein Problem, weil durch die endliche Geschwindigkeit des 
Phasensprungs ein Samplewert genau die Flanke treffen kann und dann es 
so aussieht, als wenn der Encoder rückwärts läuft.
Man braucht also eine Art Filter, um dieses Problem zu unterdrücken.

von Rainer W. (rawi)


Lesenswert?

Christoph M. schrieb:
> Man braucht also eine Art Filter, um dieses Problem zu unterdrücken.

Erstmal solltest du das Datenblatt lesen, bevor du solche voreiligen 
Schlüsse ziehst.
Was meinst du wohl, wozu AMS dem Sensor in der Signalverarbeitung eine 
10 Bit Hysterese verpasst hat. (DS Page 25).

von Christoph M. (mchris)


Lesenswert?

>Erstmal
wäre die Hysterese im Sensor und zweitens macht die an der 
Flankensteilheit des Analogsignal nichts.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Christoph,

Christoph M. schrieb:
> Mittlerweile wird mir das Problem mit dem Analogausgang klar: Der Sensor
> erzeugt eine sägezahnförmige Schwingung, [...]

> Man braucht also eine Art Filter, um dieses Problem zu unterdrücken.

Nein, man braucht keinen Filter. Sondern eine ausreichend hohe 
Abtastrate (Nyquist), so wie Michael B. das schon geschrieben hat. Bei 
digitalen Encodersignalen ist das im Prinzip nichts anderes.

Mit freundlichen Grüßen
Thorsten Ostermann

von Michael B. (laberkopp)


Lesenswert?

Christoph M. schrieb:
> Ich verwende einen Sensor, der dem AS5600 ähnlich ist

Das ist ja nichtmal Salami, das sind Blutwurstscheiben. Die fake news 
wirst du selber essen müssen.

von Christoph M. (mchris)


Lesenswert?

>Nein, man braucht keinen Filter. Sondern eine ausreichend hohe
>Abtastrate (Nyquist), so wie Michael B. das schon geschrieben hat.

Hast du dir meinen Screenshot oben angeschaut? Mit einer höheren 
Abtastrate wird der Punkt in der Flanke nicht verschwinden, sondern es 
werden mehr. Die höhere Abtastrate hat also eher einen gegenteiligen 
Effekt und der Filter muss länger werden.

von Rainer W. (rawi)


Lesenswert?

Christoph M. schrieb:
> Hast du dir meinen Screenshot oben angeschaut? Mit einer höheren
> Abtastrate wird der Punkt in der Flanke nicht verschwinden, sondern es
> werden mehr.

Der Sensor wird nicht ohne Grund als "Position Sensor" und nicht als 
Drehsensor vermarktet. Der soll ein Potentiometer ersetzen und darauf 
ist die Signalverarbeitung und der Ausgang ausgelegt.
Für einen Drehsensor nimmt man nicht ohne Grund einen mit 
Sin/Cos-Ausgang.

Christoph M. schrieb:
> Ich verwende einen Sensor, der dem AS5600 ähnlich ist.

Und der wäre ...?

: Bearbeitet durch User
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

>Der Sensor wird nicht ohne Grund als "Position Sensor" und nicht als
>Drehsensor vermarktet.

Seltsam .. und das obwohl sich über die zeitliche Veränderung der 
Position die Geschwindigkeit der Drehachse eines Motors bestimmen lässt.

https://ams-osram.com/products/sensors/position-sensors

Du hast recht: Osram hat spezielle, schnelle Sensoren für die Bestimmung 
einer kontinuierliche Rotation. Einen klaren Grund, warum der AS5600 für 
Rotationen mit begrenzter Geschwindigkeit nicht geeignet sein soll, kann 
ich nicht erkennen.

von Flunder (flunder)


Lesenswert?

Bau Dir doch 2 übereinander, entweder gegeneinander verdreht oder 
unterschiedlich programmiert, so dass die steile Flanke bei 
verschiedenen Winkeln kommt.

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.