2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
SI7050 je digitální teplotní senzor, který pracuje na komunikačním protokolu I2C a nabízí vysokou přesnost v celém rozsahu provozního napětí a teploty. Tato vysoká přesnost senzoru je dána novým zpracováním signálu a analogovým designem. Tyto senzory jsou vybaveny integrovanou pamětí na čipu, která ukládá kalibrační data, což usnadňuje jejich použití v širokém rozsahu. Zde je jeho ukázka s Arduino Nano.
Krok 1: Co potřebujete..
1. Arduino Nano
2. SI7050
3. I²C kabel
4. I²C štít pro Arduino Nano
Krok 2: Připojení:
Vezměte štít I2C pro Arduino Nano a jemně jej zatlačte přes kolíky Nano.
Poté připojte jeden konec kabelu I2C k senzoru SI7050 a druhý konec ke stínění I2C.
Připojení jsou znázorněna na obrázku výše.
Krok 3: Kód:
Arduino kód pro SI7050 lze stáhnout z našeho úložiště github-DCUBE Store.
Zde je odkaz na totéž:
github.com/DcubeTechVentures/SI7050/blob/master/Arduino/SI7050.ino
Zahrnujeme knihovnu Wire.h pro usnadnění I2c komunikace senzoru s deskou Arduino.
Odtud můžete také zkopírovat kód, který je uveden následovně:
// Distribuováno s licencí svobodné vůle.
// Používejte jej jakýmkoli způsobem, ať už ziskem nebo zdarma, za předpokladu, že se vejde do licencí souvisejících děl.
// SI7050
// Tento kód je navržen pro práci s mini modulem SI7050_I2CS I2C
#zahrnout
// Adresa SI7050 I2C je 0x40 (64)
#define Addr 0x40
neplatné nastavení ()
{
// Inicializujte komunikaci I2C jako MASTER
Wire.begin ();
// Inicializace sériové komunikace, nastavení přenosové rychlosti = 9600
Serial.begin (9600);
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Zastavte přenos I2C
Wire.endTransmission ();
zpoždění (300);
}
prázdná smyčka ()
{
nepodepsaná int data [2];
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Odeslání příkazu měření teploty, ŽÁDNÝ MASTER HOLD
Wire.write (0xF3);
// Zastavte přenos I2C
Wire.endTransmission ();
zpoždění (500);
// Vyžádejte si 2 bajty dat
Wire.requestFrom (Addr, 2);
// Přečíst 2 bajty dat
// temp msb, temp lsb
pokud (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Převod dat
float temp = ((data [0] * 256,0) + data [1]);
float ctemp = ((175,72 * temp) / 65536,0) - 46,85;
float ftemp = ctemp * 1,8 + 32;
// Výstup dat na sériový monitor
Serial.print ("Teplota ve stupních Celsia:");
Serial.print (ctemp);
Serial.println ("C");
Serial.print ("Teplota ve stupních Fahrenheita:");
Serial.print (ftemp);
Serial.println ("F");
zpoždění (500);
}
Krok 4: Aplikace:
SI7050 může být začleněn do různých systémů včetně počítačového vybavení, přenosných spotřebitelských zařízení a zdravotnických zařízení. Tento senzor lze použít v chladírenských řetězcích, sledování aktiv a také v různých průmyslových řídicích systémech. Hraje také klíčovou roli v ochraně baterie.