Étape 4: programmation
#include
void setup()
{
Adresse I2C de le TMP112
#define TMP_ADDR 0 x 48
Rejoindre le Bus I2c maître
Wire.Begin() ;
Commencer la communication série
Serial.Begin(9600) ;
Commencer la transmission
Wire.beginTransmission(TMP_ADDR) ;
Sélectionnez ENABLE inscrire
Wire.Write(0x01) ;
Sélectionnez un fonctionnement normal
Wire.Write(0x60A0) ;
Fin de transmission et de libérer les bus I2C
Wire.endTransmission() ;
}
void loop()
{
Commencer la transmission
Wire.beginTransmission(TMP_ADDR) ;
Sélectionnez les données de registres
Wire.Write(0X00) ;
Fin de Transmission
Wire.endTransmission() ;
Delay(500) ;
Demander tout d’abord les 2 octets, Msb
Wire.requestFrom (TMP_ADDR, 2) ;
Lire les deux octets
while(Wire.available())
{
enlever des ordures
Serial.Flush() ;
msb int = Wire.read() ;
lsb int = Wire.read() ;
Wire.endTransmission() ;
Conversion de données en valeurs brutes
int rawtmp = msb << 8 |lsb ;
int valeur = rawtmp >> 4 ;
double ans = valeur * 0,0625 ;
Sortie d’impression
Serial.Print ("celsius valeur:") ;
Serial.println(ans) ;
}
}