Paso 3: código:
El código java para MPL3115A2 puede descargarse desde el repositorio de github-ControlEverythingCommunity
Aquí está el enlace para el mismo:
https://github.com/ControlEverythingCommunity/MPL3...
La hoja de datos de MPL3115A2 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.
MPL3115A2
Este código está diseñado para trabajar con el módulo de Mini de I2C MPL3115A2_I2CS de ControlEverything.com.
https://www.controleverything.com/products
Import com.pi4j.io.i2c.I2CBus;
Import com.pi4j.io.i2c.I2CDevice;
Import com.pi4j.io.i2c.I2CFactory;
importación java.io.IOException;
clase MPL3115A2
{
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, MPL3115A2 I2C dirección es 0x60(96)
Dispositivo de I2CDevice = Bus.getDevice(0x60);
Registro de control Select
Modo activo, OSR = 128, modo de altímetro
Device.Write (0x26, (byte) 0xB9);
Registro de configuración de datos Seleccione
Datos listo evento habilitado para altitud, presión, temperatura
Device.Write (0 x 13, (byte) 0x07);
Registro de control Select
Modo activo, OSR = 128, modo de altímetro
Device.Write (0x26, (byte) 0xB9);
Thread.Sleep(1000);
Leer 6 bytes de datos de la dirección 0x00(00)
Estado, tHeight msb1, tHeight msb, lsb tHeight, temp msb, lsb temp
datos de Byte [] = new byte [6];
Device.Read (0 x 00, datos, 0, 6);
Convertir los datos en 20 bits
int tHeight = (((datos [1] & 0xFF) * 65536) + ((datos [2] & 0xFF) * 256) + (datos [3] & 0xF0)) / 16);
int temp = ((datos [4] * 256) + (datos [5] & 0xF0)) / 16;
doble altura = tHeight / 16.0;
cTemp doble = (temp / 16.0);
doble fTemp = cTemp * 1.8 + 32;
Registro de control Select
Modo activo, OSR = 128, modalidad de barómetro
Device.Write (0x26, (byte) 0 x 39);
Thread.Sleep(1000);
Lee 4 bytes de datos de la dirección 0x00(00)
Estado, pres msb1, pres msb, lsb de pres
Device.Read (0 x 00, datos, 0, 4);
Convertir los datos en 20 bits
int pres = (((datos [1] & 0xFF) * 65536) + ((datos [2] & 0xFF) * 256) + (datos [3] & 0xF0)) / 16;
doble presión = (pres / 4.0) / 1000.0;
Datos de salida a pantalla
System.out.printf ("presión: kPa %.2f %n", presión);
System.out.printf ("altitud: %.2f m %n", altura);
System.out.printf ("temperatura en grados Celsius: %.2f C %n", cTemp);
System.out.printf ("temperatura en grados Fahrenheit: %.2f F %n", fTemp);
}
}