Forum: Mikrocontroller und Digitale Elektronik Hall Drehgeber analog Ausgang Auswertung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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?

: Gesperrt durch Moderator
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.

von Martin K. (mkmannheim) Benutzerseite


Lesenswert?

Ich möchte ebenfalls diesen Sensor einsetzen und hätte eine Frage 
abseits der Auswertung, die ich mit I2C machen möchte (was laut 
Datenblatt geht):

Wie verbaue ich den Sensor zusammen mit dem Magneten so, dass ein 
richtiges Poti daraus wird? Es ist mir bisher weder gelungen, ein fertig 
gebautes Modul zum Einschrauben zu bekommen, noch Komponenten dafür zu 
finden.

Es müsste eine Art einschraubare Spindel mit Gewinde sein, die (wie ein 
konventionelles Poti) mit z.B. einer M10-Mutter im Gehäuse verschraubt 
wird und unten den Magneten hat.

Wo bekommt man so etwas?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Martin K. schrieb:
> Ich möchte ebenfalls diesen Sensor einsetzen und hätte eine Frage
> abseits der Auswertung
Sinnvollerweise solltest du für eine neue, unabhängige Frage einen neuen 
Thread beginnen. In deinem Fall wohl am besten im Mechanik-Unterforum. 
Denn du hast ja offenbar kein elektronisches Problem.

Denn sonst liest jeder erst mal die alten Posts und denkt sich eine 
Antwort dazu aus, um dann zum Schluss herauszufinden, dass es nun auf 
einmal um ganz was anderes geht.

: Bearbeitet durch Moderator
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.