Paso 3: código
El código java para MCP9805 puede descargarse desde el repositorio de github-ControlEverythingCommunity
Aquí está el enlace para el mismo:
https://github.com/ControlEverythingCommunity/MCP9...
La hoja de datos de MCP9805 se puede encontrar aquí:
http://WW1.microchip.com/downloads/en/DeviceDoc/21...
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.
MCP9805
Este código está diseñado para trabajar con el módulo de Mini de I2C MCP9808_I2CS de ControlEverything.com.
https://www.controleverything.com/content/tempera...
Import com.pi4j.io.i2c.I2CBus;
Import com.pi4j.io.i2c.I2CDevice;
Import com.pi4j.io.i2c.I2CFactory;
importación java.io.IOException;
clase MCP9805
{
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, MCP9805 I2C dirección es 0x18(24)
Dispositivo de I2CDevice = Bus.getDevice(0x18);
Thread.Sleep(300);
Registro de configuración seleccione
Modo de conversión continua, puesta en marcha
configuración de Byte [] = new byte [2];
config [0] = 0 x 00;
configuración [1] = 0 x 00;
Device.Write (0 x 01, config, 0, 2);
Seleccione la resolución rgister
Resolución = +0.0625 / C
Device.Write (0x08, (byte) 0 x 03);
Thread.Sleep(300);
Lee 2 bytes de datos de la dirección 0x05(05)
Temp msb, lsb temp
datos de Byte [] = new byte [2];
Device.Read (0 x 05, datos, 0, 2);
Convertir los datos en 13 bits
int temp = ((datos [0] & 0x1F) * 256 + (datos [1] & 0xFF));
if(Temp > 4095)
{
Temp = 8192;
}
doble cTemp = temp * 0.0625;
doble fTemp = cTemp * 1.8 + 32;
Datos de salida a pantalla
System.out.printf ("temperatura en Celsius es: %.2f C %n", cTemp);
System.out.printf ("la temperatura en grados Fahrenheit es: %.2f F %n", fTemp);
}
}