Stap 4: programmeren
#include
#include LiquidCrystal lcd (6, 7, 5, 4, 3, 2);
VOID Setup
{
de LCD's aantal kolommen en rijen instellen
LCD.begin (16, 2);
I2C adres van de STS21
#define TMP_ADDR 0x4A
I2c Bus toetreden als meester
Wire.begin();
Start seriële communicatie
Serial.begin(9600);
Begin transmissie
Wire.beginTransmission(TMP_ADDR);
Selecteer geen hold-master
Wire.write(0xF3);
Einde transmissie- en release I2C bus
Wire.endTransmission();
}
void loop
{
Begin transmissie
Wire.beginTransmission(TMP_ADDR);
Selecteer gegevens Registers
Wire.write(TMP_ADDR);
Einde transmissie- en release I2C bus
delay(500);
Aanvraagbytes 2, Msb eerst
Wire.requestFrom (TMP_ADDR, 2);
De twee bytes lezen
while(Wire.available())
{
int msb = Wire.read();
int lsb = Wire.read();
Wire.endTransmission();
Gegevensconversie in ruwe waarden
int rawtmp = msb << 8 |lsb;
int-waarde = rawtmp & 0xFFFC;
dubbele ans =-46.85 + (175.72 * (waarde / 65536.0));
Printuitvoer
Serial.Print ("celsius waarde:");
Serial.println(ANS);
lcd.setCursor (0, 0);
LCD.Print ("celsius waarde:");
lcd.setCursor(0,1);
LCD.Print(ANS,10);
delay(1000);
} }