Étape 4: programmation
#include
#include innovente lcd (6, 7, 5, 4, 3, 2) ;
void setup()
{
mettre en place nombre de l’écran LCD de colonnes et de lignes
LCD.Begin (16, 2) ;
Adresse I2C de le STS21
#define TMP_ADDR 0x4A
Rejoindre le Bus I2c maître
Wire.Begin() ;
Commencer la communication série
Serial.Begin(9600) ;
Commencer la transmission
Wire.beginTransmission(TMP_ADDR) ;
Ne sélectionnez aucun maître de cale
Wire.Write(0xF3) ;
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(TMP_ADDR) ;
Fin de transmission et de libérer les bus I2C
Delay(500) ;
Demander tout d’abord les 2 octets, Msb
Wire.requestFrom (TMP_ADDR, 2) ;
Lire les deux octets
while(Wire.available())
{
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 & 0xFFFC ;
double ans =-46.85 + (175.72 * (valeur / 65536.0)) ;
Sortie d’impression
Serial.Print ("celsius valeur:") ;
Serial.println(ans) ;
lcd.setCursor (0, 0) ;
LCD.Print ("celsius valeur:") ;
lcd.setCursor(0,1) ;
LCD.Print(ans,10) ;
Delay(1000) ;
} }