Forum: Mikrocontroller und Digitale Elektronik Richtigen Hallsensor für Drehachsenauswertung


von Jan B. (jan_b737)


Angehängte Dateien:

Lesenswert?

Hallo,

ich stehe gerade bei meinem anderen Forenbeitrag vor der Frage, ob ich 
anstatt zwei einzelne Gabellichtschranken einen Doppel Hallsensor 
verwenden soll. Diese sind in einem Gehäuse mit Entstörungsgliedern und 
haben dazu noch eine Drehrichtungsausgabe.
Ich denke das ist für mein Vorhaben besser geeignet und es ist später 
leichter auszuwerten, da es stabilere Signale ausgibt.
Was denkt ihr dazu?

Ich habe eine Keilwelle die durch zwei Kugellager läuft und sich dreht.
Siehe Bild

Ich will das Signal vorerst mit einem Arduino auswerten.
Die benötigten Parameter sind Drehgeschwindigkeit und Drehrichtung.

Wäre dieser Hallsensor z.B. für so etwas geeignet?
https://www.infineon.com/dgdl/Infineon-TLE4966L-DataSheet-v02_10-EN.pdf?fileId=db3a304319c6f18c0119cd85b86f7ad7


Mein Hauptbeitrag ist Beitrag "Auswerten einer rotierenden Achse und Verarbeitung per App"
ich hoffe das sich durch den besser passenden Themennamen mehr Leute 
rein schauen.

Gruß
Jan

von Thomas F. (igel)


Lesenswert?

Jan B. schrieb:
> Wäre dieser Hallsensor z.B. für so etwas geeignet? TLE4966

Das ist ein Sensor für magnetische Polräder. Der braucht Nord- und 
Südpole, siehe Bild auf Seite 10. Wenn du so ein Polrad hast dann 
funktioniert der auch.

von N. M. (mani)


Lesenswert?

Hol dir lieber einen fertig gekapselten Geber. Gibt es aus China in 
einigermaßen günstig.

Bei den Hall Sensoren muss man teilweise sehr genau den Abstand 
einhalten und sämtliche Verkippungen / Fehlausrichtungen vermeiden. Die 
Homogenität des Feldes ist auch ein großer Punkt, also Auswahl des 
richtigen Magneten.

Wenn du dir das trotzdem antun möchtest schau Mal hier:
https://www.ichaus.de/product/iC-MA

von Thomas F. (igel)


Lesenswert?

N. M. schrieb:
> Wenn du dir das trotzdem antun möchtest schau Mal hier:
> https://www.ichaus.de/product/iC-MA

Das sind jetzt aber magnetische Rotations-Encoder und keine digitalen 
Drehzahlgeber. Klar wollen die genauer positioniert sein als ein reiner 
Hall-Sensor.

von Jan B. (jan_b737)


Lesenswert?

Okay.

Ich habe mir das wie folgt vorgestellt.
Ich drucke ein Rad mit dem 3D-Drucker, in dem 4-6 Magnete verbaut sind 
und diese werden dann mit dem Hallsensor gemessen.
Was mir halt wichtig ist das es auch Störungen möglichst schon im 
Bauteil eliminiert und auch die Drehrichtung ausgibt.
So wie in dem IC den ich oben verlinkt habe.
Jetzt muss der nur noch mit meinen Gegebenheiten funktionieren :D
Dieser Sensor kann auch bisschen mehr kosten als 20-30€.

von Thomas F. (igel)


Lesenswert?

Jan B. schrieb:
> Ich drucke ein Rad mit dem 3D-Drucker, in dem 4-6 Magnete verbaut sind
> und diese werden dann mit dem Hallsensor gemessen.
> Was mir halt wichtig ist das es auch Störungen möglichst schon im
> Bauteil eliminiert und auch die Drehrichtung ausgibt.

Mit so was selbstgebautem wird das Magnetfeld eher ungleichmäßig werden.

Beim Audi/VW - Händler bekommst du mit der Nummer 0CK 331 291C ein 
Magnetrad mit 45mm Innendurchmesser welches auch zu den TLE49xx-Sensor 
passt. Kostet ca. 10€.

von N. M. (mani)


Lesenswert?

Thomas F. schrieb:
> Das sind jetzt aber magnetische Rotations-Encoder und keine digitalen
> Drehzahlgeber.

Ja, er wird bei seinem Vorhaben aber wahrscheinlich eine obere und 
untere Endlage brauchen vermute ich. Klar könnte er dann die 
Geschwindigkeit des Infineon Chip aufintegrieren.
Wahrscheinlich wird das aber nicht integral genau. Sprich, die Position 
der Endlage wird weglaufen vermute ich.
Man könnte dann natürlich noch Endschalter anbringen.
Ich würde halt einfach eine Absolutposition nehmen. Oder zumindest 
relativ zu einem Teaching. Dann hätte man die Endpunkte, die aktuelle 
Position und durch Differenzierung die Geschwindigkeit.

Thomas F. schrieb:
> Klar wollen die genauer positioniert sein als ein reiner Hall-Sensor.

Ja hatte in diesem Beitrag übersehen dass er nach 
Geschwindigkeitssensoren sucht.

von Jan B. (jan_b737)


Lesenswert?

N. M. schrieb:
> Thomas F. schrieb:
>> Das sind jetzt aber magnetische Rotations-Encoder und keine digitalen
>> Drehzahlgeber.
>
> Ja, er wird bei seinem Vorhaben aber wahrscheinlich eine obere und
> untere Endlage brauchen vermute ich. Klar könnte er dann die
> Geschwindigkeit des Infineon Chip aufintegrieren.
> Wahrscheinlich wird das aber nicht integral genau. Sprich, die Position
> der Endlage wird weglaufen vermute ich.
> Man könnte dann natürlich noch Endschalter anbringen.
> Ich würde halt einfach eine Absolutposition nehmen. Oder zumindest
> relativ zu einem Teaching. Dann hätte man die Endpunkte, die aktuelle
> Position und durch Differenzierung die Geschwindigkeit.
>
> Thomas F. schrieb:
>> Klar wollen die genauer positioniert sein als ein reiner Hall-Sensor.
>
> Ja hatte in diesem Beitrag übersehen dass er nach
> Geschwindigkeitssensoren sucht.

Für mein Vorhaben benötige ich nur die Drehrichtung und die 
Geschwindigkeit.
Ich beschleunige diese Achse mit Muskelkraft (Trainingsgerät) und möchte 
wissen wie schnell sich diese Achse dreht.

Falls ihr genau wissen wollt was ich mache : 
https://docs.google.com/document/d/1y1Ps2lGMBlGfHp_X861jGAQr7EngHwYD4h-WHcQWqrM/edit?usp=sharing


Ich hab auch schon die Magneträder von KFZ angeschaut aber die sind 
leider zu schwer und zu sperrig.

: Bearbeitet durch User
von Thomas F. (igel)


Lesenswert?

Jan B. schrieb:
> Ich hab auch schon die Magneträder von KFZ angeschaut aber die sind
> leider zu schwer und zu sperrig.

Dann mach doch mal ein paar Angaben wie es aussehen soll.

von Jan B. (jan_b737)


Angehängte Dateien:

Lesenswert?

Thomas F. schrieb:
> Jan B. schrieb:
>> Ich hab auch schon die Magneträder von KFZ angeschaut aber die sind
>> leider zu schwer und zu sperrig.
>
> Dann mach doch mal ein paar Angaben wie es aussehen soll.

Im Anhang ist das Gerät. Dies besitzt eine Keilwelle die mit Kugellager 
befestigt ist. Die Welle sollte aber möglichst nicht mehr viel schwerer 
werden, da dann das Trainingsprinzip verfälscht wird. Massenträgheit der 
Achse ist dann höher.

von Thomas F. (igel)


Lesenswert?

Jan B. schrieb:
>> Dann mach doch mal ein paar Angaben wie es aussehen soll.
>
> Im Anhang ist das Gerät.

Ich dachte an einfache Angaben wie Innen- und Außendurchmesser des 
Sensorrades.
Auf dem Bild kann man keine Größenordnungen erkennen.

> Ich hab auch schon die Magneträder von KFZ angeschaut aber die sind
> leider zu schwer und zu sperrig.

Zu schwer? Was hast du denn da angesehen?

von sid (Gast)


Lesenswert?

zwei Halleffekt schalter (wie sie zB im BLDC deines optischen laufwerks 
stecken)
die platzierst Du 60° auseinander und nach spätestens einer Umdrehung 
kennst Du die Richtung.
(zeitspanne zwischen A und B kürzer oder länger als zwischen B und A)
Geschwindigkeit ist halt die Zeit zwischen zwei A's oder zwei B's

Typnummer hab ich keine im Kopf, ist auch unwichtig solange es kein 
ratiometrischer halleffect sensor ist sondern ein stumpfer schalter 
(eingebauter opamp) mit ausreichender Erkennung für Deinen Magneten ist 
das egal.

'sid

PS das geht übrigens auch mit einem ratiometrischen Sensor und zwei 
magneten die 60° voneinander auf der Achse kleben müssen nur 
unterschiedlich orientiert sein...
nord vor süd rechtsrum, süd vor nord linksrum ....

von Jan B. (jan_b737)


Lesenswert?

Thomas F. schrieb:
> Jan B. schrieb:
>>> Dann mach doch mal ein paar Angaben wie es aussehen soll.
>>
>> Im Anhang ist das Gerät.
>
> Ich dachte an einfache Angaben wie Innen- und Außendurchmesser des
> Sensorrades.
> Auf dem Bild kann man keine Größenordnungen erkennen.
>
>> Ich hab auch schon die Magneträder von KFZ angeschaut aber die sind
>> leider zu schwer und zu sperrig.
>
> Zu schwer? Was hast du denn da angesehen?

Also das Rad mit max 80mm Außendurchmesser und nicht schwerer als 2-3 KG 
wären gut. Innenmaß 25mm wäre perfekt, da die Welle 25mm Durchmesser 
hat.

von Jan B. (jan_b737)


Lesenswert?

sid schrieb:
> zwei Halleffekt schalter (wie sie zB im BLDC deines optischen laufwerks
> stecken)
> die platzierst Du 60° auseinander und nach spätestens einer Umdrehung
> kennst Du die Richtung.
> (zeitspanne zwischen A und B kürzer oder länger als zwischen B und A)
> Geschwindigkeit ist halt die Zeit zwischen zwei A's oder zwei B's
>
> Typnummer hab ich keine im Kopf, ist auch unwichtig solange es kein
> ratiometrischer halleffect sensor ist sondern ein stumpfer schalter
> (eingebauter opamp) mit ausreichender Erkennung für Deinen Magneten ist
> das egal.
>
> 'sid
>
> PS das geht übrigens auch mit einem ratiometrischen Sensor und zwei
> magneten die 60° voneinander auf der Achse kleben müssen nur
> unterschiedlich orientiert sein...
> nord vor süd rechtsrum, süd vor nord linksrum ....

Der Grundgedanke über die Funktion ist mir klar.
Ich wollte halt schauen/wissen ob es das ganze in einem Bauteil fertig 
zu kaufen gibt. In den ICs wo man ein Polrad braucht sind halt auch noch 
paar Entstörglieder drin, was sicherlich auch nicht schlecht ist.

von Thomas F. (igel)


Lesenswert?

Jan B. schrieb:
> Innenmaß 25mm wäre perfekt, da die Welle 25mm Durchmesser
> hat.

Mit 25mm kenne ich jetzt leider keines. Das von mir oben genannte ist 
etwas kleiner als 80mm und wiegt geschätzt 50g.

von Jan B. (jan_b737)


Lesenswert?

Thomas F. schrieb:
> Jan B. schrieb:
>> Innenmaß 25mm wäre perfekt, da die Welle 25mm Durchmesser
>> hat.
>
> Mit 25mm kenne ich jetzt leider keines. Das von mir oben genannte ist
> etwas kleiner als 80mm und wiegt geschätzt 50g.

Wäre an sich doch nicht schlecht.
Vielleicht bekomm ich das dann irgendwie anders auf die Welle 
geschraubt.
Unter der Bezeichnung hab ich leider nicht wirklich was gefunden.

von Achim M. (minifloat)


Lesenswert?

Jan B. schrieb:
> Die Welle sollte aber möglichst nicht mehr viel schwerer
> werden, da dann das Trainingsprinzip verfälscht wird.

Dann würde ich einen Axial-Rotationssensor mit Dipolmagnet am Ende der 
Welle vorschlagen. Infineon TLE5012 oder AMS AS5200L oder Melexis 
MLX90385 oder sowas...

Die Dinger mit SPI-Interface errechnen dir gleich den Winkel mit 360° 
Overflow-Erkennung und meist auch die Geschwindigkeit.

Der Magnet wiegt vielleicht 5g und wird axial, quasi als Verlängerung 
der Welle befestigt. Hinkleben mit Epoxy reicht.
mfg mf

von Jan B. (jan_b737)


Lesenswert?

Achim M. schrieb:
> Jan B. schrieb:
>> Die Welle sollte aber möglichst nicht mehr viel schwerer
>> werden, da dann das Trainingsprinzip verfälscht wird.
>
> Dann würde ich einen Axial-Rotationssensor mit Dipolmagnet am Ende der
> Welle vorschlagen. Infineon TLE5012 oder AMS AS5200L oder Melexis
> MLX90385 oder sowas...
>
> Die Dinger mit SPI-Interface errechnen dir gleich den Winkel mit 360°
> Overflow-Erkennung und meist auch die Geschwindigkeit.
>
> Der Magnet wiegt vielleicht 5g und wird axial, quasi als Verlängerung
> der Welle befestigt. Hinkleben mit Epoxy reicht.
> mfg mf


Gibt dieser Sensor die Drehrichtung aus?

von Jan B. (jan_b737)


Lesenswert?

Hab hier mal eine PDF gefunden wo alle Sensoren von Infineon kommen.
Ab Seite 28 kommen Hallsensoren.


https://www.mouser.de/datasheet/2/196/Infineon_SensorSelectionGuide_ProductSelectionGuid-1840701.pdf


Ziele:

Geschwindigkeitausgabe
Richtungsausgabe

: Bearbeitet durch User
von Achim M. (minifloat)


Lesenswert?

Jan B. schrieb:
> Gibt dieser Sensor die Drehrichtung aus?

TLE5012B mit SSC(single wire SPI): Ja.

AS5200L mit i2c: Winkel zyklisch auslesen und dann differenzieren. Dazu 
als Zielformat der Geschwindigkeit gleich signed-Datentyp benutzen und 
beim Differenzieren die Ring-Eigenschaften des signed-Datentyps 
ausnutzen. Also irgendwie auch Ja.

MLX90385 wie beim AS200L. Irgendwie auch Ja.

von Jan B. (jan_b737)


Lesenswert?

Achim M. schrieb:
> Jan B. schrieb:
>> Gibt dieser Sensor die Drehrichtung aus?
>
> TLE5012B mit SSC(single wire SPI): Ja.
>
> AS5200L mit i2c: Winkel zyklisch auslesen und dann differenzieren. Dazu
> als Zielformat der Geschwindigkeit gleich signed-Datentyp benutzen und
> beim Differenzieren die Ring-Eigenschaften des signed-Datentyps
> ausnutzen. Also irgendwie auch Ja.
>
> MLX90385 wie beim AS200L. Irgendwie auch Ja.


Hört sich kompliziert an :D
Ist das mit einem Arduino überhaupt möglich?

SPI scheint mit einer Lib zu funktionieren.
https://www.arduino.cc/en/Reference/SPI


Damit ihr mal seht was ich eigentlich machen möchte.
Das will ich bei meinem Gerät auch haben.
https://www.youtube.com/watch?v=txBv6_mHfTo

: Bearbeitet durch User
von Uwe (Gast)


Lesenswert?

hi,
also wenn du eine alte Maus ausschlachtest hast du deine 
Doppellichtschranke in 2 Bauteilen.(Sender/Doppelempf.)
Du kannst natürlich auch 2 unipolare Hallschalter mit etwas Versatz 
einbauen
und mit irgendeinem Magnetrad schalten lassen. Die Anzahl der Magneten 
bestimmt die Auflösung.
Ein Schrittmotor wäre in der selben Gruppe einzuordnen.
Eine weitere Lösung wäre ein einfacher Tacho in Form eines kleinen 
Motörchens mit Permanentmagneten Spannungshöhe = Geschwindigkeit
Spannungsrichtung = Drehrichtung.
Ich denke du machst einfach zu viel Sackhüpfen um so ein banales 
Problem.
Was soll denn werden wenn's mal wirklich kritisch wird?

Viel Erfolg, Uwe

von Jan B. (jan_b737)


Lesenswert?

Uwe schrieb:
> hi,
> also wenn du eine alte Maus ausschlachtest hast du deine
> Doppellichtschranke in 2 Bauteilen.(Sender/Doppelempf.)
> Du kannst natürlich auch 2 unipolare Hallschalter mit etwas Versatz
> einbauen
> und mit irgendeinem Magnetrad schalten lassen. Die Anzahl der Magneten
> bestimmt die Auflösung.
> Ein Schrittmotor wäre in der selben Gruppe einzuordnen.
> Eine weitere Lösung wäre ein einfacher Tacho in Form eines kleinen
> Motörchens mit Permanentmagneten Spannungshöhe = Geschwindigkeit
> Spannungsrichtung = Drehrichtung.
> Ich denke du machst einfach zu viel Sackhüpfen um so ein banales
> Problem.
> Was soll denn werden wenn's mal wirklich kritisch wird?
>
> Viel Erfolg, Uwe

Hallo Uwe,

ja ich bin mir halt noch unsicher was ich selber am besten umsetzten 
kann.
Was meinst du mit: Was soll den werden wenns mal wirklich kritisch wird?

von Uwe (Gast)


Lesenswert?

hi,
>Was meinst du mit: Was soll den werden wenns mal wirklich kritisch wird?
na, zb. der legendäre Bauteiltester ist schon recht trickreih.
oder Versuche doch mal Leistungsmessung auf 3 Phase mit Wirk 
/Blindenergie. mit einem Mega328 und Hünerfutter.
Oder Versuche dich doch mal am Wuchten deiner Autoreifen mit einfachsten 
Mitteln. Oder, ....

Viel Erfolg, Uwe

von Achim M. (minifloat)


Lesenswert?

Jan B. schrieb:
> Hört sich kompliziert an :D
> Ist das mit einem Arduino überhaupt möglich?

Ja. Habe neulich so einen von AMS an einen ATtiny2313 ran gehängt.

Jan B. schrieb:
> Hört sich kompliziert an :D

Weit weniger kompliziert als es ist.
Pseudocode ungefähr so:
1
int16_t Winkel_alt, Winkel_neu;
2
int16_t Speed;
3
4
/* angenommen du bringst eine Funktion hin zum Winkel-Auslesen, die den 12-bit Winkel zurückgibt */
5
int16_t Auslesen (){...}
6
7
Timer_ISR()
8
{
9
  /* 0°...360°, die als 0...4095 vorliegen, auf vollen int16-Zahlenbereich -32768...+32767 aufblasen */
10
  Winkel_neu = Auslesen() << 4;
11
12
  /* Differenzieren. Speed ist nicht in RPM skaliert, sondern in ((65536 counts pro umdr.) pro Timer-Zykluszeit) !
13
  Hier nutzen wir bewusst den Überlauf der Subtraktion aus, weil 0° = 360° */
14
  Speed = Winkel_neu - Winkel_alt;
15
  
16
  /* Zu guter letzt den neuen Winkel als alten speichern, fuers Differenzieren im nächsten Zyklus */
17
  Winkel_alt = Winkel_neu;
18
}

mfg mf

: Bearbeitet durch User
von Jan B. (jan_b737)


Lesenswert?

Achim M. schrieb:
> Jan B. schrieb:
>> Die Welle sollte aber möglichst nicht mehr viel schwerer
>> werden, da dann das Trainingsprinzip verfälscht wird.
>
> Dann würde ich einen Axial-Rotationssensor mit Dipolmagnet am Ende der
> Welle vorschlagen. Infineon TLE5012 oder AMS AS5200L oder Melexis
> MLX90385 oder sowas...
>
> Die Dinger mit SPI-Interface errechnen dir gleich den Winkel mit 360°
> Overflow-Erkennung und meist auch die Geschwindigkeit.
>
> Der Magnet wiegt vielleicht 5g und wird axial, quasi als Verlängerung
> der Welle befestigt. Hinkleben mit Epoxy reicht.
> mfg mf

Das heißt nur ein Magnet wird benötigt?
Und wo finde ich so einen Magnet?
Wenn ich das in Google suche, kommt nicht wirklich was.
Hab gerade geschaut mein Oszi kann auf jeden Fall SPI-Protokoll 
anzeigen, dann müsste ich das auch irgendwie hin bekommen :)

von Achim M. (minifloat)


Lesenswert?

Jan B. schrieb:
> Das heißt nur ein Magnet wird benötigt?
> Und wo finde ich so einen Magnet?

Im Internet :D

Einer von diesen NdFeB N52 Würfelchen 5x5x5mm³ oder wenig größer mit 
Br>1,4T wird es schon tun. Wichtig ist, dass das Feld radial zur 
Drehachse steht. Einigermaßen zentriert auf's Achsenende, weil die 
Feldlinie horizontal durch den Sensor geht, wenn der Sensor vor dir auf 
dem Tisch liegt.

mfg mf

PS. Ob die Feldstärke reicht, kann man mittels eines 
Feldstärke-Registers, manchmal auch reziprok mittels eines AGC-Registers 
vom Sensor auslesen und somit abschätzen.

: Bearbeitet durch User
von Jan B. (jan_b737)


Lesenswert?

Mit solchen hätte ich wenn ich das richtig verstanden habe ja dann 2 
Pulse pro Umdrehung.

Meinst das reicht?

Sowas könnte ich sogar dann auf die Achse stecken und mit zwei 
Stellringe fest machen.

https://www.magnet-shop.net/neodym/ringmagnete/ringmagnet-40.0-x-25.0-x-5.0-mm-n42-nickel-diametral?gclid=Cj0KCQiA-rj9BRCAARIsANB_4AAxkWQkza3UtQDh7fPpga70hs0QPch4OgxM-jlPBJ0Tsnc_bXpVcvQaAv0-EALw_wcB

Oder so ein Ringmagnet. Den könnte ich an die Achse Zentrisch 
festschrauben.

https://www.magnet-shop.net/neodym/ringmagnete/ringmagnet-12.0-x-4.0-x-6.0-mm-n50-nickel-diametral

: Bearbeitet durch User
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.