Temperaturmätning med hjälp av STS21 och Arduino Nano (3 / 4 steg)
Steg 3: Kod för temperaturmätning:
Kan börja med arduino koden nu.
När du använder modulen sensor med arduino, inkluderar vi Wire.h bibliotek. "Wire" bibliotek innehåller funktioner som underlättar i2c kommunikationen mellan sensorn och arduino styrelsen.
Hela arduino koden ges nedan för att underlätta för användaren:
#include < Wire.h >
STS21 I2C adress är 0x4A(74)
#define addr 0x4A
void setup()
{
Initialisera I2C kommunikation som MASTER
Wire.BEGIN();
Starta seriell kommunikation, ange baudvärde = 9600
Serial.BEGIN(9600);
Delay(300);
}
void loop()
{
unsigned int data [2].
Starta I2C-överföring
Wire.beginTransmission(addr);
Välj ingen håll master
Wire.write(0xF3);
Slutet I2C överföring
Wire.endTransmission();
Delay(300);
Begäran 2 byte data
Wire.requestFrom (addr, 2);
Läs 2 byte data
om (Wire.available() == 2)
{
data [0] = Wire.read();
data [1] = Wire.read();
}
Konvertera data
int rawtmp = data [0] * 256 + data [1].
int värde = rawtmp & 0xFFFC;
Double cTemp =-46.85 + (175.72 * (värde / 65536.0));
Double fTemp = cTemp * 1,8 + 32.
Utdata till seriell monitor
Serial.Print ("temperaturen i Celsius:");
Serial.Print(cTemp);
Serial.println ("C").
Serial.Print ("temperaturen i Fahrenheit:");
Serial.Print(fTemp);
Serial.println "F".
Delay(300);
}
I tråd bibliotek används Wire.write() och Wire.read() för att skriva kommandon och läsa sensor utdata.
Serial.Print() och Serial.println() används för att visa utdata från sensorn på serial bildskärmen av Arduino IDE.
Produktionen av sensorn visas i bilden ovan.