2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
SI7050, I2C rabitə protokolu üzərində işləyən və bütün işləmə gərginliyi və temperatur aralığında yüksək dəqiqlik təqdim edən rəqəmsal bir temperatur sensoru. Sensorun bu yüksək dəqiqliyi yeni siqnal emalı və analoq dizaynı ilə əlaqədardır. Bu sensorlar, kalibrləmə məlumatlarını saxlayan çip yaddaşına malikdir, bu da geniş diapazonda istifadəsini asanlaşdırır. İşdə Arduino Nano ilə nümayişidir.
Addım 1: Nə Lazımdır..
1. Arduino Nano
2. SI7050
3. I²C Kabel
4. Arduino Nano üçün I²C Shield
Addım 2: Bağlantı:
Arduino Nano üçün bir I2C qalxanı götürün və Nanonun sancaqlarından yumşaq bir şəkildə itələyin.
Sonra I2C kabelinin bir ucunu SI7050 sensoruna, digər ucunu isə I2C ekranına bağlayın.
Bağlantılar yuxarıdakı şəkildə göstərilmişdir.
Addım 3: Kod:
SI7050 üçün arduino kodu github depomuzdan yükləyə bilərsiniz-DCUBE Mağazası.
İşdə bunun üçün bağlantı:
github.com/DcubeTechVentures/SI7050/blob/master/Arduino/SI7050.ino
Sensorun Arduino lövhəsi ilə I2c əlaqəsini asanlaşdırmaq üçün Wire.h kitabxanasına daxildir.
Kodu buradan da kopyalaya bilərsiniz, belə verilir:
// Azad iradə lisenziyası ilə paylanmışdır.
// İstənilən şəkildə, mənfəət və ya pulsuz istifadə edin, əlaqəli əsərlərinin lisenziyalarına uyğun gəlir.
// SI7050
// Bu kod SI7050_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır
#daxil edin
// SI7050 I2C ünvanı 0x40 (64)
#təyin et Addr 0x40
boş quraşdırma ()
{
// I2C ünsiyyətini MASTER olaraq başladın
Wire.begin ();
// Serial rabitəni işə salın, baud dərəcəsini = 9600 olaraq təyin edin
Serial.begin (9600);
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
gecikmə (300);
}
boşluq döngəsi ()
{
imzasız int məlumatları [2];
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// İstilik ölçmə əmri göndər, MASTER YOXDUR
Wire.write (0xF3);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
gecikmə (500);
// 2 bayt məlumat tələb edin
Wire.requestFrom (Addr, 2);
// 2 bayt məlumat oxuyun
// temp msb, temp lsb
əgər (Tel.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Məlumatları çevirin
float temp = ((data [0] * 256.0) + data [1]);
float ctemp = ((175.72 * temp) / 65536.0) - 46.85;
float ftemp = ctemp * 1.8 + 32;
// Məlumatların serial monitora çıxarılması
Serial.print ("Selsi temperaturu:");
Serial.print (ctemp);
Serial.println ("C");
Serial.print ("Fahrenheitdəki temperatur:");
Serial. çap (ftemp);
Serial.println ("F");
gecikmə (500);
}
Addım 4: Tətbiqlər:
SI7050 kompüter avadanlıqları, portativ istehlakçı cihazları və tibbi avadanlıqlar daxil olmaqla müxtəlif sistemlərə daxil edilə bilər. Bu sensor soyuq saxlama zəncirlərində, aktivlərin izlənilməsində və müxtəlif sənaye nəzarət sistemlərində istifadə edilə bilər. Batareyanın qorunmasında da əsas rol oynayır.