ROBOTKODLA
ROBOTKODLA Genç Mucit

Eğlen, Kodla, Geleceği Tasarla

Model: MLX90640 Sensör Modülü (Breakout) İleri Seviye Üretici: Melexis

MLX90640 32x24 Termal Kamera Kızılötesi Sensör Dizisi

768 bağımsız kızılötesi termopil pikseliyle gerçek zamanlı termal harita ve ısı görüntüsü oluşturan minyatür termal kamera sensörüdür.

Önemli Güvenlik ve Teknik Sınırlama Bilgisi

768 pikselin karmaşık matematiksel kalibrasyon matrisini işlemek yüksek RAM gerektirir. Arduino Uno'nun RAM'i yetersizdir; ESP32, Teensy 4.0 veya Raspberry Pi kullanılmalıdır.

Teknik Özellikler ve Elektriksel Parametreler

Çalışma Voltajı 3.00V - 3.60V Lojik Seviye Giriş/Çıkış
Akım Tüketimi 23 mA Tipik çalışma modu
Haberleşme Arayüzü I2C (0x33, Hızlı Mod 400kHz - 1MHz) Protokol türü
Ölçüm Aralığı -40°C ile +300°C Etkili çalışma sınırı
Hassasiyet / Doğruluk±1.5°CÖlçüm sapma payı
Tepki SüresiKullanıcı ayarlı kare hızı: 0.5 Hz - 64 HzÖrnekleme hızı
Ölçüm Türü768 Piksellik 2D Termal GörüntülemeFiziksel büyüklük
Pin Sayısı4 PinModül header pinleri

Pin Bağlantıları ve Görevleri (Pinout)

Pin #Pin AdıSinyal TürüGörev & Açıklama
1 VIN Güç 3.3V DC regüle güç girişi
2 GND Toprak Toprak 0V
3 SCL I2C Saat Yüksek hızlı I2C Saat
4 SDA I2C Veri Yüksek hızlı I2C Veri

Geliştirme Kartı Uyumluluk Durumu

Arduino Uno / Nano ✓ Uyumlu
5V Lojik

Doğrudan bağlantı ve yerleşik 5V desteği.

ESP32 (NodeMCU) ✓ Uyumlu
3.3V Lojik

3.3V ile tam uyumlu çalışır.

Raspberry Pi Pico ✓ Uyumlu
3.3V Lojik

MicroPython veya C/C++ SDK ile desteklenir.

BBC Micro:bit ✓ Uyumlu
3.3V Lojik

MakeCode blokları veya MicroPython ile uyumlu.

STM32 (BluePill) ✓ Uyumlu
3.3V (5V Tolerant)

5V tolerant GPIO pinleri doğrudan bağlanabilir.

Örnek Kaynak Kod Kütüphanesi

ESP32 Arduino C++ ✓ Test Edildi

ESP32 ile MLX90640 768 Piksel Termal Veri Okuma

Gerekli Kütüphaneler: Adafruit MLX90640 Library
#include <Wire.h>
#include <Adafruit_MLX90640.h>

Adafruit_MLX90640 mlx;
float frame[32 * 24]; // 768 piksel dizisi

void setup() {
  Serial.begin(115200);
  Wire.begin();
  Wire.setClock(400000); // 400 kHz Hızlı I2C

  if (!mlx.begin(MLX90640_I2CADDR_DEFAULT, &Wire)) {
    Serial.println("MLX90640 termal kamera bulunamadı!");
    while (1);
  }
  mlx.setMode(MLX90640_CHESS);
  mlx.setResolution(MLX90640_ADC_18BIT);
  mlx.setRefreshRate(MLX90640_2_HZ);
}

void loop() {
  if (mlx.getFrame(frame) != 0) {
    Serial.println("Kare okuma hatası!");
    return;
  }
  
  float maxTemp = -100;
  float minTemp = 500;
  for (int i = 0; i < 768; i++) {
    if (frame[i] > maxTemp) maxTemp = frame[i];
    if (frame[i] < minTemp) minTemp = frame[i];
  }

  Serial.print("En Sıcak Nokta: ");
  Serial.print(maxTemp);
  Serial.print(" °C | En Soğuk Nokta: ");
  Serial.print(minTemp);
  Serial.println(" °C");
  delay(500);
}
Seri Monitör Çıktısı (Simülasyon):
Merkez Piksel Sıcaklığı: 32.8 °C | Maksimum Isı: 41.2 °C

Çalışma Mantığı ve Fiziksel İlkeler

MLX90640 Termal Kamera Nasıl Çalışır?

Geleneksel pirometreler (MLX90614) tek bir noktanın ortalama sıcaklığını verirken, MLX90640 32 sütun ve 24 satırdan oluşan 768 adet minyatür IR termopil dedektörünü tek bir entegrede sunar.

Bu sayede karanlıkta insan veya hayvan tespiti, elektrik panolarında aşırı ısınan sigortaların bulunması ve bina ısı yalıtım kaçaklarının renkli ısı haritası olarak ekrana yansıtılması mümkün hale gelir.

Artıları ve Sınırlamaları

Güçlü Yönleri (Avantajlar)
  • Gerçek 2D termal görüntüleme (FLIR kameralarına ekonomik alternatif)
  • 64 Hz'e kadar yenileme hızı
  • 55° veya 110° geniş görüş açısı seçenekleri
  • Sınırlamaları (Dezavantajlar)
  • Yüksek bellek ve işlemci gücü gerektirir (8-bit Arduino Uno ile çalışmaz)
  • 400 kHz - 1 MHz hızlı I2C yolu gerektirir
  • Sık Karşılaşılan Sorunlar ve Çözümleri

  • ESP32 kullanırken I2C frekansını 400000 veya 1000000 Hz'e çıkarmak akıcı görüntü için şarttır.