PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hallsensor - einfachste Möglichkeit?



FeiaDragon
28.05.2008, 18:11
Hey!

ich wollte eine Drehzahlmessung bauen...dazu habe ich ein paar verschiedene Hallsensoren hier, aber das Problem ist das die kein brauchbares (oder überhaubt messbares) Signal liefern.
Der einzige bei dem ich überhaubt etwas entdecken konnte hatte er 0.2v mit magnet und 0v ohne als ausgang -.-

Was wäre jetzt die einfachste Möglichkeit diese 0.2v auf ein Pegel zu bekommen das der PIC als log. 1 erkennt? (PIC 16F870)

Danke,
Kai

oratus sum
28.05.2008, 19:29
Drehzahlmessung mit einem Hallsensor? Nicht gerade ideal. Wieso nimmst du nicht einen Durchgangsschalter per IR und machst ein Loch in dein Zahnrad? Kann man auch ganz leicht mit ner LED + Fotowiderstand machen. Da hast du vernünftige Werte. Und ausserdem darfst du das Magnetfeld des Motors nicht vergessen.

FeiaDragon
28.05.2008, 19:35
mmh, darüber hab ich bisher gar nicht nachgedacht *g*

gut...danke, dann werd ich das einfach mal probieren (ums genau zu sagen hatte ich eben schon einen (anscheinend) kaputten fotowiderstand in der hand :) )

aber so rein theoretisch, von 0.2 auf irgendwas sinnvolles...brauch ich da nen transistor mit der schaltschwelle irgendwo um 0.1?
oder wie würde man das !einfach! machen?

harry3
28.05.2008, 19:51
Am besten mit einem OPV.
Entweder du verstärkst das Signal mit dem OPV z.B. um den Faktor 10 und steuerst dann einen Transistor an, der dir dann das logische Signal liefert.
Oder aber du verwendest einen OPV als Komparator, der dir das Signal mit einem Spannungswert von 0,2V vergleicht, und dementsprechend entweder logisch 1 oder 0 liefert.

Transistoren mit Schaltschwelle um 0,1V gibts nicht, das niedrigste liegt um die 0,3V.

Besserwessi
28.05.2008, 20:52
Es ist durchaus möglich das Signal auch mit einem oder mehreren Transistoren zu Verstärken. Die Schwellen wird dabei durch Widerstände eingestellt. Oft ist aber die OP-Amp Schaltung einfacher zu berechenen und Temperaturstabiler.
Ein Hall-sensor, oder alternativ ein magnetoresistver Sensor hat durchaus einen wesentlichen Vorteil: Er ist ziehmlich unempfindlich gegen normalen Schmutz.

harry3
28.05.2008, 20:55
Welche Transistorschaltungen meinst du jetzt? Darlington geht natürlich, aber kann man da so genau den Schaltpunkt einstellen!?

oratus sum
28.05.2008, 21:23
Ja gegen normalen Schmutz schon.

Aber wenn man überlegt was für Magnetfelder innerhalb eines Bots und vorallem in Nähe des Motors ist...

WEnn dus per Hallsensor machst, würde ich auf jedenfall am Schluss einen ausführlichen Test machen, nicht, dass du plötzlich komische Werte hast.

Foooob
28.05.2008, 23:23
Die selben Probleme die du beschreibst hatte ich auch!

Ich wollte ebenfalls mit einer Magnetfeldmessung die Drehzahl eines Zahnrades ermitteln und anfangs bekam ich keine vernünftigen Spannungswerte heraus.

Ich hab dann folgendes gemacht:

2 sehr (!) starke Magnete an das Zahnrad angebracht (die gibt es z.B. bei robotikhardware.de). Mit schwachen, "Haushaltsmagneten" erreicht man nichts.

Den Abstand zwischen Magnete und Zahnrad auf ein absolutes Minimum begrenzen, so dass sie sich fast schon berühren. Schon bei mehr als 5mm zerstreut sich die Flussdichte so, dass man nichts brauchbares mehr messen kann.

Hall-Sensor (bzw. Hall-Switch bei mir) DIREKT an den I/O-Pin des AVRs.
Ich habe anfangs ebenfalls auf eine OP-Amp-Verstärkerschaltung gesetzt. Das ging aber gründlich in die Hose und ich bekam nie ein brauchbares Signal am Ausgang (und Eingang). Das selbe wenn ich direkt mit dem Multimeter dran ging. Erst als ich "aus Frust" den OP-Amp überbrückt habe und direkt auf den AVR ging bekam ich plötzlich vertretbare Werte!
Bei einer AD-Wandlung mit 5V als Referenzgröße bekam ich im Test ca. 20-70 (digitalisierter Bitwert) wenn kein Magnet detektiert wurde und bis zu 270 wenn der Magnet vorbeikam. Mit einer niedrigeren Referenzgröße kann man die Auflösung natürlich noch besser anpassen.


Aber es stimmt schon, Magnetfeldmessung sollte nur gemacht werden, wenn optische Lösungen nicht mehr anwendbar sind.

FeiaDragon
29.05.2008, 12:30
danke erstmal für die ganzen antworten!

also ich habs nicht mit normalen probiert, sondern auch mit starken neodym magneten für brushless aussenläufer, wenn die nicht reichen dann weiß ich auch nicht weiter :D

Wegen dem abstand, ich hab die direkt an das ding dran gehalten, sollte doch eigentlich reichen ;)

mmh das habe ich bisher nicht probiert, das ding direkt an den µC zu hängen.
warum gibt ein multimeter denn da keinen verwendbaren wert?
gibts dafür eine erklärung? ;)

das teste ich jetzt mal, danke!

Foooob
29.05.2008, 17:33
Dafür hätte ich auch gerne eine Erklärung. ;-)

Wenn du die Sensoren mal direkt an den A/D-Wandler hängst kannst du bescheid geben ob es funktioniert hat?

FeiaDragon
29.05.2008, 17:43
ja...es funktioniert nicht :D

was aber ziemlich sicher nicht am hall liegt, da meine a/d wandler alles messen ausser dem was anliegt.

selbst bei vdd auf den ad eingängen gibt er mir -20 aus und solche sachen.
hast du da noch einen kleinen kondensator oder irgendwie einen pull-down widerstand drin oder sowas?

das problem hatte ich auch schon öfters, aber noch keine lösung.

Besserwessi
29.05.2008, 20:05
Um was für einen Hall Sensor handelt es sich, und wie ist der beschaltet. Bei den Hall sensoren gibt es digitale mit integriertem Verstärker und analoge ohne. Die analoge Hall Chips werden auch bei einem Starkem Magenten nur ein paar mV ausgeben, vorausgesetzt man hat die richtige Beschaltung.

FeiaDragon
29.05.2008, 22:56
die letzen versuche hab ich mit einem tle4935L gemacht

datenblatt: http://pdf1.alldatasheet.com/datasheet-pdf/view/45875/SIEMENS/TLE4935.html

allerdings (wie oben vorgeschlagen) komplett ohne externe beschaltung, direkt mit dem output an den pic.

ein problem (die frage ist ob da noch andere waren) war auf jedenfall ein falsche type-cast in der software. ich wollte einen unsigned int (bis 255) als signed ausgeben -> overflow, werte um -20 ;)

FeiaDragon
30.05.2008, 11:58
mmh, nächster Problem ;)

das auslesen scheint ja jetzt soweit zu klappen, man sieht auch deutlich das die Werte variieren ob der Magnet da ist oder nicht.

Aber da sind manchmal Störungen drin (Magnet noch da, aber Wert auf 0) oder irgendwelche Spannungen ohne das irgendein Magnet angelegt wäre.

Dann dacht ich mir...Kondensator zum stabilisieren ist doch ne gute idee...dann hatte ich einen schönen Schwingkreis, was dann auch nicht ganz das war was ich haben wollte :D

also, was kann ich ändern damit diese Störungen verschwinden?

Besserwessi
30.05.2008, 12:41
Der TLE4935 hat einen open Kollector Ausgang. Man kriegt also ein digitales signal und braucht einen Pullup Widerstand (ca. 10 K) gegen Vcc. Ohne den Widerstand wird man kaum ein Signal kriegen. An den Ausgang sollte man keinen Kondensator legen. Ein Kondensator (ca. 10-100nF Keramik) sollte als Abblockkondensator an die Versorgungsspannung.

FeiaDragon
30.05.2008, 13:39
ja, so funktionierts.

besten dank!

jetzt würd ich das auch gern noch verstehen...ich hab nur physik lk gehabt und keine elektronische ausbildung :(

hier ist meine erklärung:

Der pull-up sorgt für einen bestimmten pegel auf dem Ausgang des Hall-Sensors (vom Tle4935 jetzt in dem Fall). Wenn dieser jetzt aber durchschaltet fließt der strom durch den kollektor im transistor vom sensor und damit bleibt am ausgang nichts mehr übrig -> 0V am ausgang.

wenn der transistor sperrt sind da die +5 vom widerstand und damit das signal high?

stimmt das so?
ich würd das gern auch mal verstehen...sonst frag ich noch 20mal hier nach ;)

Besserwessi
30.05.2008, 16:15
Das ist richtig erklärt.

fhartz
02.06.2008, 19:04
Moin,ich habe durchaus gute Erfahrungen mit Magnetfeldsensoren,mfg F.H.

http://www.ees-hartz.de/sensoren/page7.html

http://www.ees-hartz.de/

Rage_Empire
02.06.2008, 22:17
also prinzipiell funktioniert es mit einem Hallsensor schon ganz gut. Hatte schon mit Drehzahlsensoren zu tun, welche mit Hallefekt arbeiteten. Jedoch wahren die für hohe Drehzahlen so ab 10000 U/min.