2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
SI7050 este un senzor digital de temperatură care funcționează pe protocolul de comunicație I2C și oferă o precizie ridicată pe întreaga gamă de tensiune de operare și temperatură. Această precizie ridicată a senzorului este atribuită de noua procesare a semnalului și designul analogic. Acești senzori sunt încorporați cu o memorie on-chip care stochează datele de calibrare care facilitează utilizarea acestuia pe o gamă largă. Iată demonstrația sa cu Arduino Nano.
Pasul 1: De ce ai nevoie..
1. Arduino Nano
2. SI7050
3. Cablu I²C
4. Scut I²C pentru Arduino Nano
Pasul 2: Conexiune:
Luați un scut I2C pentru Arduino Nano și împingeți-l ușor peste pinii Nano.
Apoi conectați capătul unui cablu I2C la senzorul SI7050 și celălalt capăt la ecranul I2C.
Conexiunile sunt afișate în imaginea de mai sus.
Pasul 3: Cod:
Codul arduino pentru SI7050 poate fi descărcat din depozitul nostru github-Magazin DCUBE.
Iată linkul pentru același lucru:
github.com/DcubeTechVentures/SI7050/blob/master/Arduino/SI7050.ino
Includem biblioteca Wire.h pentru a facilita comunicarea I2c a senzorului cu placa Arduino.
De asemenea, puteți copia codul de aici, acesta este dat după cum urmează:
// Distribuit cu o licență de liberă voință.
// Folosiți-l în orice mod doriți, profit sau gratuit, cu condiția să se încadreze în licențele lucrărilor sale asociate.
// SI7050
// Acest cod este conceput pentru a funcționa cu modulul SI7050_I2CS I2C Mini
#include
// Adresa SI7050 I2C este 0x40 (64)
#define Addr 0x40
configurare nulă ()
{
// Inițializați comunicarea I2C ca MASTER
Wire.begin ();
// Inițializați comunicarea serială, setați rata de transmisie = 9600
Serial.begin (9600);
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Opriți transmisia I2C
Wire.endTransmission ();
întârziere (300);
}
bucla nulă ()
{
date int nesemnate [2];
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Trimiteți comanda de măsurare a temperaturii, NU HOLD MASTER
Wire.write (0xF3);
// Opriți transmisia I2C
Wire.endTransmission ();
întârziere (500);
// Solicitați 2 octeți de date
Wire.requestFrom (Addr, 2);
// Citiți 2 octeți de date
// temp msb, temp lsb
if (Wire.available () == 2)
{
date [0] = Wire.read ();
date [1] = Wire.read ();
}
// Conversia datelor
float temp = ((date [0] * 256.0) + date [1]);
float ctemp = ((175,72 * temp) / 65536,0) - 46,85;
float ftemp = ctemp * 1,8 + 32;
// Ieșire date pe monitorul serial
Serial.print ("Temperatura în grade Celsius:");
Serial.print (ctemp);
Serial.println ("C");
Serial.print ("Temperatura în Fahrenheit:");
Serial.print (ftemp);
Serial.println ("F");
întârziere (500);
}
Pasul 4: Aplicații:
SI7050 poate fi încorporat în diverse sisteme, inclusiv echipamente pentru computere, dispozitive portabile de consum și echipamente medicale. Acest senzor poate fi utilizat în lanțurile de depozitare frigorifică, urmărirea activelor, precum și în diferite sisteme de control industrial. De asemenea, joacă un rol esențial în protecția bateriei.