ADXL330

Hi,

ich habe von polli einen ADXL330 board gekauft (Ihr Online-Shop für Elektronik, Technik & mehr | Pollin Electronic)
Ich möchte damit die neigung in X und Y berechnen (in Grad),

Irgendwie werde ich allerdings aus dem Teil nicht schlau. Wenn ich die Pins Messe bekomme ich werte zwischen 10 und 243 die allerdings stark varieren.

Hat jemand mal einen guten Tipp

a) wie ich das "nullen" des Boardes am besten angehe
b) wie ich aus den Winkelbescheulnigungen auf die WInkel komme?

Gruß & Danke
Jens

hallo jens

ich habe jetzt zwar kein datenblatt deines beschleunigungssensors zur hand aber ich glaube ich kann dir trotzdem ein wenig helfen.

erstmal kannst du mit diesem sensor NICHT die winkelbeschleunigung messen sondern die achsiale Beschleunigung die auf den sensor einwirkt... (g-kräfte)

wenn du den sensor in einer Achse beschleunigst dann sollte sich der wert des analogen ausgangs verändern.

das heisst wenn du zb. die x Achse senkrecht nach unten zeigen lässt und der sensor ruhig steht müsste eine Beschleunigung von einem G darauf wirken. (zumindest bei uns auf der erde =))

aber genug der klugscheisserei:

wenn du Winkel messen möchtest könntest du den senkrechten wert und den waagrechten wert notieren.
die differenz der beiden werte dividiert durch 90° ergibt die Wertveränderung von einem grad

zb: bei waagrechter Lage gibt analogRead() den wert 512 zurück und bei senkrechter Lage gibt analogRead() den wert 812 zurück

812 - 512 = 300
300 / 90 = 3.33

Das heisst bei einer Lage Veränderung des Sensors um 1 grad kommt ein um 3.33 anderer analoger Wert beim arduino heraus.

du solltest jedoch beachten das Vibrationen und Erschütterungen (Beschleunigungen) den gemessenen wert beeinflussen...

ich hoffe ich konnte dir helfen...
Grüße Hoonse

Hoonse, Ich muß dir widersprechen. Das geht so nicht. Die Rechnung ist falsch.
Zuerst mal der ADXL330 ist nicht der ideale Beschleunigungsensor für diesen Zweck da einer mit +/-1g Meßbereich eine bessere Auflösung bieten würde.
Der ADXL330 gibt al Meßwert 300mV pro g aus mit einem Offset von 1,5V ( wenn keine Beschleunigung in diese Richtung wirkt) Wenn ein ADXL330 waagerecht liegt hast Du in xund y Richtung 0g und damit 1,5V und in Z-Achse 1g und damit je nach Lage 1,8V oder 1,2V. Das sind typische Werte können aber von ADXL330 zu ADXL330 leicht abweichen (siehe Datenblatt)

Mit dem Beschleunigungssensor mißt DU, wenn dieser nicht bewegt wird (keiner Beschleunigung ausgesetzt ist) nur die Erdbeschleunigung.
Die Meßwerte die Du erhälst sind die x bzw y und z Anteil der Erdbeschleunigung. Du mußt vektoriel rechnen und den Tangens bemühen.

Außerdem ist die Auflösung gering und Du bekommst große Winkelsprünge.

Viele Grüße Uwe