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
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. ;)
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
PS: Besser sind integrierte Beschleunigungssensoren für 3 Achsen. Z.B. Bosch SMB360, leider nur im BGA Gehäuse erhältlich.... Gruß ka-long
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?
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.
> 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.
Die fertige Lösung mittels Beschleunigungssensoren ist daher zu bevorzugen.
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
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
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.
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.
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
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
> 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?
> 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.
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?
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
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.
> 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
>>>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.
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...
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?
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...
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!
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 ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.