Declaración de problema
Necesito obtener lo más rápido posible después de encender una lectura de un acelerómetro. El acelerómetro está ubicado en un automóvil y está alimentado por el mismo riel de las luces de frenado traseras, por lo tanto, se acciona solo después de presionar el pedal del freno. La idea es obtener lo más rápido posible una lectura limpia del vector de gravedad inicial, antes de que el automóvil comience a desacelerar. Posteriormente lo restaré para obtener el vector de desaceleración. Si la primera lectura toma demasiado tiempo (20 ms ya es demasiado tarde), estaría leyendo una combinación de gravedad + desaceleración.
Mi solución intermedia
Utilicé un Arduino Pro Mini (5V, 16 MHz) conectado a un módulo acelerómetro GY-61. El módulo tiene un regulador de deserción baja de 3.3 V, un ADXL335 , capacitores de paso bajo. El ADXL335 es radiométrico, por lo tanto, el Vcc del ADXL335 se utiliza como Aref para Arduino.
Arduino está configurado para esperar 16k ciclos + 0 ms en el encendido, las otras opciones son 16K + 4 ms o 16K ciclos + 65 ms. La configuración se ha comprobado que funciona: puedo obtener la primera lectura analógica de < 1,5 ms después de la aplicación de la tensión de entrada.
El filtro de paso bajo de la placa se configuró originalmente a 50 Hz, pero cambié el condensador para que tenga un ancho de banda de 200 Hz, por lo tanto, la entrada analógica (A0) toma aproximadamente 5,5 ms para proporcionar lecturas estables. Esto también fue probado.
El voltaje de salida estable del acelerómetro puede estar (dependiendo del montaje) entre 1.43V y 1.77V para -1g a 1g. El ADXL335 no tolera más de aproximadamente 3.5V en cualquier pin (para estar en el lado seguro).
Problema
Me gustaría estabilizar la salida del acelerómetro más rápido, sin esperar los 5,5 ms después del encendido: esto me permitiría muestrear más veces el valor de la gravedad inicial, antes de que cambie debido a la desaceleración. Me gustaría mantener 200 Hz como ancho de banda para reducir el ruido más adelante durante las siguientes mediciones de desaceleración de frenado.
El ADXL335 tiene una frecuencia de resonancia de 5,5 kHz y un ancho de banda de > 550 Hz cuando no se utilizan condensadores: antes del condensador de paso bajo, el primer valor confiable está listo aproximadamente 2 ms después del encendido. Eso significa más de 3 ms guardados en comparación con mi caso actual.
¿Cómo puedo hacer eso?
¿Puedo conectar la salida del capacitor también a un pin adicional, configurarlo como salida durante aproximadamente 1 ms y luego configurarlo como entrada de alta impedancia, a través de una resistencia? ¿O dañaría el ADXL335?
¿Es quizás mejor realizar todo el filtrado en digital para cambiar el ancho de banda según sea necesario? Incluso en este segundo caso, ¿funcionaría la configuración que describí?