Forum: Mikrocontroller und Digitale Elektronik Beschleunigungssensor ADXL 202 auslesen


von Hans (Gast)


Lesenswert?

Hallo Experten,

ich möchte mit einem Beschleunigungssensor ADXL202 die Beschleunigung
messen und auf einem LC - Display ausgeben. Als Mikrocontroller
verwende ich einen ATmega8. Als Programmierumgebung verwende ich WIN
AVR zum schreiben des Codes und zur Erstellung des HEX Files, welches
ich mit PonyProg2000 auf den Mikrocontroller lade. Ich brauche nun den
Code, mit dem ich das digitale Signal des Beschleunigungssensor
auslesen kann. Die Initialisierungsroutine für das Display habe ich
bereits geschrieben, d.h. ich kann bereits Zahlen oder Wörter auf dem
LC - Display ausgeben. Allerdings weiß ich jetzt nicht mehr weiter.
Vielleicht kann mir jemand einen Tipp geben oder vielleicht hat ja
jemand schon einmal so etwas ähnliches gemacht. Ich wäre sehr dankbar,
wenn ich dann denn Code erhalten könnte!!


mfg Hans

von TheMason (Gast)


Lesenswert?

Hallo Hans,

ich hab zwar noch nichts mit dem AVR und dem ADXL 202 gemacht (obwohl
ich bei Ebay mal welche von den ADXL ersteigert hatte *gg).
Hab in den Datenblättern meine ich gesehen das die Teile ein PWM-Signal
abgeben. Die Pulsweite ist der jeweilige Beschleunigungswert.
Mit diesen beiden PWM Signalen (X/Y) würde ich auf zwei
Interruptleitungen gehen und die jeweilige Pulslänge über einen Timer
messen.
Dann solltest du die Beschleunigungswerte erhalten.
Hatte damals mal (als die Dinger rauskamen) ein Demo von Analog Devices
bei uns an der FH gesehen. Die Teile sind eigentlich recht akkurat.
Kann man bestimmt witzige Sachen mit machen. Sag mal bescheid wenns
klappt und wie genau die Teile sind.

Gruß
Rene

von nelson (Gast)


Lesenswert?

Hi,
hab vor kurzem erst rumexperimentier mit denen!
Sieh dir doch mal die AP

http://www.analog.com/UploadedFiles/Application_Notes/320058905AN604.pdf

an, da ist das Auslesen erklärt!

Prinzipiell kannst du den Duty Cycle Messen oder das Analog Signal
direkt mit dem AD Wandler messen!

mfg

von Hagen (Gast)


Lesenswert?

Du solltest drei Programmschritte vorsehen:


1.) messen der Frequenz der PWM, das musst du nur periodisch
durchführen da der Temeraturdrift des ADXL sehr gering ist. Du brauchst
abr die Frequenz

2.) permanentes messen des Dutycycles vom X und Y Kanal.

3.) Kalibrierungswerte ermitteln, dies machst du nur einmalig
undspeicherst dann die gemessenen Werte im EEPROM. Dabei legst du den
ADXL zb in der X Achse so das diese in Richtung Erde zeigt. Diu misst
den Dutycycle der X-Achse. Danach drehst du den ADXL um 180 Grad so das
die X Achse wiederum in Richtung Erde zeigt. Du hast nun zwei Werte
gemeseen für die X Achse, addiere sie und teile sie duch 2 und schon
hast du den Nullpunkt der X Achse ermittelt. Dein Duty kann also nun
+-12.5 % von diesem Nullpunkt abweichen. Das gleiche machst du auch mit
der Y-Achse.

Gruß Hagen

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.