Array

Hallo,
ich messe aktuell Beschleunigung über einen ADXl377 Beschleunigungssensor.
Für meine Zwecke benötige ich Wertausgaben im Bereich von 500 Werten pro Sekunde. Laut Datasheet schafft der ADXL377 eine Frequenz von 1kHz. Da ich jedoch die Werte über die serial.print Funktion auf einen Seriellen Monitor übertrage erhalte ich bei einem delay von 2ms folgende Werte:

22:00:00.016 -> -0.68 G
22:00:00.016 -> 0.07 G
22:00:00.016 -> -0.68 G
22:00:00.016 -> 0.07 G
22:00:00.016 -> -0.68 G
22:00:00.063 -> 0.07 G
22:00:00.063 -> 0.07 G
22:00:00.063 -> 0.07 G
22:00:00.063 -> 0.82 G
22:00:00.063 -> -2.19 G
22:00:00.110 -> 0.07 G
22:00:00.110 -> 0.82 G
22:00:00.110 -> 0.82 G
22:00:00.110 -> 0.82 G
22:00:00.110 -> 0.82 G
22:00:00.110 -> 0.82 G
22:00:00.157 -> 0.82 G
22:00:00.157 -> 1.57 G
22:00:00.157 -> 0.82 G
22:00:00.157 -> 0.82 G
22:00:00.157 -> 0.82 G
22:00:00.157 -> 1.57 G
22:00:00.204 -> 1.57 G
22:00:00.204 -> 1.57 G
22:00:00.204 -> 1.57 G
22:00:00.204 -> 0.82 G
22:00:00.204 -> 0.82 G
22:00:00.250 -> 0.07 G
22:00:00.250 -> 0.07 G
22:00:00.250 -> 0.07 G
22:00:00.250 -> -0.68 G
22:00:00.250 -> -0.68 G
22:00:00.250 -> -0.68 G
22:00:00.297 -> -0.68 G
22:00:00.297 -> 0.07 G
22:00:00.297 -> 30.12 G
22:00:00.297 -> 0.82 G
22:00:00.297 -> 0.82 G
22:00:00.344 -> 0.82 G
22:00:00.344 -> 0.82 G
22:00:00.344 -> 0.82 G
22:00:00.344 -> 2.32 G
22:00:00.344 -> 2.32 G
22:00:00.344 -> 1.57 G
22:00:00.391 -> 0.82 G
22:00:00.391 -> 0.82 G
22:00:00.391 -> 0.82 G
22:00:00.391 -> 0.07 G
22:00:00.391 -> 0.07 G
22:00:00.438 -> 0.82 G
22:00:00.438 -> -0.68 G
22:00:00.438 -> -0.68 G
22:00:00.438 -> -0.68 G
22:00:00.438 -> -0.68 G

Ich bekomme also 5 mal den gleichen Wert angezeigt, die Frequenz wird also nicht voll ausgenutzt.
Könnte ich die Frequenz steigern, wenn ich die Werte über die array Funktion speichere und später auf eine Excel Tabelle übertrage? Wenn ja wie stelle ich das an?

Läßt sich die Baudrate erhöhen?

Der Speicher eines µCs (welchen verwendest Du?) ist endlich, wieviele Werte willst Du in welchem Format speichern?

Hi

Aber egal, wie viele Werte Du auch speicherst - Du musst die Werte in der gleichen Geschwindigkeit (oder schneller) raus bekommen, da Du sonst 'voll läufst'.

Sofern Du aber nicht mit 9600Baud sendest (jedes Zeichen ~1ms - Du hast nur 2ms bis zum nächsten Messwert), sollte Das noch machbar sein.

MfG

Hi,

irgendwie gefällt mir das nicht. Wenn die Schnittstelle nicht hinterher käme, hättes du doch keine 5 gleichen Werte.

Ich hab mir den ADXL377 kurz angesehen. Der hat ja keinen Bus sondern Analogausgänge. Kann das sein, dass dein Wandler zu langsam ist? Das würde die gleichen Werte erklären.
Schliesst natürlich nicht aus, dass die Übertragung zu langsam ist.

Gruß,
Otmar

Ohne Sketch kann man da mal wieder nicht viel sagen. Wenn die Baudrate zu klein ist, läuft u.U. der Sendepuffer voll, und dann wird der Aufruf von Serial.print blockierend. Das bremst dann auch das Einlesen vom Sensor aus.

Darf ich mal ein bisschen dazwischen gehen?

@Arduin_uno
Schade, dass du einen zweiten Thread dazu auf gemacht hast, obwohl der erste noch nicht abgeschlossen war!
Denn die Schaltung ist noch längst nicht optimal!
Da lässt sich noch deutlich mehr an Auflösung und Genauigkeit raus holen
Ohne auf irgendwas verzichten zu müssen.

Aber wenn es dir so reicht, dann ok...

Laut Datasheet schafft der ADXL377 eine Frequenz von 1kHz.

Adafruit sagt zu seinem/ihrem Breakout Board:

The XYZ filter capacitors are 0.01uF for a 500 Hz bandwidth
Die 1kHz kannste also knicken, falls du das Board verwendest.

Ich bekomme also 5 mal den gleichen Wert angezeigt, die Frequenz wird also nicht voll ausgenutzt.

Du zeigst Zahlen, aber nicht wie sie entstehen.
Behauptest dann, sie seinen falsch .....

Wobei ich mich nicht darüber wundere, dass ein Sensor zeitweise identische Werte liefert.
Wie also, was also?
Warum sollte ich über die Werte nachdenken?