Tabla de contenido:
Video: Arduino Nano - Tutorial de acelerómetro digital de 3 ejes de 12 bits / 8 bits MMA8452Q: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
El MMA8452Q es un acelerómetro inteligente micromaquinado capacitivo de tres ejes, de bajo consumo y con 12 bits de resolución. Las opciones flexibles programables por el usuario se proporcionan con la ayuda de funciones integradas en el acelerómetro, configurables en dos pines de interrupción. Tiene escalas completas seleccionables por el usuario de ± 2g / ± 4g / ± 8g con datos filtrados con filtro de paso alto, así como datos no filtrados disponibles en tiempo real. Aquí está su demostración con Arduino nano.
Paso 1: ¡¡Lo que necesitas …
1. Arduino Nano
2. MMA8452Q
3. Cable I²C
4. Escudo I²C para Arduino Nano
Paso 2: Conexión:
Tome un protector I2C para Arduino Nano y empújelo suavemente sobre los pines de Nano.
Luego, conecte un extremo del cable I2C al sensor MMA8452Q y el otro extremo al blindaje I2C.
Las conexiones se muestran en la imagen de arriba.
Paso 3: Código:
El código arduino para MMMA8452Q se puede descargar desde nuestro repositorio github- DCUBE Store.
Aqui esta el link.
Incluimos biblioteca Wire.h para facilitar la comunicación I2c del sensor con la placa Arduino.
También puede copiar el código desde aquí, se proporciona de la siguiente manera:
// Distribuido con licencia de libre albedrío.
// Úselo de la forma que desee, lucrativa o gratuita, siempre que encaje en las licencias de sus obras asociadas.
// MMA8452Q
// Este código está diseñado para funcionar con el mini módulo MMA8452Q_I2CS I2C.
#incluir
// La dirección I2C del MMA8452Q es 0x1C (28)
#define Addr 0x1C
configuración vacía ()
{
// Inicializar la comunicación I2C como MASTER
Wire.begin ();
// Inicializar la comunicación en serie, configurar la velocidad en baudios = 9600
Serial.begin (9600);
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Seleccionar registro de control
Wire.write (0x2A);
// Modo de espera
Wire.write (0x00);
// Detener la transmisión I2C
Wire.endTransmission ();
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Seleccionar registro de control
Wire.write (0x2A);
// Modo activo
Wire.write (0x01);
// Detener la transmisión I2C
Wire.endTransmission ();
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Seleccionar registro de control
Wire.write (0x0E);
// Establecer rango en +/- 2g
Wire.write (0x00);
// Detener la transmisión I2C
Wire.endTransmission ();
retraso (300);
}
bucle vacío ()
{
datos int sin firmar [7];
// Solicita 7 bytes de datos
Wire.requestFrom (Dirección, 7);
// Leer 7 bytes de datos
// estado, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
if (Cable disponible () == 7)
{
datos [0] = Wire.read ();
datos [1] = Wire.read ();
datos [2] = Wire.read ();
datos [3] = Wire.read ();
datos [4] = Wire.read ();
datos [5] = Wire.read ();
datos [6] = Wire.read ();
}
// Convierte los datos a 12 bits
int xAccl = ((datos [1] * 256) + datos [2]) / 16;
si (xAccl> 2047)
{
xAccl - = 4096;
}
int yAccl = ((datos [3] * 256) + datos [4]) / 16;
si (yAccl> 2047)
{
yAccl - = 4096;
}
int zAccl = ((datos [5] * 256) + datos [6]) / 16;
si (zAccl> 2047)
{
zAccl - = 4096;
}
// Salida de datos al monitor en serie
Serial.print ("Aceleración en el eje X:");
Serial.println (xAccl);
Serial.print ("Aceleración en el eje Y:");
Serial.println (yAccl);
Serial.print ("Aceleración en el eje Z:");
Serial.println (zAccl);
retraso (500);
}
Paso 4: Aplicaciones:
MMA8452Q tiene varias aplicaciones que incluyen aplicaciones de brújula electrónica, detección de orientación estática que incorporan identificación de posición vertical / horizontal, arriba / abajo, izquierda / derecha, posterior / frontal, computadora portátil, lector electrónico y detección de caída libre y caída libre de computadora portátil, en tiempo real detección de orientación que incluye realidad virtual y retroalimentación de posición del usuario de juegos en 3D, análisis de actividad en tiempo real, como conteo de pasos con podómetro, detección de caída libre para HDD, respaldo GPS a estima y mucho más.
Recomendado:
Control de movimiento con Raspberry Pi y LIS3DHTR, acelerómetro de 3 ejes, usando Python: 6 pasos
Control de movimiento con Raspberry Pi y LIS3DHTR, acelerómetro de 3 ejes, usando Python: La belleza nos rodea, pero por lo general, necesitamos estar caminando en un jardín para saberlo. - Rumi Como el grupo educado que parecemos ser, invertimos la gran mayoría de nuestra energía trabajando antes que nuestras computadoras y teléfonos celulares. Por eso, con frecuencia dejamos que nuestro bienestar
Acelerómetro de 3 ejes, ADXL345 con Raspberry Pi usando Python: 6 pasos
Acelerómetro de 3 ejes, ADXL345 con Raspberry Pi usando Python: pensando en un dispositivo que pueda verificar el punto en el que su Offroader está inclinado para demorarse. ¿No sería agradable si alguien se ajusta cuando existe la posibilidad de volcarse? Obviamente, sí. Sería tru
DigiLevel: un nivel digital con dos ejes: 13 pasos (con imágenes)
DigiLevel: un nivel digital con dos ejes: la inspiración para este instructivo es el nivel de burbuja digital DIY que se encuentra aquí por GreatScottLab. Me gustó este diseño, pero quería una pantalla más grande con una interfaz más gráfica. También quería mejores opciones de montaje para la electrónica en el cas
Acelerómetro de 3 ejes LIS2HH12 Módulo: 10 pasos (con imágenes)
Acelerómetro de 3 ejes LIS2HH12 Módulo: este Instructable se considera un nivel principiante con algo de experiencia con el software arduino y la soldadura. El módulo LIS2HH12 está hecho por Tiny9. Tiny9 es una nueva empresa que se dedica a la venta de módulos de sensores para aficionados al bricolaje, empresas o inventores. Allí
Preliminar * SPI en la Pi: comunicación con un acelerómetro SPI de 3 ejes usando una Raspberry Pi: 10 pasos
Preliminar * SPI en Pi: comunicación con un acelerómetro SPI de 3 ejes usando una Raspberry Pi: guía paso a paso sobre cómo configurar Raspbian y comunicarse con un dispositivo SPI usando la biblioteca SPI bcm2835 (¡NO un poco golpeado!) muy preliminar … Necesito agregar mejores imágenes de la conexión física y trabajar en algunos de los códigos incómodos