Usar un acelerómetro MMA7455 con Arduino


arduino-acelerometro-mma7455

¿Qué es un acelerómetro MMA7455?

El MMA7455L es un acelerómetro micromecanizado capacitivo de 3 ejes independientes (3 DOF) fabricado por Freescale Semiconductor, que puede ser fácilmente conectado a un autómata o procesador como Arduino.

Es un sensor micromecanizado (MEMS) capacitivo que detecta la aceleración en los ejes X, Y y Z. También es posible determinar la orientación del sensor, gracias a la acción de la fuerza de la gravedad.

El acelerómetro MMA7455 es un sensor muy extendido por ser una opción barata. El MMA7455 tiene un bajo consumo, de 0.5 a 3 mA cuando está activo y 26 µA en modo standby.

La comunicación puede realizarse tanto por bus SPI como por bus I2C, por lo que es sencillo obtener los datos medidos. La tensión de alimentación es de bajo voltaje entre 2.4 a 3.6V.

Anuncio:

Frecuentemente se encuentran integrados en módulos que incorporan la electrónica necesaria para conectarla de forma sencilla a un Arduino. En la mayoría de los módulos, esto incluye un regulador de voltaje que permite alimentar directamente a 5V.

El MMA7455 tiene un conversor analógico digital (ADC), un filtro de paso bajo y compensación de la temperatura. La medición puede ajustarse a un rango de ±2g, ±4g, o ±8g en mediciones de 8bits, y un modo adicional de 10bits ±8g. La sensibilidad es de 1/64 el rango de medición (una precisión de 1.5%)

El MMA7455 dispone de dos pines de interrupciones que podemos configurar para responder a ciertos eventos. Estos eventos incluyen detección de movimientos rápidos golpes y vibraciones, en uno o dos pulsos, y detección de condiciones de caída libre 0-g.

Los acelerómetros son dispositivos ampliamente utilizados en todo tipo de dispositivos, desde determinar la orientación en móviles o tablets, detectar la caída libre, medir pasos en podómetros, estabilización de cámaras, alarmas y sensores de vibración, entre muchos otros.

Si quieres saber más sobre acelerómetros, giroscopios e IMU's en Arduino consulta las serie de entradas Cómo usar un acelerómetro con Arduino, Cómo usar un giroscopio con Arduino y Medir la inclinación con IMU.

Precio

El MMA7455 es un acelerómetro relativamente caro. Podemos encontrarlo en placas de montaje como la GY-291, que incorpora la electrónica necesaria para conectarlo de forma sencilla a Arduino, por 1.80€ en vendedores internacionales de eBay o AliExpress.

arduino-acelerometro-mma7455-componente

Para ser un acelerómetro simple de 3DOF es un poco caro. Tenemos acelerómetros más baratos como el ADXL345, e incluso IMU con características muy superiores como el MPU6050.

Esquema montaje

La conexión es sencilla, simplemente alimentamos el módulo desde Arduino mediante GND y 5V y conectamos el pin SDA y SCL de Arduino con los pines correspondientes del sensor.

arduino-acelerometro-mma7455-esquema

Mientras que la conexión vista desde el lado de Arduino quedaría así.

arduino-acelerometro-mma7455-conexion

En Arduino Uno, Nano y Mini Pro, SDA es el pin A4 y el SCK el pin A5. Para otros modelos de Arduino consultar el esquema patillaje correspondiente.
Verificar que vuestra placa es compatible con 5V antes de conectarla a Arduino. Si no, tendréis que usar un adaptador de nivel lógico.

Ejemplos de código

Para realizar la lectura del MMA7455 tenemos varias librerías disponibles, como la desarrollada por Alexandre Boni (eklex), disponible en este enlace. Esta librería proporciona métodos para comunicar tanto por I2C como por SPI, para configurar el ADXL345, y definir interrupciones para detección de actividad, inactividad, pulsaciones normales y dobles.

La librería proporciona ejemplos de código, que resulta aconsejable revisar. El siguiente ejemplo es una versión reducida a partir de los disponibles en la librería, que muestra los valores de aceleración en los tres ejes.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino

Anuncio:

Previous Usar un acelerómetro ADXL345 con Arduino
Next Determinar la orientación con Arduino y el IMU MPU-6050
1000
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
newest oldest
Ramzi

Hola Luis,
Gracias por este estupendo tutorial.
Creo que hay un pequeño error (tipográfico) en la distribución de patas del arduino.
En el primera imagen del esquema montaje, SDA es (A4) y SCL (A5). lo has puesto al revés.
Como aparece en la siguiente figura (la del arduino) .

Saludos.
Ramzi