Guten Abend,
ich hatte Euch ja am letzten Beitrag über meine Versuche berichtet. Leider bin ich noch nicht weitergekommen. Mittlerweile habe ich mir meinen Sensor einmal näher angeschaut und würde diese Erkenntniss gerne mit Euch diskutieren. Vielleicht hat der eine oder andere Erfahrungen mit dem Sensor ADXL345.
Zunächst einmal glaube ich, dass ich mit der I2C-Schnittstelle gar nicht auf meine hohen Abtastraten komme:
“Use of the 3200 Hz and 1600 Hz output data rates is only recommended with SPI communication rates greater than or equal to 2 MHz.”
(Auszug aus dem Datenblatt). Damit wäre ich wieder einen Schritt weiter. Nun habe ich überlegt, wie ich weiter vorgehen kann. Dabei bin ich auf Folgendes gestoßen:
Der ADXL345-Sensor hat zwei Pins mit Namen INT1 und INT2. Diese Pins können anscheinend so programmiert werden, dass sie mir das Vorhandensein von neuen Daten anzeigen (digital, HIGH oder LOW). Vermutlich muss ich dabei einen DATA_READY-Interrupt definieren.
Wenn ich richtig liege, muss ich diese Pins mit einem Eingang meines ESP verbinden und könnte so erkennen ob neue Daten vorliegen. Für diese Information wird dann über ein zusätzliches Kabel neben den schon vorhandenen SPI-Kabeln übertragen....?
Nun meine Frage: Meint Ihr dieser Ansatz wäre zielführend?
Wenn dem so wäre, wie würde ich das im Code umsetzen? Vor allem würde mich interessieren, wie Ihr bei der Gesamtarchitektur vorgehen würdet.
Wären Interrupt ein Ansatz? Ich stelle mir das so vor: Zunächst muss ich heraubekommen, welche Register ich im Sensor für die Definition des korrekten Verhalten beschreiben muss. Ich definiere anschließend einen normalen Interrupt. Wenn der Interrupt (im Takt der Samplerate) kommt, schreibe ich in diesem meine Daten via UDP weg. Hier habe ich schon die nächste Frage: Ich meine aber einmal gelesen zu haben, dass in einem Interrupt keine Einleseroutinen, z.B. Serial.read beinhalten sollten, da diese sehr lange brauchen. Könnte das bei meiner UDP-Kommunikation auch zu einem Problem werden?
Zusammengefasst: Ich denke, meine Lösung geht nur über die korrekte Einstellung des ADXL435.
Es wäre super nett, wenn Ihr mit mir noch einmal in die Diskussion einsteigen könntet, vielleicht hat jemand von Euch Erfahrungen den Registern dieses Sensors. Ich habe Euch das Datenblatt noch einmal angehängt.
Vielen Dank und vielleicht bis später!
Grüße
Bire
ADXL345.pdf (855 KB)