Arduino ile MLX90614 Kızılötesi Sıcaklık Sensörü Kullanımı

0 2.085

Cisme temas etmeden, cismin sıcaklığını ölçen MLX90614 kızılötesi sıcaklık sensöründen bahsedeceğim. Dahili bir 17-bit ADC ve güçlü bir DSP, MLX90614’ün ölçümlerinde yüksek doğruluk ve çözünürlük verir. Vücut sıcaklığı ölçmek için uygundur. Ayrıca hareket algılamada da kullanabilirsiniz. Özellikle çok sıcak nesnelerin sıcaklığını  güvenli şekilde uzaktan ölçmek için gayet ideal bir sensördür.  Sensör hem nesnenin hem de ortamın sıcaklığını ölçer.

MLX90614 Özellikler:

  • Ortam sıcaklığı ölçme aralığı -40 ile + 125 ° C
  • Nesne sıcaklığı ölçme aralığı -70 ile + 382.2 ° C
  • Sürekli okuma için özelleştirilebilir PWM çıkışı
  • Geniş sıcaklık aralığında 0.5 ° C yüksek doğruluk
  • Enerji tasarrufu modu
  • 0.02 ° C ölçüm çözünürlüğü
  • SMBus uyumlu dijital arabirim

MLX90614 Pin Çıkışları:

Arduino ile MLX90614 Bağlantısı:

MLX90614 I2C üzerinden veri iletişimi sağlar. VDD >> 3.3V , VSS >> GND , SCL >> A5 , SDA >> A4 pinlerine takınız. Ayrıca I2C pinlerine 4.7kΩ’luk direnç ekleyerek 3.3v a takınız.

Devre Şeması: 

Şekildeki gibi bağlantıları yapabilirsiniz.

Arduino Kütüphanesi: SparkFun MLX90614

Örnek Arduino Kodu:

/*
MLX90614 ------------- Arduino
 VDD ------------------ 3.3V
 VSS ------------------ GND
 SDA ------------------ SDA (A4)
 SCL ------------------ SCL (A5)
*/
#include <Wire.h> 
#include <SparkFunMLX90614.h> 
 
IRTherm therm; 
const byte LED_PIN = 8; 
 
void setup() 
{
 Serial.begin(9600); 
 therm.begin(); 
 therm.setUnit(TEMP_F); 
 pinMode(LED_PIN, OUTPUT); 
 setLED(LOW); 
}
 
void loop() 
{
 setLED(HIGH);
 
 if (therm.read()) 
 {
 Serial.print("Object: " + String(therm.object(), 2));
 Serial.write('°'); 
 Serial.println("F");
 Serial.print("Ambient: " + String(therm.ambient(), 2));
 Serial.write('°'); 
 Serial.println("F");
 Serial.println();
 }
 setLED(LOW);
 delay(500);
}
 
void setLED(bool on)
{
 if (on)
 digitalWrite(LED_PIN, LOW);
 else
 digitalWrite(LED_PIN, HIGH);
}

Kütüphane Fonksiyonları:

  •  IRTherm : Sensör nesnesi oluşturulur. Yukarıdaki kodda therm adında nesne tanımlandı. Aşağıdaki fonksiyonları da bu nesne üzerinden anlatacağım.
  • therm.setUnit(TEMP_F); Bu fonksiyonda sıcaklık ölçümünün hangi biriminde yapılacağı belirlenir.

TEMP_F >> Fahrenheit

TEMP_C >> Celsius

TEMP_K >> Kelvin

  • therm.read(): Sensörden veri alan fonksiyondur. Eğer bu fonksiyonu if içinde yazmanızda fayda var. Çünkü sensörden gelen veri varsa ekrana yazdırır yok ise ekrana yazdırmaz. Yani true false mantığında çalışarak, ekrana doğru verilerin yazılması sağlanır.
  • therm.object(): Nesnenin sıcaklığını okuyan fonksiyondur.
  • therm.ambient(): Ortamın sıcaklığını okuyan fonksiyondur.

Kaynak: MLX90614 IR Thermometer

Bunları da beğenebilirsin

Cevap bırakın

E-posta hesabınız yayımlanmayacak.