Filtro de Altas para el acelerometro mma8451

Buen dia , les escribo porque me encuentro en crisis para poder programar un filtro pasa altas del acelerometro mma8451 , he intentado con varias librerias y no logro comprender como se usa y aplica , soy nueva en la programacion de arduino pero tengo un poco de conocimiento basico en lenguaje C .

El acelerometro lo estoy usando para medir vibracion y necesito que me quite el valor de la gravedad para comenzar a medir desde 0 en un punto fijo .

espero alguien me pueda ayudar este es mi codigo de ejemplo que estoy usando para el acelerometro .
Estoy muy apurada llevo ya casi 2 meses intentando que salga :frowning:

#include <Wire.h>
#include "Adafruit_MMA8451.h"
#include <Adafruit_Sensor.h>



 
Adafruit_MMA8451 mma = Adafruit_MMA8451();


 
void setup(void) {
  Serial.begin(115200);
 
 
  Serial.println("Adafruit MMA8451 test!");
 
 
  if (! mma.begin()) {
    Serial.println("Couldnt start");
    while (1);
  }
  Serial.println("MMA8451 found!");
 
  mma.setRange(MMA8451_RANGE_2_G);
 
  Serial.print("Range = "); Serial.print(2 << mma.getRange());  
  Serial.println("G");
 
}
 
void loop() {
  // Read the 'raw' data in 14-bit counts
  mma.read();
  Serial.print("X:\t"); Serial.print(mma.x); 
  Serial.print("\tY:\t"); Serial.print(mma.y); 
  Serial.print("\tZ:\t"); Serial.print(mma.z); 
  Serial.println();
 
  /* Get a new sensor event */ 
  sensors_event_t event; 
  mma.getEvent(&event);
 
  /* Display the results (acceleration is measured in m/s^2) */
  Serial.print("X: \t"); Serial.print(event.acceleration.x); Serial.print("\t");
  Serial.print("Y: \t"); Serial.print(event.acceleration.y); Serial.print("\t");
  Serial.print("Z: \t"); Serial.print(event.acceleration.z); Serial.print("\t");
  Serial.println("m/s^2 ");
 
  /* Get the orientation of the sensor */
  uint8_t o = mma.getOrientation();
 
  switch (o) {
    case MMA8451_PL_PUF: 
      Serial.println("Portrait Up Front");
      break;
    case MMA8451_PL_PUB: 
      Serial.println("Portrait Up Back");
      break;    
    case MMA8451_PL_PDF: 
      Serial.println("Portrait Down Front");
      break;
    case MMA8451_PL_PDB: 
      Serial.println("Portrait Down Back");
      break;
    case MMA8451_PL_LRF: 
      Serial.println("Landscape Right Front");
      break;
    case MMA8451_PL_LRB: 
      Serial.println("Landscape Right Back");
      break;
    case MMA8451_PL_LLF: 
      Serial.println("Landscape Left Front");
      break;
    case MMA8451_PL_LLB: 
      Serial.println("Landscape Left Back");
      break;
    }
  Serial.println();
  delay(500);
 
}

Olvidaste el codigo

es Verdad , ya lo adjunte es mi ejemplo que venia con la libreria que utilizo :slight_smile:

ArduMyth gracias por responder a mi post , creo que no me explique bien , ya logre activar le filtro de mi dispositivo . era cuetsion de activar un registro que por default viene en sleep .

Y claro no lo vas a compartir, supongo.

Porque el hilo asi queda como inconcluso y para darle un SOLUCIONADO deberías poner hice esto, y lo otro y algun código que lo muestre.

Hola claro que lo puedo compartir , utilice un registro dentro de la libreria que se llama HPF_CUTOFF por default viene (0x00), solo debe de estar en (0x10) . Es todo