ich bin auf der Suche nach einen Lagesensor für 3 Achsen.
Diesen hätte ich gern als einzelnen IC zum Einstecken in einen Sockel oder zum Einlöten auf eine Lochrasterplatine.
Ich wollte um Platz zu sparen keine zu große fertige Platine nehmen.
Eine Betriebsspannung von 3,3 oder 5V wäre dafür ideal.
Fals es dieses IC auch mit einen Beschleunigungssensor gibt ist das optional.
Habt ihr schon irgendwelche Erfahrungen mit solchen Sensoren? Muss ich irgendetwas beachten?
Könnt ihr mir einen empfehlen?
Welche Schnittstellen können diese habe?
Besten Dank für Informationen.
Stefan
EDIT: Ich habe gerade diesen gefunden.
Was meint ihr?
Ich benutze den MPU-6050, gibt es in der Bucht schon ab 2,50 € beim Chinesen. Das Teil ist sehr einfach anzuschließen (I²C) und es gibt jede Menge Beispielprogramme. Außerdem ist ein Gyro integriert.
Ansonsten habe ich auch schon den ADXL335 benutzt, der funktioniert analog (d.h. jede Achse hat einen eigenen Analogen Ausgang den du dann an den ADC vom Arduino anschließt). Das ist insofern einfacher, dass du keine weiteren Bibliotheken benötigst. Aber in der Auflösung ist er schlechter, da du nur auf ca. 670 verschieden Werte kommst mit einem 10 bit ADC und 3.3 V, der MPU-6050 ist mit 16 bit auf jeder Achse deutlich höher aufgelöst.
Heiny:
Der ADXL335 ist leider kein Gyro und kommt nicht in Frage.
Dass du einen Gyro suchst hast du in deinem ersten Post nicht erwähnt. Mit einem Gyro misst man Rotationsgeschwindigkeiten. Für reine Lagebestimmung reicht ein Beschleunigungssensor (sowas wie der ADXL335). Da berechnet man einfach aus den X,Y,Z-Werten die Richtung des Gravitationsvektors.
Hier gibt es Beispielprogramme und eine Bibliothek (das ist wahrscheinlich das einfachste) zum Auslesen der Sensordaten. Angeschlossen wird der Sensor einfach an die I²C Schnittstelle (pins A4/A5), Pullups sind schon auf dem Breakoutboard drauf.
MGOS:
Dass du einen Gyro suchst hast du in deinem ersten Post nicht erwähnt. Mit einem Gyro misst man Rotationsgeschwindigkeiten. Für reine Lagebestimmung reicht ein Beschleunigungssensor (sowas wie der ADXL335).
Ooh! :o
OK, mein Fehler, Entschuldigung.
Ich hatte voher bei diversen Händlern nach "Lagesensor, Beschleunigungssensor, Gyroskop, Geschwindigkeitssensor, ..." gesucht um das passende rauszusuchen.
Da ich da nicht mehr durchgestiegen bin und mich dann durch die englischen Datenblätter gekämpft habe (mein Englisch ist nicht das beste) und durch Wikipedia, kam dann völlige Verwirrung auf.
Jetzt drehts sich bei mir schon alles schon in 3 Achsen.
Wenigstens den Titel hab ich dann Richtig gewählt. ;D
Ok, was ich eigendlich vorhabe ist:
Nur die 3 Winkel der 3 Achsen des Sensors zu einer ebenen Oberfläche berechnen zu lassen.
Die Winkel sollen dann alle, je nachdem wie ich den Sensor halte zwischen -90° und 90° liegen.
Aber der MPU-6050 scheint mir für alles gewapnet zu sein.
Ich werde mich aber noch weiter einarbeiten müssen, bevor ich einen Sensor bestelle.
Ich glaube ein pseudo Code zur berechnung der Winkel wäre jetzt sinnvoll für mich.
Ich war lange auf der Suche nach einem sehr präzisen Sensor um die Neigung zwischen 0 und 90 Grad sehr genau messen zu können.
Bei der Nutzung der analogen Ausgänge eines Beschleunigungsensor habe ich schlechte Erfahrungen gemacht, weil deren Wert dann zu stark von der Versorgungsspannung abhängig ist. D.h. wenn ich am Arduino z.B. ein Relais geschaltet habe, hat sich der gemessene Neigungswert stark verändert weil die 3V3-Versorgungsspannung für den Beschleunigungssensor sich leicht verändert hat. Mit einer externen, stabilisierten 3V3 Spannung und einem Pufferkondensator konnte ich den Effekt etwas verringern, dennoch war das Ergebnis für mein Zweck nicht zufriedenstellend.
Schlussendlich arbeite ich jetzt mit dem Modul ADXL-345 von Sparkfun und nutze die Kommunikation über SDA/SCL.
Über einige trigonometrische Umrechnungen aller drei Achsen extrahiere ich die korrigierte Neigung für 1 Achse, welche dann sehr zuverlässig und nahezu unabhängig von Neigung einer weiteren Achse sehr zuverlässig misst. Wenn Du die mechanische Montage des Beschleunigungssensor im Lot machen kannst, so dass die beiden übrigen Achsen vernachlässigt werden können, so kann die mathematische Berechnung vereinfacht werden. In meinem Projekt kann ich aber nicht sicherstellen dass das Modul immer im rechten Winkel gegenüber dem Boden geneigt wird, so dass die beiden Achsen bei der Berechnung der Neigung entsprechend berücksichtigt und kompensiert werden müssen weil sich sonst der Messwert verfälscht.
Gruss
PS: Wenn ich zuhause bin könnte ich Dir das Sketch mal zukommen lassen