Hallo, ich habe hier einen ATMega8(Referenz-U 5V) an einen Hallsensor angeschlossen. Der Hallsensor gibt, wenn kein Magnetfeld vorhanden ist, 2,5 V aus. Bei Abweichung der Spannung zu 0V hin liegt ein negatives und bei einer Abweichung zu 5V hin gibt er ein postives Feld aus. Bis dahin klappt alles, aber bei der Eichung hab ich nun gemerkt, dass die Auflösung von ca 5mV/Bereich doch recht dürftig ist. Nun wollt ich die Differenz verstärken, um eine höhere Auflösung zu erreichen und per µC zurückrechnen und in mT umwandeln. Da der ATMega aber nur positive Spannungen messen kann, wollte ich fragen, wie ich am einfachsten realisieren kann, dass bei einem negativem Feld ein - und bei einem positiven Feld ein + erscheint. MfG Markus
die frage ist nicht dein ernst, oder? wie wäre es mit subtraktion das AD-wertes bei 2,5v.
Hi Markus, 5 V / 1024 = ca. 5 mV das sind die Grenzen vom ATMega8. Gäbe noch die Möglichkeit, einen rail-to-rail In/Out OpAmp, der mit 5 V auskommt, davorzuschalten. Somit lassen sich bei einer Verstärkung von 10 (Offset = 2,5 V) kleine Werte besser auflösen. Die Ausgangsspannung des OpAmp geht bei größeren Werten nur in die Begrenzung, gefährdet aber den Mega8 nie. Zusätzlich ließe sich auch der Offset (bei konstanter Verstärkung) vom Mega8 über passend gewählte Widerstände steuern. Damit ließe sich die Auflösung steigern, die Genauigkeit dürfte aber eher sinken... Gruß Ralli
Wenn du noch nicht auch dem Mega8 festgelegt bist, wäre auch der Einsatz eines AVRs mit eingebautem Differenzverstärker zu überlegen. Leider sind die entsprechenden Typen entweder deutlich größer (ATmega32) oder kleiner (ATtiny25/45/85) als der ATmega8.
oh, sorry, das hier
> die Auflösung von ca 5mV/Bereich doch recht dürftig ist. Nun wollt ich
hatte ich überlesen. ist das die die auflösung des hallsensors?
bringt der bei maximalem magn. fluss 5mV ausschalg?
wenn ja, dann handelt es sich ja nur einfach um ein analoges hallelement
(welcher typ ist es denn) und du musst sowieso einen differenzverstärker
benutzen, der beide ausgänge des hallelements subtrahiert, sonst ist die
abhängigkeit der hallspannung von der betriebsspannung (eigentlich
stromstärke) und der temperatur viel zu groß und damit wären die werte
sowoeso nichts wert.
Hallo, danke schon mal. Auf den Mega8 bin ich leider schon fest gelegt. >ist das die die auflösung des hallsensors? die auflösung des ADC. Der hat bei meiner Referenzspannung eine Bereichsbreite von 5mV >Somit lassen sich bei einer Verstärkung von 10 (Offset = 2,5 V) kleine >Werte besser auflösen. >Die Ausgangsspannung des OpAmp geht bei größeren Werten nur in die >Begrenzung, gefährdet aber den Mega8 nie. >Zusätzlich ließe sich auch der Offset (bei konstanter Verstärkung) vom >Mega8 über passend gewählte Widerstände steuern. Also versteh ich das richtig: Per Widerstände den Offset, also 2,5V, auslöschen und dann die übrige Spannung, die entsteht wenn ich den Sensor in ein Magnetfeld tauche, verstärken. Aber wieso geht das nur bei konstanter Verstärkung? Offset wäre doch immer 2,5V und somit bliebe doch U=2,5V/I immer gleich
wenn die ausgangspannung des hallsensors groß genug ist, wo ist dann dein problem? alle adc-werte ab 0x200 (10bit-auflösung) sind positiv und alle darunter sind negativ. zieh vom adc-wert die 0x200 ab und du hast deine negativen und positiven werte. entweder habe ich das problem nicht verstanden oder du. es ist doch vollkommen wurscht, ob die ausgangsspannung des hallsensors bei umgekehrter feldrichtung ebenfalls positiv ist. wenn das so wäre, dann hättest du ein problem.
Also nicht dass wir nun aneinander vorbei reden, ich hab dich nun so verstanden, dass ich programmtechnisch 2,5V vom Hallsensor abziehen soll und so meine Werte erhalte. Das ist ja richtig, jedoch wollte ich eine höhere Auflösung als 10Bit erreichen. (Wären in meinem Bsp. ungefähr 1Gauss/Bereich -> zu viel) Wenn ich jetzt programmtechnisch einfach 2,5V abziehe, hätte ich zwar positive und negative Werte, es wäre mir aber nicht möglich den Offset zu bereinigen (real 2,5V abziehen), diesen zu verstärken und so eine höhere Auflösung zu erreichen, da ja real noch 2,5V übrig bleiben -> Keine Verstärkung möglich, da der ADC nur bis 5V misst. Wenn ich nun aber zum Beispiel per Poti 2,5V abziehe, bekomme ich ja keine negativen Werte Hoffe du hast nun mein Problem verstanden :-)
Dann bleibt dir nur, einen externen AD-Wandler mit höherer Auflösung per SPI oder I2C an den ATmega dranzuknoten. Mehr Auflösung als 10 Bit kann der Mega8 nicht. Entsprechende Type mit 12 bit Auflösung oder mehr findest du bei einschlägigen Herstellern wie Analog Devices, Texas Instruments usw. _.-=: MFG :=-._
Hmmmm.... das übersteigt meine Fähigkeiten leider
Markus wrote: > Also nicht dass wir nun aneinander vorbei reden, > > Hoffe du hast nun mein Problem verstanden :-) nein, überhaupt nicht. entweder bin ich zu blöd oder du hast ein besonderes talent dich unklar auszudrücken. mach es doch mal konkret. welche ausgangsspannungen liefert der hallsensor denn nun wirklich und welcher spannungsbereich interessiert dich denn für deine messung? der gesamte spannungsbereich des hallsensors oder nur ein teil davon? du kannst mit recht einfachen mitteln zb einen spannungsbereich, zb von 2,5V bis 3V ebenfalls wieder mit 10bit auflösen. im prinzip könnte man mit einem externen DA-wandler dann auch die auflösung der AD-wandlung erhöhen, indem der DA-wandler eine offsetspannung ausgibt, die per opv vom hallsignal abgezogen wird. du solltest dich aber keinen illusionen hingeben. 10bit auflösung, das ist schon eine genauigkeit von 0,1%. mit irgendwelchen basteleien wirst du da kaum genauer werden, denn deine schaltungen müssten in der toleranz (rauschen, temperaturabhängigkeit, spannungskonstanz) wesentlich besser als 0,1% sein. die frage ist, ob dein hallsensor überhaupt solch eine genauigkeit misst. wenn du jetzt also, durch welche maßnahmen auch immer, 12 bit auflösung erreichst, dann hast du zwar ein paar mehr stellen nach dem komma auf deiner anzeige, die sagen aber über die wirkliche messgröße (magn. flussdichte) absolut nichts aus. es handelt sich dann letztendlich nur um eine phantasiegenauigkeit.
gg ja das mit dem unklar ausdrücken kann durchaus sein, war schon immer ne Niete in Deutsch :D, aber hab mein Bestes gegeben >welche ausgangsspannungen liefert der hallsensor denn nun wirklich Er liefert 2,5V, wenn kein Feld vorliegt. Wenn nun ein negatives Feld vorliegt, liefert er etwas von 0-2,5V. Wenn nun ein positives Feld vorliegt liefert er etwas von 2,5-5V. Dabei ist die Abnahme/Zunahme der Spannung direkt proportional zur magnetischen Flussdichte. >welcher spannungsbereich interessiert dich denn für deine messung? Ich brauch nicht den gesamten Bereich, da mich eher kleine Feldstärken interessieren. Gut wären so in etwa 1,75-3,25V. (Kann auch abweichen) >der gesamte spannungsbereich des hallsensors oder nur ein teil davon? Nein, wie oben eben nur ein Teil davon. Vielleicht kann ichs ja so ausdrücken: Ich möchte einen Teil meines Bereichs einschränken und gegen Auflösung eintauschen. also z.B. nicht mehr von 0-100mT und 10Bit sondern 0-50mT und 11Bit
Hi Markus In welchem Spannungsbereich befinden sich die Messungen? Wenn bei maximalem Feld z.B. 3V bzw. 2V gemessen werden (also 1V komplett), könnte man die Differenzspannung vom Hallsensor zu 2,5V verstärken, eben auf 0 bis 5V. Somit hättest Du eine höhere Auflösung, da das eine Volt nun in einem Bereich von 5V eingelesen wird. Verständlich? MfG
Markus wrote: > Ich brauch nicht den gesamten Bereich, da mich eher kleine Feldstärken > interessieren. Gut wären so in etwa 1,75-3,25V. (Kann auch abweichen) > das sind also 3,25V-1,75V=1,5V spannungsdifferenz, die mitte liegt also bei (3,25V+1,75V):2=2,5V. wenn du zum AD-wandeln die intere referenzquelle mit 2,56V nimmst (und das solltest du tun, wenn es einigermaßen genau werden soll), dann löst der ADC den Spannungsbereich von 0...2,56Volt mit 10bit auf. du kannst jetzt mit einem differenzverstärker den spannungshub von 1,5V etwas verstärken (faktor 1,6) und im spannungsbereich nach unten verschieben, sodass die spannungen im bereich von ca 0v (wird natürlich nicht ganz klappen aber es gibt opvs die dem nahe kommen) bis 2,56V liegen. diese werte kannst du dann mit 10bit auflösen, sodass der bereich von 0-50mT mit 10bit aufgelöst wird. > sondern 0-50mT und 11Bit ?? wo soll das 11.Bit herkommen?
Hallo, >?? wo soll das 11.Bit herkommen? Also da hab ich was falsch beschrieben. Ich meinte eigentlich, dass ich bei 0-50mT die gleiche auflösung habe, als wenn ich 11Bit bei 0-100mT hätte. >In welchem Spannungsbereich befinden sich die Messungen? >Wenn bei maximalem Feld z.B. 3V bzw. 2V gemessen werden (also 1V >komplett), könnte man die Differenzspannung vom Hallsensor zu 2,5V >verstärken, eben auf 0 bis 5V. >Somit hättest Du eine höhere Auflösung, da das eine Volt nun in einem >Bereich von 5V eingelesen wird. OK, gut. Ich könnte aber evtl. in ein stärkeres magnetfeld kommen und dann würden meinen ATmega mehr als 5V eingehen. Ist das schlecht für den Mega, oder gibts irgendeine Sicherung, dass den Mega nicht mehr als 5V erreichen? >wenn du zum AD-wandeln die intere referenzquelle mit 2,56V nimmst OK nimm ich die Referenzspannung. Aber wieso ist die genauer als die 5V? Vielleicht kauf ich mir noch eine ext. Präzisionsreferenz >du kannst jetzt mit einem differenzverstärker den spannungshub von 1,5V >etwas verstärken (faktor 1,6) und im spannungsbereich nach unten >verschieben, Wie genau meinst du das? Wenn ich die Differenz verstärke, müsste sie doch eigentlich schon 'unten', also bei 0V beginnen, oder versteh ich da was falsch?
Hi, Der Sensor hat bei keinem Feld nicht genau 2,5V, sondern 2,455 oder so. Wie soll ich dann den Differenzverstärker beschalten, um auch wirklich die Differenz zu bekommen? Ich brauch da ja an einem Eingang irgendwie 2,455V.
Äh, sorry aber ein letzter Post noch, was mir eben gekommen ist: Könnte ich nicht das ganze auch per Widerstand auf zB 0,5V runterregeln, so dass am R immer 2V abfallen. DAnn die 0,5V verstärken um das fünffache? Dann hätte ich ja theoretisch von 2-3V 10Bit auflösung und müsste nicht mit den OPV hantieren. Oder hab ich da was übersehen?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.