ROBOTKODLA
ROBOTKODLA Genç Mucit

Eğlen, Kodla, Geleceği Tasarla

Model: ML8511 Sensör Modülü (Breakout) Başlangıç Seviye Üretici: Lapis Semiconductor

ML8511 Analog Ultraviyole (UV) Güneş Işığı Sensörü

Güneşin yaydığı zararlı UV-A ve UV-B morötesi ışınları ölçerek Dünya Sağlık Örgütü (WHO) UV İndeks değerini hesaplayan analog sensördür.

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

Güneş yanığına ve cilt hasarına yol açan UV-A ve UV-B ışınlarını ölçer. Sensör camı doğrudan güneşe bakmalıdır, normal cam pencereler UV ışınlarını engellediği için pencere arkasında test edilmemelidir.

Teknik Özellikler ve Elektriksel Parametreler

Çalışma Voltajı 3.00V - 3.60V Lojik Seviye Giriş/Çıkış
Akım Tüketimi 300 µA (aktif), 0.1 µA (standby) Tipik çalışma modu
Haberleşme Arayüzü Analog Voltaj (1.0V - 3.0V) Protokol türü
Ölçüm Aralığı 0 ile 15 mW/cm² (UV İndeksi: 0 - 15) Etkili çalışma sınırı
Hassasiyet / DoğrulukDoğrusal voltaj çıkışıÖlçüm sapma payı
Tepki SüresiAnlıkÖrnekleme hızı
Ölçüm TürüUV-A (320-400nm) ve UV-B (280-320nm) YoğunluğuFiziksel büyüklük
Pin Sayısı5 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 besleme
2 3.3V Referans Arduino 3.3V referans pini
3 GND Toprak Toprak 0V
4 OUT Analog Çıkış UV şiddetiyle orantılı analog voltaj
5 EN Aktif Pini Çalışma pini (3.3V'a bağlanmalıdır)

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

Arduino Uno Arduino C++ ✓ Test Edildi

ML8511 ile UV İndeksi Ölçümü

Gerekli Kütüphaneler: Standart
const int uvPin = A0;
const int refPin = A1; // Arduino 3.3V hattı analog referans için okunur

void setup() {
  Serial.begin(9600);
}

void loop() {
  int uvRaw = analogRead(uvPin);
  int refRaw = analogRead(refPin);

  // Hassas voltaj hesabı
  float outputVoltage = 3.3 / refRaw * uvRaw;

  // ML8511 transfer fonksiyonu: 1.0V = 0 mW/cm², 2.2V = 10 mW/cm²
  float uvIntensity = mapfloat(outputVoltage, 0.99, 2.8, 0.0, 15.0);
  if (uvIntensity < 0) uvIntensity = 0;

  Serial.print("UV Voltajı: ");
  Serial.print(outputVoltage);
  Serial.print(" V | Yoğunluk: ");
  Serial.print(uvIntensity);
  Serial.print(" mW/cm² | Tahmini UV İndeksi: ");
  Serial.println(round(uvIntensity));

  delay(1000);
}

float mapfloat(float x, float in_min, float in_max, float out_min, float out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
Seri Monitör Çıktısı (Simülasyon):
UV Yoğunluğu: 4.2 mW/cm² -> UV İNDEKSİ: 5 (Orta Risk)

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

UV İndeksi ve ML8511

Ultraviyole (UV) ışınları insan gözüyle görülemez ancak cilt sağlığı açısından kritik öneme sahiptir.

  • 0 - 2 (Düşük): Güneş gözlüğü yeterli.
  • 3 - 5 (Orta): Güneş kremi ve şapka gerekli.
  • 6 - 7 (Yüksek): Gölgede kalınmalı.
  • 8 - 10 (Çok Yüksek): Dışarı çıkılmamalı.
  • 11+ (Aşırı): Dakikalar içinde cilt yanığı riski.
  • ML8511, silikon fotodiyot ve dahili işlemsel kuvvetlendirici devresiyle UV ışık yoğunluğu arttıkça 1.0V'tan (0 mW/cm²) 2.2V'a (10 mW/cm²) doğrusal olarak yükselen analog voltaj üretir.

    Artıları ve Sınırlamaları

    Güçlü Yönleri (Avantajlar)
  • Hem UV-A hem UV-B dalga boylarına duyarlılık
  • Doğrusal analog çıkış ile çok kolay kodlama
  • 300 µA ultra düşük akım tüketimi
  • Sınırlamaları (Dezavantajlar)
  • 3.6V üzeri voltaj verilmemelidir (3.3V pininden beslenmeli)
  • Sık Karşılaşılan Sorunlar ve Çözümleri

  • EN (Enable) pini HIGH yapılmazsa sensör uyku modunda kalır ve 0V üretir.