Forum: Mikrocontroller und Digitale Elektronik ADXL345 Sensor: Was misst er wirklich?


von Christian J. (Gast)


Angehängte Dateien:

Lesenswert?

Moin,

heute abend werde ich mal wieder an den ADXL345 aus der Bucht dran 
gehen, I2C ist alles geschrieben, jetzt folgen die Auswerteroutinen auf 
stm32. Am Arduino habe ich bei den 3 Modulen etwas gespielt und trotzdem 
noch Probleme.

Punkt 1:
Die Z-Achse lässt sich durch das OFFS Register nicht ganz kompensieren, 
der Wert ist einfach zu gross. Den Grund dafür habe ich noch nicht ganz 
erschlossen. X und Y lassen sich auf ca 0 trimmen.

Punkt 2: Was misst der eigentlich?

Mechanisch sind da 3 MEMS Sensoren, die orthgonal gestellt sind auf dem 
Chip. Auf alle wirkt immer 1g Erdbeschleunigung. Liegt er flach auf dem 
Tisch mit einem senkrechten Vektor zur Erdmitte zeigt Z nach oben/unten 
und x und y zu beiden Seiten. Drehe ich ihn ändern sich die Werte aber 
nur kurz, dann gehen sie wieder zurück auf "Ruhezustand". Z bleibt sehr 
hoch.

Ist in dem Chip noch ein Rechenwerk drin? Die MEMS ändern ihre statische 
Lage zur Erdmitte bei Drehung der platine. Eigentlich müsste auch X mal 
maximal werden oder Y. Tut es aber nicht, nur Z bleibt "gross". 
Rechnerisch wäre eine Koordinatentransformation Z-> Z', X->X', Y-Y' kein 
Problem, egal welche Lage die Platine hat, Z ist immer der Vektor zur 
Erdmitte und die X und Y orthogonal dazu.

Kann da mal jemand etwas Licht ins Dunkel bringen? Lese ich da die 
echten Werte der MEMS aus oder das berechnete "Normal"?

Oder ist mein vermutlicher China-Fake-Chip vielleicht kaputt?

von Soul E. (Gast)


Lesenswert?

Wenn Dein Chip funktioniert, dann zeigt immer diejenige Achse 9,81 m/s2 
an, welche zum Erdmittelpunkt zeigt. Liegt die Platine flach auf dem 
Tisch, sollest Du aZ = 1g haben. Im Kopfstand aZ = -1g. Wird die Platine 
senkrecht auf die Seite gestellt, dann sollte aX oder aY auf +/-1 g 
gehen. Halt genau so wie in Deinem Bild oben dargestellt.

Wenn das nicht klappt funktioniert Dein I2C nicht (kannst Du das 
who-am-i - Register lesen, klappt der Selbsttest?), oder man hat Dir 
Chinaware verkauft.

von Jim M. (turboj)


Lesenswert?

Christian J. schrieb:
> Eigentlich müsste auch X mal
> maximal werden oder Y. Tut es aber nicht, nur Z bleibt "gross".

Dann ist Dein Auslese Code kaputt.

Die Dinger zeigen +1G nach unten, und wenn man sie um 180° dreht, dann 
zeigen die -1G an.

Die Erdbeschleunigung kann man mit 'nem High Pass Filter rausrechnen.

von Martin (Gast)


Lesenswert?

Christian:

> Oder ist mein vermutlicher China-Fake-Chip vielleicht kaputt?

Soul:

> ... oder man hat Dir Chinaware verkauft.

Immer daran denken: Wenn ihr beide irgendetwas nicht hinbekommt - ihr 
bekommt nach meinem Eindruck viele nicht hin - dann liegen es nicht an 
euch.

von Christian J. (Gast)


Lesenswert?

Soul E. schrieb:
> Wenn Dein Chip funktioniert, dann zeigt immer diejenige Achse 9,81 m/s2
> an, welche zum Erdmittelpunkt zeigt.

Tja, dann können wir das hier beenden. Das tut es nämlich nicht. x und y 
verhalten sich normal,  Z ist wie festgenagelt und damit wohl im A****.
Und das auf gleich 2 Ebay Platinen, die vermutlich wohl B-Ware sind oder 
Fakes, oder... inzwischenn gibt es ja auch keine echten Blue Pills mehr, 
nur noch "kompatible" :-((( Wird wohl mit den Bosch Chips nicht anders 
sein.

von Günni (Gast)


Lesenswert?

Da die Sensoren für jede Achse eine eigene bewegte Masse haben, können 
auch einzelne Achsen ausfallen, wenn sich die entsprechende Masse durch 
Stöße "verklemmt". Während die x- und y- Massen sich parallel zur 
Chipfläche bewegen, bewegt sich die Masse für die Z-Achse aus der 
Chipfläche heraus oder - in der Gegenrichtung - näher an die Chipfläche 
heran. Das macht sie besonders empfindlich, speziell wenn der Baustein 
auf einen Tisch fallen gelassen wird. Beim Aufprall auf harte Flächen 
treten sehr hohe Beschleunigungen auf, die den Sensor beschädigen 
können. Sensorbausteine aus Verpackungen deshalb nur auf weiche 
Untergründe ablegen und auch die Platinen mit den Bausteinen nie fallen 
lassen oder beim Einsetzen in Gehäuse durch Klopfen "justieren".

von Soul E. (Gast)


Lesenswert?

Das hier ist zwar ein Konkurrenzprodukt, aber der prinzipielle Aufbau 
ist der gleiche: https://www.richis-lab.de/MEMS_02.htm

In den Bildern kann man gut die XY- und die Z-Masse erkennen.

von Günni (Gast)


Lesenswert?

Wenn man die Z-Achse (durchaus üblich) über das beschriebene Kippen der 
Fläche erfasst, bedeutet dieses, dass schon bei leichter Auslenkung aus 
der Waagerechten die Masse eine (leichte) Empfindlichkeit gegenüber 
Beschleunigungen in horizontaler Richtung erhält. Das kann man zwar im 
Chip kompensieren, genauere - und teurere - Bausteine müssten diese 
Achse in Bulk-Mikromechanik ausgeführt haben. Da Bulk- und 
Oberflächenmikromechanik auf einem Chip kaum realisierbar sind, würde 
man den Sensor für die Z-Achse als eigenes Chip im IC-Gehäuse 
unterbringen. Solche aufwändigen Lösungen machen aber wegen des hohen 
Aufwandes nur für Spezialanwendungen Sinn.

von Wolfgang (Gast)


Lesenswert?

Christian J. schrieb:
> Tja, dann können wir das hier beenden. Das tut es nämlich nicht. x und y
> verhalten sich normal,  Z ist wie festgenagelt und damit wohl im A****.

Dann lies den Sensor doch mal über das SPI aus

von Christian J. (Gast)


Lesenswert?

Wolfgang schrieb:
> Beitrag melden Bearbeiten Löschen Markierten Text zitieren Antwort
> Antwort mit Zitat

Keine Lust. Ist schon richtig, die Z-Ache hängt, bewegt sich aber nur 
ganz wenig. Habe das ganze i2C Geschissel 3 Tage lange programmiert und 
beim STM32 ist das nicht mal eben so, wie beim Arduino.  Ein 5 Euro 
Teil, was nicht spielt fliegt in die Tonne, werde mal den Dealer 
wechseln...

von Soul E. (Gast)


Lesenswert?

Christian J. schrieb:

>(...) Ein 5 Euro
> Teil, was nicht spielt fliegt in die Tonne, werde mal den Dealer
> wechseln...

Schick's dem Richard, der kann reingucken. Den ADXL345 hatten wir noch 
nicht.

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.