Paso 3: código:
El código Java para MMA8452Q puede descargarse desde el repositorio de github-ControlEverythingCommunity
Aquí está el enlace para el mismo:
https://github.com/ControlEverythingCommunity/MMA8...
La hoja de datos de MMA8452Q se puede encontrar aquí:
https://S3.amazonaws.com/controleverything.Media/c...
Hemos utilizado pi4j biblioteca de código java, los pasos para instalar pi4j en frambuesa pi se describe aquí:
También puede copiar el código desde aquí, se da como sigue:
Distribuido con una licencia de libre albedrío.
Se usa cualquier forma desea, beneficio o libre, siempre cabe en las licencias de sus obras anexas.
MMA8452Q
Este código está diseñado para trabajar con el módulo de Mini de I2C MMA8452Q_I2CS de ControlEverything.com.
https://www.controleverything.com/content/Accelor...
Import com.pi4j.io.i2c.I2CBus;
Import com.pi4j.io.i2c.I2CDevice;
Import com.pi4j.io.i2c.I2CFactory;
importación java.io.IOException;
clase MMA8452Q
{
público estático principal vacío (cadena args[]) produce excepción
{
Crear bus I2C
Bus I2CBus = I2CFactory.getInstance(I2CBus.BUS_1);
Obtener dispositivo I2C, MMA8452Q I2C dirección es 0x1C(28)
Dispositivo de I2CDevice = bus.getDevice(0x1C);
Enviar comandos de espera
Device.Write (0x2A, (byte) 0 x 00);
Enviar comando activo
Device.Write (0x2A, (byte) 0 x 01);
Gama SET hasta +-2g
Device.Write (0x0E, (byte) 0 x 00);
Thread.Sleep(500);
Leer 7 bytes de datos de la dirección 0x00(0)
Estado, X msb, X lsb Y msb Y lsb, Z msb, lsb Z
datos de Byte [] = new byte [7];
Device.Read (0 x 00, datos, 0, 7);
Convertir los valores de
int xAccl = (((datos [1] & 0xFF) * 256) + (datos [2] & 0xFF)) / 16;
Si (xAccl > 2047)
{
xAccl = xAccl - 4096;
}
int yAccl = (((datos [3] & 0xFF) * 256) + (datos [4] & 0xFF)) / 16;
Si (yAccl > 2047)
{
yAccl = yAccl - 4096;
}
int zAccl = (((datos [5] & 0xFF) * 256) + (datos [6] & 0xFF)) / 16;
Si (zAccl > 2047)
{
zAccl = zAccl - 4096;
}
Datos de salida a pantalla
System.out.printf ("eje x: %d %n", xAccl);
System.out.printf ("eje: %d %n", yAccl);
System.out.printf ("eje z: %d %n", zAccl);
}
}