Forum: Mikrocontroller und Digitale Elektronik Benutzung von Hallsensoren: welcher Mikroprozessor?


von Sabine Rapp (Gast)


Lesenswert?

Hallo!

Ich wollte nachfragen, ob jemand schon Erfahrung mit dem Anschluss von
Hallsensoren an einen Mikroprozessor gemacht hat. Für eine Arbeit soll
mit Hilfe von 2 oder 4 Hallsensoren die Beschleunigungen aufgenommen
werden (Auflösung dieser auch noch nicht bekannt) und ein
Mikroprozessor integriert werden. Jetzt würde ich gerne wissen, was für
ein MC am besten dafür geeignet ist. Die Auflösung der Sensoren sollte
einigermassen hoch liegen, jedoch weiss ich nicht, wieviel Bit dafür
ausreichend sind (8Bit?) und beim Prozessor genausowenig (16Bit?). Ich
danke im voraus schon für eure Anregungen und Antworten.

Viele Grüße
Sabine

von Barti (Gast)


Lesenswert?

Für Beschleunigungen nimmt man günstigerweise Beschleunigungssensoren.
Erklär mir mal das Prinzip der Messung mit Hallsensoren?!
Und scheinbar hast Du keine Ahnung von µP- bzw. µC-Systemen. Auch ein
8bit-Controller kann 16bit verarbeiten. ;)

von ka-long (Gast)


Lesenswert?

Hallo,

Der uC braucht eher keine 16 Bit. Es kommt evt. darauf an, was mit den
Daten noch gemacht wird und wie viele Daten pro Sekunde Du haben willt.
Wahrscheinlich kannst Du jeden uC für Deine Aufgabe benutzten evt. halt
mit bis zu 4 externen 16bit A/D-Wandlern.

Mit wieviel Bit Auflösung Du samplen solltest, hängt davon ab wie genau
Du etwas haben möchtest und wie gut die Signale von den Hallsensoren
sind. 16bit ist schwer in den Griff zu bekommen, da kommt es auf
sauberes Design an, saubere Spannung, gutes Layout...

Vielleicht kannst Du da etwas abschätzen....was ist der
maximale/minimale Wert, welches der Hallsensor ausgeben wird ? Das
ganze durch 256 bei einem 8bit Wandler gibt Dir dann in etwa die
Größenordnung an, in der Du messen kannst...

Probier einfach mal mit nen kleinen süßen AVR, der ein paar 8bit A/Ds
hat, aus.

Gruß ka-long

von ka-long (Gast)


Lesenswert?

PS:

Besser sind integrierte Beschleunigungssensoren für 3 Achsen.

Z.B. Bosch SMB360, leider nur im BGA Gehäuse erhältlich....


Gruß ka-long

von Sabine Rapp (Gast)


Lesenswert?

Danke für die Antworten, wegen dem Hallsensor: es gibt eine
Beschleunigung, welche bereits größenmäßig vorgegeben ist.
Kann ich den Antworten entnehmen, dass ein 8Bit MC ausreicht?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Beschleunigungssensoren liefert zum Beispiel Sander:
http://www.sander-electronic.de/be00006.html
ich kann mir auch nicht vorstellen, dass es Beschleunigungssensoren mit
Halleffekt (Magnetfeldmessung)  gibt. Die üblichen
Beschleunigungssensoren arbeiten mit kapazitiven Messaufnehmern.
Nach der Tabelle gibt es Typen mit Analogausgang, dann muß der
Mikrocontroller einen AD-Wandler enthalten oder zusätzlich bekommen.
Dann sind da Pulsbreitenmodulierte Typen, die kann der Controller
direkt  mit seinem Timer ausmessen.
Zum schnelleren Einstieg wäre ein komplettes Evaluatrionsboard
vielleicht eher geeignet.

von Rolf Magnus (Gast)


Lesenswert?

> Erklär mir mal das Prinzip der Messung mit Hallsensoren?!

Ich könnte mir vorstellen, daß man einen Magneten zwischen zwei Federn
aufhängt und dann den Hallsensor nutzt, um über das Magnetfeld den
Abstand zum Magnet zu messen. Bei Beschleunigung ändert sich dieser.
Wäre mit einem Beschleunigungssensor aber sicherlich einfacher.

von Barti (Gast)


Lesenswert?

Die fertige Lösung mittels Beschleunigungssensoren ist daher zu
bevorzugen.

von Sabine Rapp (Gast)


Lesenswert?

Aber zurück zu meiner eigentlichen Frage:
Was ist bei Hallsensoren eine mittlere bis hohe Auflösung, in Bit
gemessen. Und zusätzlich: wenn ich max. 4 Stück benutze, was für ein MC
benötige ich (auch in Bit am besten) Danke euch!

Gruß
Sabine

von Frank (Gast)


Lesenswert?

Irgendwie klingt die Fragestellung nach völliger Unwissenheit und die
bereitgestellten Informationen sind nun auch nicht grad das, woraus man
ein rundes Konzept erstellen könnte.Für ein Teil sollte man sich
vielleicht schonmal entschieden haben, also den Rechner oder die
Sensoren und dann das passende Gegenstück aussuchen. Die
Randbedingungen der Messung sind natürlich auch nicht zu
vernachlässigen, also wie schnell sollen die Sensoren abgefragt werden.
Wie schon erwähnt wurde kann auch ein 8-Bit-Controller 16-Bit Daten
verarbeiten, nur eben nicht unbedingt auf einmal sondern ggf
nacheinander. Dann ist die Frage wie die Sensoren an den Controller
angeschlossen werden sollen. Kommt hier z.B. eine I2C Lösung in Frage
oder sollen die Sensoren ihre Daten einfach Pin für Pin an den
Controller bringen? Also erstmal ein wenig nachdenken und dann nochmal
gezielt fragen.

bye

Frank

von Sabine Rapp (Gast)


Lesenswert?

Hallo Frank,

du sprichst mir aus der Seele, ich habe davon echt keine Ahnung. Habe
gestern das erste mal mich mit der Materie beschäftigt, aus diesem
Grunde wende ich mich ja an euch.
Ich kann leider nur die Informationen liefern, die ich oben erwähnt
habe. Das System soll funktionieren, wenn möglich "echtzeitfähig", es
soll also nicht mit ein paar Sekunden Verspätung die Informationen
liefern und verarbeiten.

Für Tipps wäre ich sehr dankbar.

von Karl H. (kbuchegg)


Lesenswert?

definiere "echtzeitfähig"

(In der Informatik versteht man unter 'chtzeitfähig' etwas
völlig anderes).

> nicht mit ein paar Sekunden Verspätung

OK. Wie schnell dann?
Ein paar Millisekunden, Nanosekunden, Zehntelsekunden, ....
Wovon reden wir.

> ich habe davon echt keine Ahnung

Das merkt man.
Meine ehrliche Meinung: das Ganze wird in die Hose gehen.

von Sabine Rapp (Gast)


Lesenswert?

Dachte so an 0,01 bis 0,1 Sekunden. Warum sollte denn das in die Hose
gehen? Habe eben in einem Buch nachgelesen, dass analoge Hallsensoren
für Beschleuniigungsmessungen geeignet sind. Bestimmt wird hierbei bei
jeder Umdrehung einen bis mehrere "Peaks" gemessen, und dieser kann
über die Winkelgeschwindigkeit in Beschleunigung umgerechnet werden.
Ich denke schon, dass dies klappen sollte!

Über weitere Anregungen wäre ich dankbar.


Viele Grüße Sabine

von Dennis Kleine-Beck (Gast)


Lesenswert?

Hallo,

habe den thread mit einer Mischung aus Amusement und
Verständnislosigkeit vefolgt. Das klingt ein bißchen wie: "Ich soll
einen Rennwagen bauen, weiss aber noch nicht ob runde oder eckige
Räder" ;-)

Naja, also mal was konstruktives:

Was soll nun gemessen werden? Beschleunigung mit
Beschleunigungssensoren (z.B. ADXL oder MMA6260) oder aber Magnetfelder
mit entsprechenden Hallsensoren?
Für welche Anwendung ist das ganze?
Welche Auflösung, welche Genauigkeit wird benötigt?
Wie viele Messungen pro Zeiteinheit (z.B. Sekunde) sind nötig? 50 wär
z.B. ein gängiger Wert.

Was soll mit den Messwerten geschehen? Anzeige auf LCD? Weitergabe an
PC? Sonstige Weiterverarbeitung im MC (z.B. Leistung oder
Geschwindigkeit berechnen und ausgeben)?

Soll das ganze batteriebetrieben funktionieren (geringe Stromaufnahme
bei der Bauteileauswahl beachten).

Ich denke nach Beantwortung der Fragen kann Dir besser geholfen werden.
Für die Zwischenzeit empfehle ich schon mal das Studium des
Tutorials...

Gruß,
Dennis

von Karl H. (kbuchegg)


Lesenswert?

> Bestimmt wird hierbei bei
> jeder Umdrehung einen bis mehrere "Peaks" gemessen, und dieser
> kann über die Winkelgeschwindigkeit in Beschleunigung umgerechnet
> werden.

Umdrehung? Wieso Umdrehung?
Wo kommen jetzt auf einmal Umdrehungen her?

von Rolf Magnus (Gast)


Lesenswert?

> Warum sollte denn das in die Hose gehen?

Weil man, wenn man Teile aussuchen will, um was zu bauen, die
Anforderungen doch einigermaßen genau kennen muß. Du scheinst aber noch
nicht mal zu wissen, wie du diese definierst.

> Habe eben in einem Buch nachgelesen, dass analoge Hallsensoren
> für Beschleuniigungsmessungen geeignet sind.

Aha.

> Bestimmt wird hierbei bei jeder Umdrehung

Was für eine Umdrehung? Von etwas, das sich dreht, hast du bisher
nichts gesagt.

> einen bis mehrere "Peaks" gemessen, und dieser kann über die
> Winkelgeschwindigkeit in Beschleunigung umgerechnet werden.

Hmm, das klingt, als ob du ein Rad mit einem Magnet hast und mit einem
Hallsensor messen willst, wie oft der Magnet daran vorbeikommt, also
ähnlich wie bei einem Fahrradtacho. Daraus kann man tatsächlich auf die
Beschleunigung zurückschließen, aber man kann dann nicht sagen, daß der
Hallsensor die Beschleunigung gemessen hat. Er mißt nur Magnetfelder.
Außerdem ist dann die Bitauflösung ziemlich egal. Im Prinzip tut's
dann auch ein digitaler. Nur das Timing ist wichtig.

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Soll "Beschleunigung" die Änderung einer Drehzahl pro Zeiteinheit
bedeuten ? Unter Beschleunigungsmessung mit Beschleunigungssensoren
versteht man normalerweise die direkte Messung mittels einer kleinen
Masse auf dem Sensorchip, die eine direkte Anzeige in "g" also
Erdbeschleunigung 9,81 m/sec^2 erlaubt.
Mit dem Hallsensor soll vermutlich digital eine Drehzahl gemessen
werden, also irgendein ferromagnetisches "Zahnrad", das auch nur
einen einzigen Zahn haben kann und periodisch einen Hallsensor
triggert. Eine Änderung der Umdrehungsgeschwindigkeit könnte dann in
"Beschleunigung" umgerechnet werden.
Ist das Deine Aufgabe?

von Sabine Rapp (Gast)


Lesenswert?

Was soll nun gemessen werden? Beschleunigung mit
>Beschleunigungssensoren (z.B. ADXL oder MMA6260) oder aber
Magnetfelder
mit entsprechenden Hallsensoren?<

Mit Hallsensoren

>Für welche Anwendung ist das ganze?<

Für eine Motorsteuerung --> die ein vorher festgelegtes Geschwindigkeit
- Zeit Funktion bzw. Beschleunigungs- Zeit - Funktion soll abgelaufen
werden und miteinander verglichen werden.


Welche Auflösung, welche Genauigkeit wird benötigt?

> war ja meine Frage...<

Wie viele Messungen pro Zeiteinheit (z.B. Sekunde) sind nötig? 50 wär
z.B. ein gängiger Wert.


>Was soll mit den Messwerten geschehen? <

Verglichen mit den vorgegebenen Werten

>Anzeige auf LCD? <

Nein


>Soll das ganze batteriebetrieben funktionieren (geringe Stromaufnahme
bei der Bauteileauswahl beachten).<

Nein



Wäre über weitere Infos dankbar

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Jetzt wird die Sache klare. Mit Beschleunigungssensoren hat das nichts
zu tun, es geht erst mal um Drehzahlmessung, und anschließende
Umrechnung in Verbindung mit einer Zeitmessung.
Von Allegro, dem Hallsensorhersteller gibts einige
Applikationsschriften:
http://www.allegromicro.com/hall/ats.asp
Wenn das "Zahnrad" nicht magnetisiert ist, sondern nur aus
ferromagnetischem Material besteht, muß der Hallsensor noch einen
integrierten Permanentmagneten haben, wie die hier von Allegro
beschriebenen Typen. Ein normaler Hallsensor geht dann nicht, da müßte
ein Permanentmagnet rotieren.
Die Auflösung der Messung wird hauptsächlich von der Anzahl der Zähne
bestimmt, da kann der Mikrocontroller nichts ändern.

von Dennis Kleine-Beck (Gast)


Lesenswert?

> Mit Hallsensoren

OK. Das scheint jetzt wenigstens schon mal klar zu sein.

>>Für welche Anwendung ist das ganze?<

>Für eine Motorsteuerung --> die ein vorher festgelegtes
>Geschwindigkeit - Zeit Funktion bzw. Beschleunigungs- Zeit - >Funktion
soll abgelaufen werden und miteinander verglichen werden.

Aha. Gut! Um dann was zu tun, wenn der Vergleich eine Abweichung
feststellt? Wird die Drehzahl nachgeregelt? Wird eine Meldung
ausgegeben? Irgend einen Sinn / Aufgabe muss das ganze ja heben.


>>Welche Auflösung, welche Genauigkeit wird benötigt?

> war ja meine Frage...<

Kann man aber so nicht beantworten. Es könnte helfen, zu wissen, wie
der "Vergleichsalgorithmus" aussehen soll, bzw. wie schnell sich das
Rad drehen wird. "Normalerweise" reichen Genauigkeiten im Bereich von
+/- 1%. Damit kann man dann schon mal als erste Näherung sich Gedanken
über benötigte Messfrequenz, Datentypen, Taktfrequenz, etc. machen.



>>Was soll mit den Messwerten geschehen? <

>Verglichen mit den vorgegebenen Werten

Ok (s.o.). ber letzlich muss daraus ja noch eine Folgeaktion
resultieren. Wozu sonst der Vergleich?


> Wäre über weitere Infos dankbar

Wir auch! ;-)

Dennis

von Sabine Rapp (Gast)


Lesenswert?

>>>Für welche Anwendung ist das ganze?<

>>Für eine Motorsteuerung --> die ein vorher festgelegtes
>>Geschwindigkeit - Zeit Funktion bzw. Beschleunigungs- Zeit -
>>Funktion
>>soll abgelaufen werden und miteinander verglichen werden.

>Aha. Gut! Um dann was zu tun, wenn der Vergleich eine Abweichung
>feststellt? Wird die Drehzahl nachgeregelt? Wird eine Meldung
>ausgegeben? Irgend einen Sinn / Aufgabe muss das ganze ja heben.


Es ist eine hinterlegte Geschwindigkeits- Zeit bzw. Beschleunigungs-
Zeit Funktion. Diese soll mit der realen Funktion verglichen werden.
Für diese wird ja eine bestimmte Stromstärke benötigt. Wenn diese
voneinader abweichen, soll ein "Signal" erfolgen, bzw. das ganzr
anhalten.

von Rahul (Gast)


Lesenswert?

Eigentlich soll nur nach einer bestimmten Zeit eine bestimmte Drehzahl
anliegen?!
Und diese Zeit kann quasi beliebig klein gewählt werden?
Das sollte ein AVR problemlos packen. Der hätte bloß Probleme mit zu
kleinen Drehzahlen...
Eigent lich muß man die vorgebene Tabelle zu modifizieren, dass die
Zeit zwischen zwei Impulsen gemessen wird und mit der Soll-Zeit
verglichen wird.
Das kann man per ICP problemlos machen...

von Sabine Rapp (Gast)


Lesenswert?

Super! Danke, AVR von Atmel z.B.? Sind dann wohl 8bit MC, oder? Und was
für Hallsensoren könnten dann noch passen? Welche Auflösung ist
passend?

von Rahul (Gast)


Lesenswert?

Und wieder Fragen zu den Parametern: Wie schnell dreht die Welle
(höchste Drehzahl)? Wieviele Impulse gibt es pro Umdrehung?

Hast du dir den Link von Christoph Kessler angeguckt?

Zur Bauteilauswahl kann ich leider nichts sagen (Keine Ahnung von
Hall-Sensoren).

Netterweise hat Andreas Schwarz ein schönes Gimick ins Forum eingebaut:
Begriffe, die hier im Wiki bekannt sind, werden von System automatisch
unterstrichen. So auch AVR...

von Dennis Kleine-Beck (Gast)


Lesenswert?

Da ja jetzt offenbar alles (!) geklärt ist bleibt nur noch
weiterhin viel Erfolg und gutes Gelingen zu wünschen.

Dennis

P.S.: Nimm z.B. nen ATMEL Mega16 oder Mega32. Hat dann auch gleich noch
nen ADC für die kürzlich nebenbei erwähnte Strommessung und kommt im
bastelfreundlichen DIP 40 daher. Dann kann ja eigentlich nichts mehr
schiefgehen!

von ka-long (Gast)


Lesenswert?

Hi,

Diu brauchst keinen einzigen A/D-Wandler, Du mißt ja nur die
Impulse...

Also auch keine Auflösung, nur ein bisschen
Analogschaltungstechnik....

Gruß ka-long

PS : Du solltest Dich selbst erst mal richtig informieren, was Du
möchtest...

Am Anfang war "Beschleunigung mit Hallsensoren", jetzt eher
Drehzahlregler mit Hallsensor......das sind zwei ser verschiedene Dinge
;-)

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Und nicht vergessen, irgendwas muß magnetisch sein, entweder das
rotierende Zahnrad oder im Hallsensor, und da kenne ich nur noch diese
Allegrotypen AT6... Ohne Magnet, allein von Restmagnetismus wird auch
irgendwas zappeln, aber das ist undefiniert. Die Allegroteile setzen
wir hier auch ein, früher hatten wir noch einen Feldplattensensor von
Siemens, der hatte auch einen integrierten Permanentmagneten. Allegro
hat da eine komplizierte Nachführregelung eingebaut, die äußere
Magnetfelder kompensiert, und den Triggerpunkt auf die Mitte des
Toleranzfensters legt. Heraus kommt ein digitales Signal, das direkt in
einen Mikrocontroller gegeben werden kann. Nachteil für kleine Motoren
ist die Größe, fast 1 Zentimeter in Durchmesser und Länge.

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.