Gränsyta TMP-112 med Arduino nano (I2C) (4 / 5 steg)
Steg 4: programmering
#include
void setup()
{
I2C adressen till TMP112
#define TMP_ADDR 0x48
Gå med I2c bussen som master
Wire.BEGIN();
Starta seriell kommunikation
Serial.BEGIN(9600);
Börja överföringen
Wire.beginTransmission(TMP_ADDR);
Välj Aktivera register
Wire.write(0x01);
Välj normal drift
Wire.write(0x60A0);
Slutet överföring och release I2C bussen
Wire.endTransmission();
}
void loop()
{
Börja överföringen
Wire.beginTransmission(TMP_ADDR);
Välj Data register
Wire.write(0X00);
Slutet överföring
Wire.endTransmission();
Delay(500);
Begära 2 byte, Msb först
Wire.requestFrom (TMP_ADDR, 2);
Läs två byte
While(Wire.available())
{
ta bort sopor
Serial.flush();
int msb = Wire.read();
int lsb = Wire.read();
Wire.endTransmission();
Datakonvertering i raw värden
int rawtmp = msb << 8 |lsb;
int värde = rawtmp >> 4.
dubbel ans = värde * 0.0625;
Utskrifter
Serial.Print ("celsius värde:");
Serial.println(ans);
}
}