Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
SI7050 ist ein digitaler Temperatursensor, der mit dem I2C-Kommunikationsprotokoll arbeitet und eine hohe Genauigkeit über den gesamten Betriebsspannungs- und Temperaturbereich bietet. Diese hohe Genauigkeit des Sensors wird auf die neuartige Signalverarbeitung und das analoge Design zurückgeführt. Diese Sensoren sind in einen On-Chip-Speicher eingebettet, der die Kalibrierungsdaten speichert, was ihre Verwendung über einen weiten Bereich erleichtert. Hier ist seine Demonstration mit Arduino Nano.
Schritt 1: Was Sie brauchen.
1. Arduino Nano
2. SI7050
3. I²C-Kabel
4. I²C-Schild für Arduino Nano
Schritt 2: Verbindung:
Nehmen Sie ein I2C-Shield für Arduino Nano und schieben Sie es vorsichtig über die Pins von Nano.
Verbinden Sie dann das eine Ende des I2C-Kabels mit dem SI7050-Sensor und das andere Ende mit der I2C-Abschirmung.
Die Anschlüsse sind im Bild oben dargestellt.
Schritt 3: Code:
Der Arduino-Code für SI7050 kann von unserem Github-Repository-DCUBE Store heruntergeladen werden.
Hier der Link dazu:
github.com/DcubeTechVentures/SI7050/blob/master/Arduino/SI7050.ino
Wir binden die Bibliothek Wire.h ein, um die I2c-Kommunikation des Sensors mit dem Arduino-Board zu erleichtern.
Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:
// Wird mit einer frei wählbaren Lizenz vertrieben.
// Verwenden Sie es, wie Sie wollen, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.
// SI7050
// Dieser Code wurde entwickelt, um mit dem SI7050_I2CS I2C Mini Module zu arbeiten
#enthalten
// SI7050 I2C-Adresse ist 0x40(64)
#define Addr 0x40
Void-Setup ()
{
// I2C-Kommunikation als MASTER initialisieren
Wire.begin();
// Serielle Kommunikation initialisieren, Baudrate = 9600. einstellen
Serial.begin (9600);
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// I2C-Übertragung stoppen
Wire.endTransmission();
Verzögerung (300);
}
Leere Schleife ()
{
unsignierte int-Daten[2];
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// Temperaturmessbefehl senden, NO HOLD MASTER
Wire.write(0xF3);
// I2C-Übertragung stoppen
Wire.endTransmission();
Verzögerung (500);
// 2 Byte Daten anfordern
Wire.requestFrom(Addr, 2);
// 2 Byte Daten lesen
// temp msb, temp lsb
if(Draht.verfügbar() == 2)
{
data[0] = Wire.read();
data[1] = Wire.read();
}
// Konvertieren Sie die Daten
Float-Temp = ((data[0] * 256.0) + data[1]);
float ctemp = ((175,72 * temp) / 65536,0) - 46,85;
float ftemp = ctemp * 1,8 + 32;
// Daten an seriellen Monitor ausgeben
Serial.print ("Temperatur in Celsius: ");
Serial.print (ctemp);
Serial.println("C");
Serial.print ("Temperatur in Fahrenheit: ");
Serial.print (ftemp);
Serial.println("F");
Verzögerung (500);
}
Schritt 4: Anwendungen:
SI7050 kann in verschiedene Systeme integriert werden, darunter Computerausrüstungen, tragbare Verbrauchergeräte und medizinische Geräte. Dieser Sensor kann in Kühlketten, Asset-Tracking sowie verschiedenen industriellen Steuerungssystemen eingesetzt werden. Es spielt auch eine zentrale Rolle beim Batterieschutz.