Descripción
Acelerómetro de tres ejes Digital Mma8452 GY-45
Es un acelerómetro de bajo consumo, tres ejes y 12 bits de resolución (MMA8452).
Rangos seleccionables de ±2g/±4g/±8g con una salida filtrada de datos o con la salida de datos crudos en tiempo real.
Características:
- Alimentación 1.95 V a 3.6 V
- Escala seleccionable dinámicamente ±2g/±4g/±8g
- Salida de datos a 1.56 Hz hasta 800 Hz
- Salida digital de datos a 12-bit y 8-bit
- Salida de datos Protocolo I2C (opera hasta 2.25 MHz con resistencias de 4.7 kO pullup)
- Dos pines de interrupción programables para 6 fuentes distintas.
- Tres ejes
- Detección de orientación (Portrait/Landscape) con histeresis
- Datos filtrados en tiempo real
- Consumo: 6 µA – 165 µA
Ejercicio con este acelerómetro
#include <Wire.h>
#define Addr 0x1C
void setup()
{
Wire.begin();
Serial.begin(9600);
Wire.beginTransmission(Addr);
Wire.write(0x2A);
Wire.write(0x00);
Wire.endTransmission();
Wire.beginTransmission(Addr);
Wire.write(0x2A);
Wire.write(0x01);
Wire.endTransmission();
Wire.beginTransmission(Addr);
Wire.write(0x0E);
Wire.write(0x00);
Wire.endTransmission();
delay(300);
}
void loop()
{
unsigned int data[7];
Wire.requestFrom(Addr, 7);
if(Wire.available() == 7)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
data[4] = Wire.read();
data[5] = Wire.read();
data[6] = Wire.read();
}
int xAccl = ((data[1] * 256) + data[2]) / 16;
if (xAccl > 2047)
{
xAccl -= 4096;
}
int yAccl = ((data[3] * 256) + data[4]) / 16;
if (yAccl > 2047)
{
yAccl -= 4096;
}
int zAccl = ((data[5] * 256) + data[6]) / 16;
if (zAccl > 2047)
{
zAccl -= 4096;
}
Serial.print(«Acceleration in X-Axis : «);
Serial.println(xAccl);
Serial.print(«Acceleration in Y-Axis : «);
Serial.println(yAccl);
Serial.print(«Acceleration in Z-Axis : «);
Serial.println(zAccl);
delay(500);
}
Valoraciones
No hay valoraciones aún.