İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
TMP112 Yüksek Doğruluk, Düşük Güç, Dijital Sıcaklık Sensörü I2C MINI modülü. TMP112, genişletilmiş sıcaklık ölçümü için idealdir. Bu cihaz, kalibrasyon veya harici bileşen sinyal koşullandırma gerektirmeden ±0.5°C doğruluk sunar.
Bu eğitimde, TMP112 sensör modülünün arduino nano ile arayüzlenmesi gösterilmiştir. Sıcaklık değerlerini okumak için I2c adaptörlü arduino kullandık. Bu I2C adaptör sensör modülüne bağlantıyı daha kolay ve daha güvenilir hale getiriyor.
Adım 1: Donanım Gerekli:
Hedefimizi gerçekleştirmek için ihtiyaç duyduğumuz malzemeler aşağıdaki donanım bileşenlerini içerir:
1. TMP112
2. Arduino Nano
3. I2C Kablosu
4. Arduino Nano için I2C Kalkanı
Adım 2: Donanım Bağlantısı:
Donanım bağlantısı bölümü, temel olarak sensör ve arduino nano arasında gerekli olan kablo bağlantılarını açıklar. İstenilen çıktı için herhangi bir sistem üzerinde çalışırken doğru bağlantıların sağlanması temel zorunluluktur. Yani, gerekli bağlantılar aşağıdaki gibidir:
TMP112, I2C üzerinden çalışacaktır. Sensörün her bir arayüzünün nasıl bağlanacağını gösteren örnek kablo şeması buradadır.
Kutudan çıktığı gibi, kart bir I2C arayüzü için yapılandırılmıştır, bu nedenle, aksi takdirde agnostik iseniz bu bağlantıyı kullanmanızı öneririz. Tek ihtiyacınız olan dört tel!
Vcc, Gnd, SCL ve SDA pinlerinden sadece dört bağlantı gereklidir ve bunlar I2C kablosu yardımıyla bağlanır.
Bu bağlantılar yukarıdaki resimlerde gösterilmiştir.
Adım 3: Sıcaklığı Ölçmek için Kod:
Şimdi Arduino koduyla başlayalım.
Arduino ile sensör modülünü kullanırken Wire.h kütüphanesini dahil ediyoruz. "Wire" kütüphanesi, sensör ve Arduino kartı arasındaki i2c iletişimini kolaylaştıran fonksiyonları içerir.
Arduino kodunun tamamı, kullanıcının rahatlığı için aşağıda verilmiştir:
#Dahil etmek
// TMP112 I2C adresi 0x48(72)
#define Addr 0x48
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 İletimini Başlat
Wire.beginTransmission(Adr);
// Yapılandırma kaydını seç
Wire.write(0x01);
// Sürekli dönüştürme, karşılaştırma modu, 12 bit çözünürlük
Wire.write(0x60);
Wire.write(0xA0);
// I2C İletimini Durdur
Wire.endTransmission();
gecikme(300);
}
boşluk döngüsü()
{
imzasız veri[2];
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// Veri kaydını seç
Wire.write(0x00);
// I2C İletimini Durdur
Wire.endTransmission();
gecikme(300);
// 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();
}
// Veriyi 12 bit'e çevir
int temp = ((veri[0] * 256) + veri[1]) / 16;
if(sıcaklık > 2048)
{
sıcaklık -= 4096;
}
kayan nokta cTemp = sıcaklık * 0.0625;
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 Farhenheit cinsinden: ");
Seri.print(fTemp);
Serial.println("F");
gecikme(500);
}
Tel kitaplığında Wire.write() ve Wire.read() komutları yazmak ve sensör çıkışını okumak için kullanılır.
Serial.print() ve Serial.println(), sensörün çıktısını Arduino IDE'nin seri monitöründe görüntülemek için kullanılır.
Sensörün çıkışı yukarıdaki resimde gösterilmektedir.
Adım 4: Uygulamalar:
TMP112 düşük güç, yüksek doğruluklu dijital sıcaklık sensörünü içeren çeşitli uygulamalar arasında Güç Kaynağı Sıcaklık İzleme, Bilgisayar Çevresel Termal Koruma, Pil Yönetimi ve ofis makineleri bulunur.