Paso 4: programación
#include
void setup()
{
Dirección I2C de la TMP112
#define TMP_ADDR 0x48
A Bus I2c como maestro
Wire.Begin();
Iniciar la comunicación serial
Serial.Begin(9600);
Comienza transmisión
Wire.beginTransmission(TMP_ADDR);
Seleccione Habilitar registro
Wire.Write(0x01);
Seleccione la operación normal
Wire.Write(0x60A0);
Fin transmisión y lanzamiento bus I2C
Wire.endTransmission();
}
void loop()
{
Comienza transmisión
Wire.beginTransmission(TMP_ADDR);
Seleccionar registros de datos
Wire.Write(0X00);
Transmisión final
Wire.endTransmission();
Delay(500);
Solicitar 2 bytes, Msb primero
Wire.requestFrom (TMP_ADDR, 2);
Leer dos bytes
while(Wire.Available())
{
remover la basura
Serial.Flush();
int msb = Wire.read();
lsb de int = Wire.read();
Wire.endTransmission();
Conversión de datos en valores crudos
int rawtmp = msb << 8 |lsb;
int valor = rawtmp >> 4;
doble ans = valor * 0.0625;
Salida de la impresión
Serial.Print ("valor de celsius:");
Serial.println(ANS);
}
}