Lezzetli Robot Tarifleri Sosyal'e Hoş Geldiniz.. Devamı..

Giriş Yap Üye Ol


Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
MLX90614 - KIZILÖTESİ TEMASSIZ SICAKLIK SENSÖRÜ
#1
Lightbulb 
MERHABA ARKADAŞLAR

Bu konuda sizlere MLX90614 adlı kızılötesi sıcaklık sensörünü tanıtacağım. Fazla uzatmadan konuya girelim.

Başlayalım...

MLX90614 NEDİR?
Melexis firması tarafından üretilen MLX90614, sıcaklığına göre cisimlerin yüzeyinden yansıyan kızılötesi radyasyona (Infrared Radiation, IR)  bağlı olarak temassız bir şekilde sıcaklık ölçümü yapabilen dijital bir sıcaklık sensörüdür. Belli bir mesafeden sensör doğrultusunda bulunan cisimlerin sıcaklıklarını ve aynı zamanda ortam sıcaklığını da ölçebilmektedir.

MLX90614 ÖZELLİKLERİ
Bizim bunlarla bir işimiz olmayacaktır ancak sensörün içerisinde tam olarak ne olduğunu öğrenmenin bir sakıncası olmayacaktır.
  • SMBus denilen ve I2C ile uyumlu bir iletişim protokolü ile haberleşmektedir.
  • Bu sensör -40°C  / +125°C ortam sıcaklıklarını ve -70°C / +380°C cisim sıcaklıklarını 0.5°C  hassasiyet ile ölçebilmektedir. 
  • Ortam sıcaklığını içerisinde bulunan bir PTC (pozitive thermo couple) ile ölçmektedir.
  • Teknik olarak MLX90614 hem ortam hem de cisim sıcaklıklarını 0.01°C hassasiyette ölçmektedir ancak ortam ve cisim sıcaklıklarının bir birine etkisinden dolayı gerçek ortam ve cisim sıcaklığının MLX90614 datasheet'inde yazan formüller ile yeniden hesaplanması gerekmektedir. Bu da bize optimum ölçüm sıcaklığı hassasiyeti olan 0.5°C olarak dönmektedir.
  • Sensör içerisinde iki adet çip bulunmaktadır. Bunlardan bir tanesi IR thermopile detektörü diğeri ise IR ölçümünü işleyen bir denetleyicidir.
  • Sensör 17-Bit çözünürlüğünde bir ADC ile IR detektör ile elde edilen analog sıcaklık bilgisini elde etmektedir ve bu elde edilen bilgiyi DSP (digital signal processor , dijital sinyal işleyici) ile doğrusallaştırmaktadır.
  • Sensörün önemli parametrelerinden birisi de görüşü açısıdır. Görüş açısı ortalama 70° olarak kabul edebilirsiniz. Bu dar bir açı olmasından dolayı sensörü cisimlerin sıcaklığını ölçerken yaklaşık 5-10cm uzaktan kullanmanızı tecrübelerime dayanarak söyleyebilirm. Sensörü cisim yüzeyine değdirerek ölçüm alamazsınız sebebi ise ortam ışığını sensör ve cisim arasında engellediğinizdendir. Ancak ortam sıcaklığını ölçerken sorun yaratmamaktadır.
Aşağıda TO-39 kılıf yapısında olan MLX90614 sensörüne ait görsel ve bacak isimleri görünmektedir.

Br93mG.png

MLX90614'ün bir kaç adet modeli bulunmaktadır. Bu modeller arasındaki en büyük fark çalışma voltajlarıdır. Aşağıdaki tablodan bunu görebilirsiniz.

p0Ylom.png

Sensörün ölçüm hassasiyeti ortam ve cisim sıcaklığına göre değişmektedir, aşağıdaki tabloda bu görülmektedir. Tablodan Ta sıcaklığı ortam sıcaklığını, To cisim sıcaklığını ifade etmektedir. Buna göre örneğin 0°C/50°C ortam sıcaklığı aralığında ve 0°C/60°C cisim sıcaklığı aralığında ölçüm hassasiyeti 0.5°C olduğu açık mavi alanda görülmektedir.

LyomZZ.png

ARDUINO İLE MLX90614 KULLANIMI
Sensörü yukarıdaki halinde alıp Arduino ile kullanabilmeniz için dikkat etmeniz gereken bir şey var; sensörün hangi modelini aldığınıza bağlı olarak yukarıda bahsettiğim çalışma voltajına dikkat etmelisiniz. 

Bununla uğraşmak yerine piyasada hazır olarak bu dertten bizi kurtaran GY-906 adlı modüldür. Üzerinde MLX90614 3,6V ile çalışan modellerinden birisi bulunmaktadır. Ancak tam olarak hangi modelin olduğu sensör üzerinde yazmadığından kesin olarak hangi 3,6V modeli bulunduğu belli değildir. Bazılarında yazabilmektedir. 3.6V versiyonu olmasının avantajı hem 3.3V ile çalışan mikrodenetleyiciler ile hemde 5V ile çalışan mikrodenetleyiciler için uyumlu olmasıdır çünkü GY-906 modül üzerinde 3.3V voltaj regülatörü bulunmaktadır. Bu regülatör 5V girişi 3,3V düşürmektedir ancak 3,3V ile beslendiğinde bu voltajda değişiklik uygulamadan sensöre göndermesidir. Bu tip regülatörlere "Low-Drop Out Voltage Regulators" denilmektedir.

Aşağıda GY-906 adlı, MLX90614 sensör modülü görülmektedir.
qb2VLd.jpg

ARDUINO ile [b][u]MLX90614 UYGULAMASI[/u][/b]
Bu sensörün kullanımı teknik olarak çok zahmetlidir. Adafruit tarafından geliştirilen MLX90614 kütüphanesi sayesinde ortam ve cisim sıcaklıklarını okumak inanılmaz derecede kolay olmaktadır. Konu sonundaki Ekte kütüphaneyi indirebileceğiniz bir link bulunmaktadır. Kütüphane olmadan aşağıdaki kodlarınız çalışmayacaktır.

Aşağıda fritzing devre şeması görülmektedir.
qbm2OQ.png
fritzingde GY-906 modülüne ait komponent olmadığı için görsel olarak kendim ekledim. sonra bende bu komponent yok nerden bulabilirm gibi sorular sormanızı istemiyorum, bulur ya da kendiniz yaparsanız yorum olarak paylaşmanızı gönülden isterim. Ben kendim fritzing de nasıl komponent oluşturulur bilmediğimden yapamadım bu şekilde yapmak zorunda kaldım.

Bu devre ve aşağıdaki kod sayesinde MLX90614 ile ortam ve cisim sıcaklıklarını Serial monitörden gözlemleyebilirsiniz.

Aşağıdaki kod MLX90614 kütüphanesinin örneklerinde bulunan ve yanlarına neyin ne işe yaradığını açıklayarak düzenlemiş olduğum "mlxtest" örnek kodlarıdır. Nasıl kullanıldığına ait en temel koddur. Sizler serial monitöre yazdırmak yerine farklı projeler için farklı amaçlar doğrultusunda elde ettiğiniz sıcaklık bilgilerini istediğiniz şekilde kullanabilirsiniz.

Kod:
#include <Wire.h>  // I2C için Wire başlık dosyasını dahil ettik
#include <Adafruit_MLX90614.h> // MLX90614 için kütüpphane dosyası dahil edildi

// Adafruit_MLX90614 nesnesi için mlx adında
// yeni bir nesne adı tanımlandı siz isterseniz
// dilediğiniz adı verebilirsiniz.
Adafruit_MLX90614 mlx = Adafruit_MLX90614();

// Santigrat cinsinden Ortam ve Cisim sıcaklığı
// için değişken tanımlamaları
float ortam_C_sicakligi;
float cisim_C_sicakligi;

// Fahrenheit cinsinden Ortam ve Cisim sıcaklığı
// için değişken tanımlamaları
float ortam_F_sicakligi;
float cisim_F_sicakligi;

void setup()
{
 Serial.begin(9600); // serial başlatılıyor

 Serial.println("MLX90614");  

 mlx.begin();  // MLX90614 sensörü başlatılıyor
}

void loop()
{
 ortam_C_sicakligi = mlx.readAmbientTempC(); // Santigrat cinsinden ortam sıcaklığı bilgisi okunur
 cisim_C_sicakligi = mlx.readObjectTempC(); // Santigrat cinsinden cisim sıcaklığı bilgisi okunur
 ortam_F_sicakligi = mlx.readAmbientTempF(); // Fahrenheit cinsinden ortam sıcaklığı bilgisi okunur
 cisim_F_sicakligi = mlx.readObjectTempF(); // Fahrenheit cinsinden cisim sıcaklığı bilgisi okunur
 
 Serial.print("Ortam Sicakligi = ");
 Serial.print(ortam_C_sicakligi);
 Serial.print("*C // ");
 Serial.print(ortam_F_sicakligi);
 Serial.println("*F");
 Serial.print("Cisim Sicakligi = ");
 Serial.print(cisim_C_sicakligi);
 Serial.print("*C // ");
 Serial.print(cisim_F_sicakligi);
 Serial.println("*F");
 Serial.println("");
 
  // ekranda hızlı hızlı bilgiler kaymadan okuyabilmek
  // için yarım saniye bekleme konuldu konulmasada olur
 delay(500);
}

Bendeki ekran çıktısı aşağıdaki gibidir.
dPWq1V.png

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
EK: Adafruit - MLX90614 - Library
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Böylece bir konunun daha sonuna gelmiş bulunmaktayım. Yararlı olması dileklerimle. Eksiklerim ve hatalarım olduğunu görürseniz lütfen yorum atmayı unutmayın böylece eksik taraflarını ekler hatalarım varsa düzeltebilirim.
Ara
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Lightbulb DS18B20 SICAKLIK SENSÖRÜ z1rqdym 5 2,213 09-12-2017, Saat: 16:38
Son Yorum: Ozan Bayramoglu
  MPU6050 gyro sensörü Kerem 1 52 08-12-2017, Saat: 23:18
Son Yorum: Kerem
Lightbulb Hareket Sensörü meryun 0 34 01-12-2017, Saat: 14:46
Son Yorum: meryun
Lightbulb BMP085/BMP180 - BAROMETRİK BASINÇ SENSÖRÜ z1rqdym 8 972 29-11-2017, Saat: 15:22
Son Yorum: SenaKuruca
  Arduino Icin Sicaklik Sensor Onerisi Ozan Bayramoglu 0 51 05-11-2017, Saat: 03:10
Son Yorum: Ozan Bayramoglu

Hızlı Menü:


Konuyu Okuyanlar:
1 Ziyaretçi