2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
SI7050, I2C iletişim protokolü üzerinde çalışan ve tüm çalışma voltajı ve sıcaklık aralığında yüksek doğruluk sunan bir dijital sıcaklık sensörüdür. Sensörün bu yüksek doğruluğu, yeni sinyal işleme ve analog tasarım ile ilişkilendirilir. Bu sensörler, geniş bir aralıkta kullanımını kolaylaştıran kalibrasyon verilerini saklayan bir çip üstü belleğe yerleştirilmiştir. İşte Arduino Nano ile yaptığı gösteri.
Adım 1: İhtiyacınız Olan Şey..!
1. Arduino Nano
2. SI7050
3. I²C Kablosu
4. Arduino Nano için I²C Kalkanı
Adım 2: Bağlantı:
Arduino Nano için bir I2C kalkanı alın ve yavaşça Nano'nun pimlerinin üzerine itin.
Ardından I2C kablosunun bir ucunu SI7050 sensörüne ve diğer ucunu I2C blendajına bağlayın.
Bağlantılar yukarıdaki resimde gösterilmiştir.
Adım 3: Kod:
SI7050 için arduino kodu, github deposu-DCUBE Mağazamızdan indirilebilir.
İşte aynısı için bağlantı:
github.com/DcubeTechVentures/SI7050/blob/master/Arduino/SI7050.ino
Sensörün Arduino kartı ile I2c iletişimini kolaylaştırmak için Wire.h kitaplığını ekledik.
Kodu buradan da kopyalayabilirsiniz, aşağıdaki şekilde verilmiştir:
// Özgür irade lisansıyla dağıtılır.
// İlişkili çalışmalarının lisanslarına uyması koşuluyla, istediğiniz şekilde, kârlı veya ücretsiz olarak kullanın.
// SI7050
// Bu kod, SI7050_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.
#Dahil etmek
// SI7050 I2C adresi 0x40(64)
#define Addr 0x40
geçersiz kurulum()
{
// I2C iletişimini MASTER olarak başlat
Wire.begin();
// Seri iletişimi başlat, baud hızını ayarla = 9600
Seri.başla(9600);
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// I2C iletimini durdur
Wire.endTransmission();
gecikme(300);
}
boşluk döngüsü()
{
imzasız int veri[2];
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Sıcaklık ölçüm komutu gönder, HOLD MASTER YOK
Wire.write(0xF3);
// I2C iletimini durdur
Wire.endTransmission();
gecikme(500);
// 2 bayt veri iste
Wire.requestFrom(Adr, 2);
// 2 bayt veri oku
// temp msb, temp lsb
if(Wire.available() == 2)
{
data[0] = Wire.read();
data[1] = Wire.read();
}
// Verileri dönüştür
kayan nokta sıcaklığı = ((veri[0] * 256.0) + veri[1]);
kayan nokta sıcaklık = ((175.72 * sıcaklık) / 65536.0) - 46.85;
kayan nokta ftemp = ctemp * 1.8 + 32;
// Verileri seri monitöre çıkar
Serial.print("Sıcaklık Santigrat Olarak: ");
Seri.print(ctemp);
Serial.println("C");
Serial.print("Sıcaklık Fahrenhayt Olarak: ");
Seri.print(ftemp);
Serial.println("F");
gecikme(500);
}
Adım 4: Uygulamalar:
SI7050, bilgisayar ekipmanları, taşınabilir tüketici cihazları ve tıbbi ekipmanlar dahil olmak üzere çeşitli sistemlere dahil edilebilir. Bu sensör, soğuk depo zincirlerinde, varlık takibinde ve çeşitli endüstriyel kontrol sistemlerinde kullanılabilir. Pil korumasında da önemli bir rol oynar.