Hallo, ich habe folgendes problem. Ich habe schon mal gegoogle und bin ich auf dieses formel gestoßen g[m/s^2] = messwert * (messbereich /2^10) 10 wäre dann die Aulösung damit will ich auch arbeiten und was ist der Messbereich? Danke Vivien
christian Schmidt schrieb: > Hallo, > > ich habe folgendes problem. Ich habe schon mal gegoogle und bin ich auf > dieses formel gestoßen > > g[m/s^2] = messwert * (messbereich /2^10) > > 10 wäre dann die Aulösung damit will ich auch arbeiten > > und was ist der Messbereich? mal logisch überlegen. Wenn in deinem Datenblatt steht, dass der Sensor bei Vollausschlag 3g misst und dir das als die Zahl 1023 mitteilt, was wird dann wohl der Messbereich sein?
Hallo, Laut Datenblatt wird gesagt dass die Messbereich des ADXL345 so sind: ±2g => 10 Bits => 1024 ±4g => 11 Bits => 2048 ±8g => 12 Bits => 4096 ±16g=> 13 Bits => 65536 bedeutet, bei dieser Formel,dass mein Messbereich 2 ist?
christian Schmidt schrieb: > und was ist der Messbereich? Der maximale Wert, den dein Sensor ausgeben kann.
christian Schmidt schrieb: > Hallo, > Laut Datenblatt wird gesagt dass die Messbereich des ADXL345 so sind: > > ±2g => 10 Bits => 1024 > ±4g => 11 Bits => 2048 > ±8g => 12 Bits => 4096 > ±16g=> 13 Bits => 65536 > > bedeutet, bei dieser Formel,dass mein Messbereich 2 ist? Nein. +- 2g, das ist ein Bereich von 4g Das ganze ist doch nur eine Umrechnung! Der Sensor liefert dir im Grunde Prozent! Nur eben nicht von 0 bis 100, sondern von 0 bis 1023. Aber vom Prizip her funktioniert das wie Prozent. Und wie immer bei Prozent erhebt sich die Frage: Was ist denn meine Bezugsgröße - was sind 100%? Bei dir dann eben 1023
1 | -2g 0 +2g |
2 | |-------------------------|-----------------------| |
3 | |
4 | -19.62 0 +19.62 |
5 | |-------------------------|-----------------------| |
6 | |
7 | 0 512 1023 |
8 | |-------------------------|-----------------------| |
9 | |
10 | 0% 50% 100% |
11 | |-------------------------|-----------------------| |
du musst nur von einer Skala in die andere Umrechnen, je nachdem welche Zahlenwerte dich interessieren. Vom Sensor kriegst du die 0..1023 Skala. Und alle anderen sind einfach nur diese Werte anders, in anderen Einheiten ausgedrückt.
:
Wiederhergestellt durch User
Karl Heinz Buchegger schrieb: > -2g 0 +2g > |-------------------------|-----------------------| > > -19.62 0 +19.62 > |-------------------------|-----------------------| > > 0 512 1023 > |-------------------------|-----------------------| > > 0% 50% 100% > |-------------------------|-----------------------| ok wenn ich gut vestanden habe, bei einer auflösung von -+16g liegt den Bereich bei -16g 0 +16g > |-------------------------|-----------------------| > > 0 65535 > |-------------------------|-----------------------| > > 0% 50% 100% > |-------------------------|-----------------------|
Hi >und was ist der Messbereich? Datenblatt gelesen? Dort steht, das der Sensor +-2/4/8 oder 16g messen kann. >g[m/s^2] = messwert * (messbereich /2^10) Trifft nur für die 10-Bit-Auflösung zu. Lt. DB kann der aber je nach Messbereich auch 11, 12 und 13 Bit. MfG Spess
spess53 schrieb: > Trifft nur für die 10-Bit-Auflösung zu. Lt. DB kann der aber je nach > Messbereich auch 11, 12 und 13 Bit. ja ich weiße das heißt wenn man die anderen betachten soll, zum beispiel eine Auflösung von 13 Bit statt 2^10 hat man 2^13
christian Schmidt schrieb: > Karl Heinz Buchegger schrieb: >>
1 | >> -2g 0 +2g |
2 | >> |-------------------------|-----------------------| |
3 | >> |
4 | >> -19.62 0 +19.62 |
5 | >> |-------------------------|-----------------------| |
6 | >> |
7 | >> 0 512 1023 |
8 | >> |-------------------------|-----------------------| |
9 | >> |
10 | >> 0% 50% 100% |
11 | >> |-------------------------|-----------------------| |
12 | >> |
> > ok wenn ich gut vestanden habe, bei einer auflösung von -+16g liegt den > Bereich > bei > -16g 0 +16g >> |-------------------------|-----------------------| >> >> 0 65535 >> |-------------------------|-----------------------| >> >> 0% 50% 100% >> |-------------------------|-----------------------| Die Spannende Frage ist jetzt: wie liefert der Sensor seinen eigentlichen Messwert: Als unsigned Zahl zwischen 0 und 65535. Oder als vorzeichenbehaftete Zahl zwischen -32768 und +32767. Auch dazu wieder: Details im Datenblatt. Aber das Prinzip hast du. Der Rest lässt sich mit Datenblatt bzw. einfach mal den Sensor auslesen klären. Wenn der Sensor in Ruhe auf dem Tisch liegt, dann misst er 1g nach unten. D.h. du siehst dir an welchen Wert der Sensor liefert und schaust einfach mal, wie du daraus die 1g kriegst. Es gibt nur 2 Möglichkeiten für die Umrechnung je nach Vorzeichen/kein Vorzeichen, aber ich geh jetzt nicht her und such mir für dich aus dem Datenblatt raus, ob der Sensor vorzeichenbehaftet oder vorzeichzenlos liefert. Die oben angegebene Formel würde auf vorzeichenbehaftet hindeuten. Leg den Sensor auch mal verkehrt rum hin und lass dir den Messwert vom Sensor ausgeben. In g-Werten ist das dann das genaue Negative vom ersten Versuch.
Hi >Die Spannende Frage ist jetzt: wie liefert der Sensor seinen >eigentlichen Messwert: Als unsigned Zahl zwischen 0 und 65535. Oder als >vorzeichenbehaftete Zahl zwischen -32768 und +32767. The output data is twos complement, .... MfG Spess
Karl Heinz Buchegger schrieb: > Die Spannende Frage ist jetzt: wie liefert der Sensor seinen > eigentlichen Messwert: Als unsigned Zahl zwischen 0 und 65535. Oder als > vorzeichenbehaftete Zahl zwischen -32768 und +32767. Ich messe gerade den Sensor und liefert mir folgende werte wenn der Sensor in ruhe auf dem Tisch liegt X = 13 Y = 28 Z = 65521 das heißt der liefert mir werte zwuischen 0 und 65535 also als unsigned zahl danke
christian Schmidt schrieb: > Karl Heinz Buchegger schrieb: >> Die Spannende Frage ist jetzt: wie liefert der Sensor seinen >> eigentlichen Messwert: Als unsigned Zahl zwischen 0 und 65535. Oder als >> vorzeichenbehaftete Zahl zwischen -32768 und +32767. > > Ich messe gerade den Sensor und liefert mir folgende werte wenn der > Sensor in ruhe auf dem Tisch lieget > X = 13 > Y = 28 > Z = 65521 das heißt de liefert mir wer zwuischen 0 und 65535 also als > unsigned zahl Nö. Das heißt es nicht. Das heißt nur, dass du die Bits in einen unsigned int reingepfercht hast. Du hättest die 16 Bit genausogut auch in einen int reinschaufeln können, dann würde bei einer Ausgabe, die Vorzeichen berücksichtigt eben nicht 65521 stehen, sondern -14 Aber da X und Y praktisch 0 sind und nicht 512 (bei 10 Bit Auflösung), wird wohl ein Messwert von 0 auch tatsächlich 0 sein. Und wie spess mittlerweile verifiziert hat, liefert der Sensor vorzeichenbehaftete Werte.
Hi
>Z = 65521 das heißt de liefert mir wer zwuischen 0 und 65535
Nein, du interpretierst das als 65535
0xFFFF = 65535 vorzeichenlos
0xFFFF = -32768 vorzeichenbehaftet
MfG Spess
spess53 schrieb: > Hi > >>Z = 65521 das heißt de liefert mir wer zwuischen 0 und 65535 > > Nein, du interpretierst das als 65535 > > 0xFFFF = 65535 vorzeichenlos > 0xFFFF = -32768 vorzeichenbehaftet > twos complement
1 | 0xFFFF -1 |
2 | 0xFFFE -2 |
3 | 0xFFFD -3 |
4 | ... |
Hi >twos complement >0xFFFF -1 >0xFFFE -2 >0xFFFD -3 >... Ups. Hast natürlich Recht. MfG Spess
wenn der sensor mir in der ruhelage den Wert bei Z = 65521 liefert heißt das 1g = 65521 in dem Fall, weil ich unsigned angewendet habe?
christian Schmidt schrieb: > Ich messe gerade den Sensor und liefert mir folgende werte wenn der > Sensor in ruhe auf dem Tisch lieget > X = 13 > Y = 28 > Z = 65521 das heißt de liefert mir wer zwuischen 0 und 65535 also als > unsigned zahl Auf welchem Planeten bist Du zur Zeit? Wenn ich richtig gerechnet habe, sollte da was zwischen 28672 (-1g) oder 34816 (+1g) rauskommen. (2048 = 1g) Mirko
christian Schmidt schrieb: > wenn der sensor mir in der ruhelage den Wert bei Z = 65521 liefert > heißt das 1g = 65521 in dem Fall, weil ich unsigned angewendet habe? Bei welcher Messbereichseinstellung? Kann natürlich auch ein Programmfehler sein. Dreh den Sensor mal auf den Kopf, welche Werte kriegst du dann? Dreh ihn um 90° auf die Kante, dann müsste sich das Messergebnis in die X-Achse verlagern. Verlgichen mit den Werten in der X-Achse sind mir diese -15 einfach zu klein. Das ist ca. in der selben Größenordnung. D.h. dein Sensor würde jetzt in allen AChsen eine 0 liefern. Das ist aber eigentlich nicht möglich, denn auf ihn wirken ja jetzt tatsächlich 1 g nach unten, die er eigentlich anzeigen müsste. (automatisch korrigieren kann man das nicht. Denn der Sensor weiß ja nicht, wo wirklich unten ist, wenn er jetzt 0 anzeigt und du drehst ihn auf den Kopf dann müsste er dann eigentlich 2g anzeigen und wenn du ihn um 90° drehst dann wirds noch wilder mit seinen Werten. D.h. dein Sensor muss jetzt, egal wie er liegt 1g anzeigen. Also schmink dir das ab, dass ein Beschleuigungssensor in Ruhe 0 anzeigt. Denn das wird er nicht. Die Komponente der Erdbeschleuigung wirst du nur im freien Fall los - dann zeigt so ein Sensor wirklich 0 an. Ergo: da passen die Werte nicht so recht. Aber spiel mal rum - dreh ihn und sieh dir an was er anzeigt. Denn: der Sensor hat recht - nicht ich. Ich tippe allerdings trotzdem auf einen Bedien-/Programmfehler)
Karl Heinz Buchegger schrieb: > Kann natürlich auch ein Programmfehler sein. > Dreh den Sensor mal auf den Kopf, welche Werte kriegst du dann? Dreh ihn > um 90° auf die Kante, dann müsste sich das Messergebnis in die X-Achse > verlagern. nach 90° X=16 Y=65284 Z=65510 nach Links X=65449 Y=13 Z=65503 nach Recht X=65503 Y=13 Z=65421 das sind die were die ich im moment bei einer Auflösung von 10 Bit +-2g bekomme. Viele Gruß Vivien
christian Schmidt schrieb: > Karl Heinz Buchegger schrieb: >> Kann natürlich auch ein Programmfehler sein. ok korriger erst mal das signed Problem. Das nervt, wenn man dauernd das 2-er Komplement händisch auf korrekte negative Zahlen umrechnen muss.
Hi
>das sind die were die ich im moment bei einer Auflösung von 10 Bit +-2g
Passt irgendwie nicht. Die senkrechte Achse sollte einen Wert um +-256
anzeigen. Die anderen beiden um Null.
MfG Spess
Deine Werte sind nicht plausibel 65irgendwas, das sind Werte so rund um -33 Umgerechnet auf g wären das so rund -0.03g Haut nicht hin. Da hast du noch Fehler im Programm.
spess53 schrieb: > Passt irgendwie nicht. Die senkrechte Achse sollte einen Wert um +-256 > anzeigen. Die anderen beiden um Null. ja hast recht war eben nicht richtig auf 90° gelegt. hahe noch mal ausprobiert und bin ich bei X=16 Y=65286 Z=19
Karl Heinz Buchegger schrieb: > 65irgendwas, das sind Werte so rund um -33 > Umgerechnet auf g wären das so rund -0.03g kannst du mir bite sagen, wie du auf diese Ergebnisse rauskommt? ich meine bitte die Rechnevogänge danke Vivien.
christian Schmidt schrieb: > spess53 schrieb: >> Passt irgendwie nicht. Die senkrechte Achse sollte einen Wert um +-256 >> anzeigen. Die anderen beiden um Null. > > ja hast recht war eben nicht richtig auf 90° gelegt. hahe noch mal > ausprobiert und bin ich bei > X=16 > Y=65286 > Z=19 65286 sind im 2-er Komplement -250 jetzt siehts schon besser aus.
christian Schmidt schrieb: > Karl Heinz Buchegger schrieb: >> 65irgendwas, das sind Werte so rund um -33 >> Umgerechnet auf g wären das so rund -0.03g > > kannst du mir bite sagen, wie du auf diese Ergebnisse rauskommt? ich > meine bitte die Rechnevogänge Na aus deiner Formel. 65286 sind als 2-er Komplement ausgedrückt -250 In g sind das dann -250 * 4 / 1024 = -0.9865 g (oben hab ich noch falsch mit 2 als Messbereich gerechnet. Da kommen also tatsächlich 0.06 raus. Aber mit den -250 ist das recht eindeutig. Entweder man rechnet -250 * 2 / 1024 = -0.488g oder man rechnet -250 * 4 / 1024 = -0.9865g Da wir aber wissen, dass wir normalerweise 1g haben (nach unten dann eben -1g), kann -0.488 nicht das richtige Ergebnis sein, und bei 'Messbereich' in der Formel muss 4 eingesetzt werden, wenn der Sensor auf +-2 eingestellt ist. Aber wie gesagt: korrigier erst mal ein deinem Programm die entsprechenden unsigned int nach int bzw. die Ausgabe der Werte, damit du nicht dauernd im Kopf das 2-er Komplement umrehcnen musst. Das ist doch einfach nur lästig.
Hi >ja hast recht war eben nicht richtig auf 90° gelegt. hahe noch mal >ausprobiert und bin ich bei >X=16 >Y=65286 >Z=19 Passt schon besser mit Y=-250. Mach erst mal die Umrechnung in negative Zahlen und dann bestimme den Offset der einzelnen Achsen. Damit kannst du dann weiterrechnen. MfG Spess
Karl Heinz Buchegger schrieb: > In g sind das dann -250 * 4 / 1024 = -0.9865 g genau das war meine frage am Anfang ich habe eine Auflösung von 10 Bit mit -+2g. es tut mir wenn die frage blöd wäre, aber warum hast du dann 4 benutzt? danke Vivien
christian Schmidt schrieb: > Karl Heinz Buchegger schrieb: >> In g sind das dann -250 * 4 / 1024 = -0.9865 g > > genau das war meine frage am Anfang ich habe eine Auflösung von 10 Bit > umit -+2g. es tut mir wenn die frage blöd wäre, aber warum hast du dann > 4 benutzt? Weil bei +-2g Einstellung der Messbereich dann 4g ist. Einfach die Differenz vom positivsten Wert (+2g) zum negativsten Wert (-2g). Und da sind nun mal 4g Differenz. (Und ausserdem weil mit 2 das offensichtlich falsche raus kommt.)
Karl Heinz Buchegger schrieb: > Weil bei +-2g Einstellung der Messbereich dann 4g ist. Einfach die > Differenz vom positivsten Wert (+2g) zum negativsten Wert (-2g). Und da > sind nun mal 4g Differenz ich bedanke mich für ihre Antworte , jetzt verstehe ich wie man das berechnet. Danke Vivien
Karl Heinz Buchegger schrieb: > 65286 sind als 2-er Komplement ausgedrückt -250 ich habe schon in mein code ändert und erhalte ich negative werte jetzt. ich habe auch versuch die Zahlen selbe auf papier umzuwandeln mit dem zwei Komplemen aber komme ich nicht auf dein Ergenis. wie kommst du bitte drauf? Gruß Vivien
Hallo Leute, schönen guten Morgen ich weiße, dass der Offset bei einer Beschleunigungssenor eine Wichtige Parameter für die Paramerieung de Ausgangswerte ist und dass er die Abweichung des Ausgangssignales vom idealen Ausgangwert unter Null-g Beschleunigung. Ich möchte gen wissen, wie man die Ausgang Signal in Abhängigkeit des gegebene Offset Bereich in Dateblatt ausrechnet. gib es dafür eine passen Formel? Danke wunsche euch eine schöne ANfangswoche.
> Ich möchte gen wissen, wie man die Ausgang Signal in Abhängigkeit des > gegebene Offset Bereich in Dateblatt ausrechnet. gib es dafür eine > passen Formel? Den Offset musst du selbst durch eine Messung ermitteln. Der steht nicht im Datenblatt (da stehen nur die Grenzen innerhalb derer sich der Offset befinden kann). Der Offset wird ermittelt, indem du deinen Sensor mit einer definierten Beschleunigung (idealerweise 0g) beaufschlägst. Dann siehst du den Offset und kannst ihn später rausrechnen. Sowas nennt man auch Kalibration.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.