2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
SI7050 to cyfrowy czujnik temperatury, który działa na protokole komunikacyjnym I2C i oferuje wysoką dokładność w całym zakresie napięcia roboczego i temperatury. Tak wysoką dokładność czujnika przypisuje się nowatorskiemu przetwarzaniu sygnału i konstrukcji analogowej. Czujniki te są wbudowane w pamięć chipową, która przechowuje dane kalibracyjne, co ułatwia ich użycie w szerokim zakresie. Oto jego demonstracja z Arduino Nano.
Krok 1: Czego potrzebujesz.
1. Arduino Nano
2. SI7050
3. Kabel I²C
4. Tarcza I²C dla Arduino Nano
Krok 2: Połączenie:
Weź nakładkę I2C dla Arduino Nano i delikatnie wepchnij ją na piny Nano.
Następnie podłącz jeden koniec kabla I2C do czujnika SI7050, a drugi koniec do ekranu I2C.
Połączenia prezentuje powyższy obrazek.
Krok 3: Kod:
Kod arduino dla SI7050 można pobrać z naszego repozytorium github-DCUBE Store.
Oto link do tego samego:
github.com/DcubeTechVentures/SI7050/blob/master/Arduino/SI7050.ino
Dołączamy bibliotekę Wire.h ułatwiającą komunikację I2c czujnika z płytką Arduino.
Możesz również skopiować kod stąd, jest on podany w następujący sposób:
// Rozprowadzane z wolną licencją.
// Używaj go w dowolny sposób, z zyskiem lub za darmo, pod warunkiem, że pasuje do licencji powiązanych z nim dzieł.
// SI7050
// Ten kod jest przeznaczony do pracy z minimodułem SI7050_I2CS I2C
#włączać
// Adres SI7050 I2C to 0x40(64)
#define Addr 0x40
pusta konfiguracja()
{
// Zainicjuj komunikację I2C jako MASTER
Wire.początek();
// Zainicjuj komunikację szeregową, ustaw szybkość transmisji = 9600
Serial.początek(9600);
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Zatrzymaj transmisję I2C
Wire.endTransmission();
opóźnienie(300);
}
pusta pętla()
{
dane int bez znaku[2];
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wyślij polecenie pomiaru temperatury, BEZ HOLD MASTER
Wire.write(0xF3);
// Zatrzymaj transmisję I2C
Wire.endTransmission();
opóźnienie (500);
// Poproś o 2 bajty danych
Wire.requestFrom(Addr, 2);
// Odczytaj 2 bajty danych
// temp msb, temp lsb
if(Przewód.dostępny() == 2)
{
dane[0] = Przewód.odczyt();
dane[1] = Drut.odczyt();
}
// Konwertuj dane
float temp = ((dane[0] * 256,0) + dane[1]);
float ctemp = ((175,72 * temp) / 65536.0) - 46,85;
pływak ftemp = ctemp * 1,8 + 32;
// Dane wyjściowe do monitora szeregowego
Serial.print("Temperatura w stopniach Celsjusza: ");
Serial.print(ctemp);
Serial.println("C");
Serial.print("Temperatura w stopniach Fahrenheita: ");
Serial.print(ftemp);
Serial.println(" F");
opóźnienie (500);
}
Krok 4: Aplikacje:
SI7050 może być wbudowany w różne systemy, w tym sprzęt komputerowy, przenośne urządzenia konsumenckie i sprzęt medyczny. Czujnik ten może być stosowany w łańcuchach chłodni, śledzeniu zasobów, a także w różnych przemysłowych systemach sterowania. Odgrywa również kluczową rolę w ochronie baterii.