Forum: Mikrocontroller und Digitale Elektronik ADXL Beschleunigung berechnen bei unbekannter Schräglage


von micha b (Gast)


Lesenswert?

Hi,

hab eigentlich nur eine Frage zwecks Rechenweg:

Ich möchte mit einem ADXL320 (X/Y-Sensor) die tatsächliche 
Beschleunigung messen... so weit so einfach, ich lese über RC-Glied den 
Analogwert ein, Genauigkeit (+/- 0,1 g) ist für mich ausreichend.

Jetzt kann ich aber nicht garantieren, daß der ADXL immer absolut 
waagrecht liegt, sondern ich geh einfach mal davon aus, daß er auch +/- 
10° schräg liegen kann.
Also möchte ich beim Einschalten im Stillstand / Ruhezustand anhand der 
Gravitation einen Faktor für X und Y haben mit dem ich die danach 
gemessenen Werte umrechnen kann in tatsächliche Werte. Müsste doch 
gehen, oder? Aber wie? Für eine Achse ist mir das klar (sin  cos  tan 
etc), wie muß ich daß aber im dreidimensionalen Raum rechnen?

Danke für die Tipps :-)

von 42 (Gast)


Lesenswert?

mit drei achsen !?

von chris (guest) (Gast)


Lesenswert?

3achsen or 2 achsen (x,y)

3: easy


2: bei drehen in der x/y-ebene kein Problem:
  die Erdbeschleunig teilt sich auf: 2 Werte ändern sich

Wenn er schräg liegt (um x-Achse gedreht), geht ein Teil verloren:
 bei 10Grad ca.:  Wert* cos(10 Grad) ist der Meßwert

ist also nicht so viel Fehler

von Karl H. (kbuchegg)


Lesenswert?

Und bitte: nicht mit Winkeln hantieren.
So was macht man mit Vektoralgebra.

Nur leider ist ein Forum eher schlecht geeignet um
dir die Grundlagen der Vektoralgebra beizubringen.

von Michael K. (mmike)


Lesenswert?

Steht im Datenblatt Seite 13.

http://www.analog.com/UploadedFiles/Data_Sheets/ADXL320.pdf

Use as a dual axis tilt sensor.
pitch = asin (Ax / 1g)
roll  = asin (Ay / 1g)

Wird wohl ein Beschleunigungssensor für's Auto ?

Grüße,
Michael

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.