Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage: integrierte Hall-Sensoren in Aktuator - werde nicht schlau daraus


von Markus (Gast)


Lesenswert?

Hallo zusammen,

ich habe hier einen Aktuator mit integrierten Hall-Sensoren. Leider 
werde ich nicht ganz schlau aus dem Datenblatt. Habe bisher noch nicht 
mit Hall-Sensoren gearbeitet und war der Meinung, dass diese einen 
Spannungswert zurückliefern, den ich mit einem A/D-Wandler meines µC 
auswerten könnte.

Jetzt werde ich aber aus diesem Datenblatt nicht schlau:

http://www.concens.com/PRODUCTS/Actuators/Hall_Sensors.aspx#374

Für was sind diese zwei Pulse und wie kann ich diese vernünftig mit 
meinem µC auswerten?

Kann mich bitte irgendjemand aufschlauen?

Danke und Gruß

von Roland P. (pram)


Lesenswert?

Schaut aus wie ein GRAY-Code. Such mal nach Drehencoder. Damit kannst du 
die Umdrehungen des internen Getriebes zählen und anhand der Angabe im 
DBL, wieviel Pulse/mm geliefert werden auf die Position schließen.

Gruß
Roland

von Michael R. (mexman) Benutzerseite


Lesenswert?

Hallo Markus.
Das ist ein linearer Aktuator.
Innendrinnen enthaelt er einen Motor mit Getriebe.
Am der Motorachse sind zwei Hallsensoren angebracht, die dir ein Signal 
ausgeben.
Beide Hallsensoren sind phasenverschoben angebracht.
Dein uC braucht keinen ADC sondern zwei Digitaleingaenge.
Damit kannst Du die beiden Hallsensoren einlesen und
1. Die Motordrehzahl ausrechnen - und damit die Verfahrgeschwindigleit 
des Aktuators und
2. Die Drehrichtung bzw. Verfahrrichtung ermitteln (logische Auswertung 
der beiden Hallsignale). Wenn Deine SW ein bischen schlauer ist, kann 
sie die Aufloesung (Pulse / Umdrehung) verdoppeln.

Diese beiden Pulse und die Richtungsinfo sind notwendig, um z.B. einen 
Zaehler mitlaufen zu lassen, der die aktuelle Aktuatorposition 
repraesentiert!

Das ganze ist ein Inkrementalencoder, d.h. es ist kein definierter 
Nullpunkt vorhanden. Du musst den Aktuator gegen einen Anschlag oder 
Sensor fahren lassen und dem Positionszaehler sagen "hier ist Null"!.


Die Hallausgaenge sind uebrignes OpenCollector und benoetigen einen 
Pullup Widerstand von 1kO (lt. Datenblatt empfohlen).


Noch Fragen?

Gruss

Michael

von Markus (Gast)


Lesenswert?

vielen Dank für die Erklärungen! Jetzt ist mir das ganze etwas klarer.

Das ganze finde ich aber ziemlich ungeschickt gelöst: wenn der Strom 
mitten in der Bewegung ausfällt und ich wieder neu starte, kann ich 
nicht sagen, an welcher Stelle sich der Aktuator befindet - richtig?

D.h. ich muss das mech. System wieder auf null fahren, heißt bis 
Anschlag, und wieder von vorne Anfangen.

Finde ich ziemlich ungeschickt - um es nett auszudrücken. :-(

Gruß
Markus

von Markus (Gast)


Lesenswert?

P.S.: wenn ich gegen einen Anschlag fahre, setzen die Impulse aus - 
richtig? So kann ich die Anschlagserkennung realisieren. Oder schadet 
das dem Aktuator - würde wahrscheinlich einige µ- oder Millisekunden 
gegen den Anschlag donnern zu sich zu viel Strom ziehen...

von Michael R. (mexman) Benutzerseite


Lesenswert?

Hallo Markus,

ein "gegen den Anschlag fahren" darf dem Teil nicht schaden, denn jede 
mechanische Bewegung kann mechanisch blockiert werden und muss das 
abkoennen.

Es ist richtig: Aus dem Abstand der Hallsignale kannst Du auf ein 
Bremsen der Bewegung schliessen und dann bei oder kurz vor Blockieren 
abschalten.
Eine Stromueberwachung ist so ueberfluessig, denn der Motorstrom ist 
fast linear zur Motorlast und umgekehrt proportional zur 
Motorgeschwindigkeit.

Natuerlich ist bei Verlust der Betriebsspannung der Hallsensoren die 
Positionsinformation weg sofern sich die Spindle aus irgendeinem Grund 
noch bewegen kann.
Wohlgemerkt nicht bei Verlust der Spannung am Motor sondern den 5V 
Hallversorgung.

Ausser, ein mechanisches Verstellen der Spindel ist von aussen (bei 
Spannungsverlust) nicht moeglich. In solchen Faellen detektiert der uC 
einen Betriebsspannungsverlust und schreibt den Positionswert in ein 
EEPROM weg. Dann ist nach Power-On alles wieder i.O.

Was man gerne macht ist, die Betriebsspannung der Hallsensoren zu pulsen 
und deren Position zu pollen. Also die 5V-Versorgung alle 10mS fuer 
0.xmS einschalten und schauen, ob sich die Hallsignale geaendert haben. 
Wenn ja, dann uC aufwecken und Zaehlerstand korrigieren!

Im praktischen Betrieb empfiehlt es sich, so einem System immer nur in 
einer definierten Position das Abschalten der Betriebsspannung zu 
erlauben.

Gruss

Michael

von Markus (Gast)


Lesenswert?

Hallo Michael,

vielen Dank für die vielen Informationen! :-)

Damit sollte es jetzt kein Problem mehr sein, etwas passendes zu 
programmieren.

Gruß
Markus

von Link zu (Gast)


Lesenswert?

>Finde ich ziemlich ungeschickt - um es nett auszudrücken. :-(

Gibt es auch anders, will aber kaum einer bezahlen...


Gast

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.