DS18B20 Nedir? Nasıl Çalışır? Arduino ile Su Geçirmez Sıcaklık Sensörü Kullanımı
DS18B20, sıcaklık verilerini dijital olarak üreten ve Dallas Semiconductor (Maxim Integrated) tarafından geliştirilen yüksek hassasiyetli bir sıcaklık sensörüdür. Piyasada hem standart TO-92 transistör kılıfında hem de dış etkenlerden korunması amacıyla paslanmaz çelik tüp içerisine yerleştirilmiş su geçirmez (waterproof) kablolu versiyonuyla bulunur. Bu su geçirmez yapısı sayesinde akvaryum sıcaklık takiplerinde, sıvı depolarında, toprak altı ölçümlerinde ve kalorifer tesisatlarında çok sık tercih edilir.
Arduino projelerinde analog sensörler (LM35 veya termistörler gibi) uzun kablo mesafelerinde voltaj düşümünden etkilenerek hatalı sonuçlar verebilir. DS18B20 ise tamamen dijital olarak haberleştiği için kablo uzunluğundan etkilenmez ve 9-bit ile 12-bit arasında ayarlanabilir çözünürlüğüyle çok kararlı ölçümler sunar. Bu yazıda DS18B20 sensörünün ne olduğunu, çalışma mantığını, tek hat (One-Wire) teknolojisini, renkli kablo yapısını ve Arduino ile sıcaklık ölçüm uygulamasını adım adım inceleyeceğiz.
DS18B20 Sensörü Nedir ve One-Wire Protokolü Nasıl Çalışır?
DS18B20, -55°C ile +125°C arasındaki sıcaklıkları mükemmel bir kararlılıkla ölçebilir. Sensörün en ayırt edici özelliği, Dallas firmasına ait olan One-Wire (Tek Hat) haberleşme protokolünü kullanmasıdır. Bu protokol sayesinde Arduino'nun sadece tek bir dijital pini üzerinden sensörle veri alışverişi yapılabilir.
Daha da önemlisi, her bir DS18B20 sensörünün üretim bandında içerisine kazınmış benzersiz bir 64-bitlik seri numarası (ID adresi) bulunur. Bu benzersiz adresler sayesinde, Arduino'nun aynı dijital pinine (aynı data hattına) onlarca DS18B20 sensörünü paralel olarak bağlayabilirsiniz. Arduino, tek bir kablo üzerinden tüm sensörlere adresleriyle seslenerek her odanın veya her su deposunun sıcaklığını tek tek, pinleri işgal etmeden öğrenebilir.
Proje Uygulama Videosu
Su geçirmez DS18B20 sensörünün Arduino ile devre kurulum adımlarını, pull-up direncinin önemini ve seri monitördeki anlık sıcaklık değişimlerini aşağıdaki uygulama videomuzdan detaylıca izleyebilirsiniz:
Kablo Renkleri ve Donanımsal Pull-Up Direnci
Piyasada bulunan su geçirmez DS18B20 sensörleri genellikle 3 damarlı korumalı bir kabloyla gelir. Bu kabloların renk standards ve görevleri şu şekildedir:
| Kablo Rengi | Görevi | Arduino Bağlantısı |
|---|---|---|
| Kırmızı (Red) | VCC Besleme Hattı (3.0V - 5.5V) | Arduino 5V veya 3.3V Pinine |
| Siyah (Black) | GND Topraklama Hattı | Arduino GND Pinine |
| Sarı / Beyaz (Yellow / White) | DATA Sinyal Hattı (One-Wire) | Herhangi bir Dijital Pine (Örn: D2) |
Arduino ile DS18B20 Kullanımı İçin Gerekli Malzemeler
| Gerekli Malzeme | Ürün Linki |
|---|---|
| Arduino Uno | Arduino Uno R3 Klon + USB Kablo |
| DS18B20 Su Geçirmez Sensör | DS18B20 Su Geçirmez Sıcaklık Sensörü |
| Breadboard | Breadboard |
| Jumper Kablo | Jumper Kablo |
Arduino DS18B20 Örnek Kod Yapısı
Bu kodu çalıştırmak için Arduino IDE kütüphane yöneticisine girerek iki adet kütüphaneyi yüklemeniz gerekir: OneWire ve DallasTemperature. Aşağıdaki kod, tek pin üzerinden bağlanan sensörü otomatik olarak algılar ve ölçülen Celsius sıcaklık değerini her saniye güncelleyerek ekrana yansıtır.
#include
#include
// Sensörün Data bacağının bağlı olduğu dijital pin
#define ONE_WIRE_BUS 2
// OneWire protokol nesnesi oluşturuldu
OneWire oneWire(ONE_WIRE_BUS);
// DallasTemperature kütüphanesine referans verildi
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600); // Seri monitör hızı
Serial.println("DS18B20 Sıcaklık Sensör Testi");
sensors.begin(); // Sensör kütüphanesi başlatıldı
}
void loop() {
// Hatta bağlı olan tüm sensörlere sıcaklık okuma komutu gönder
sensors.requestTemperatures();
// 0 indeksli (yani hatta bulduğu ilk) sensörün sıcaklık verisini al
float tempC = sensors.getTempCByIndex(0);
// Okuma hatasını kontrol et (Sensör söküldüğünde -127.00 değeri döner)
if(tempC == DEVICE_DISCONNECTED_C) {
Serial.println("HATA: Sensör bağlantısı koptu veya bulunamadı!");
} else {
Serial.print("Ortam / Sıvı Sıcaklığı: ");
Serial.print(tempC);
Serial.println(" °C");
}
delay(1000); // 1 saniye bekle
}
Çoklu DS18B20 Okuma ve Akvaryum Otomasyonu Kodları
Aynı pin üzerine paralel bağlı 3 veya daha fazla DS18B20 sensörünün benzersiz ROM adreslerini tek tek tespit eden adres bulucu (scanner) kodları, röle modülü entegreli kuluçka ve akvaryum ısıtıcı otomasyon yazılımları ile ESP32 tabanlı uzaktan takip şemalarının tamamına GitHub sayfamızdan erişebilirsiniz.
DS18B20 Kullanırken Sık Karşılaşılan Hatalar
- Seri Monitörde "-127" Değeri Görmek: Dallas kütüphanesinde `-127.00` değeri, mikrodenetleyicinin sensör donanımına fiziksel olarak ulaşamadığını simgeler. Bunun iki sebebi vardır: Ya data bacağındaki 4.7K Ohm'luk pull-up direnci unutulmuştur ya da kablo bağlantılarında temassızlık/ters bağlantı söz konusudur.
- Sensörün Aşırı Isınması: Kırmızı (VCC) ve Siyah (GND) kablolarının yönü karıştırılıp ters bağlandığında sensör içindeki dijital entegre saniyeler içinde aşırı derecede ısınır. Ters bağlantı fark edildiği an enerji kesilmelidir, aksi halde sensör kalıcı olarak bozulur.
- Direnç Değerini Yanlış Seçmek: 4.7K Ohm yerine çok daha yüksek (örneğin 100K) veya çok daha düşük dirençler kullanmak One-Wire hattındaki lojik seviyeleri bozarak veri paketlerinin düşmesine sebep olabilir.
Robomer’de Bulabileceğiniz Diğer Sıcaklık Sensör Çeşitleri
DS18B20 Su Geçirmez Sıcaklık Sensörü
Paslanmaz çelik prob kılıfı, 1 metreye yakın esnek kablosu ve One-Wire dijital arabirim altyapısıyla sıvılarda kullanıma uygun standart model.
Ürünü İncele
DS18B20 Sıcaklık Sensörü Kartı Modülü
Üzerinde dahili 4.7K pull-up direnci barındıran, 3 pinli yapısıyla doğrudan jumper kablo kullanarak breadboard üzerinde hızlı devre kurmaya izin veren kompakt kart modeli.
Ürünü İnceleSonuç
DS18B20 Dijital Sıcaklık Sensörü, analog gürültülerden arındırılmış kararlı yapısı ve tek hat üzerinden çoklu cihaz kontrolüne izin veren One-Wire protokolüyle endüstriyel takip projelerinin vazgeçilmez bir parçasıdır. Gelişmiş veri protokollerini kütüphaneler yardımıyla kod dünyasına dahil edip yorumlamak, gömülü yazılım projelerindeki donanım hakimiyetinizi artırır. Projenize güçlü ve su geçirmez bir ölçüm yeteneği kazandıracak tüm sensör, direnç, ekran ve koruma ekipmanlarına Robomer kalitesiyle hemen sahip olabilir, devrelerinizi kurmaya başlayabilirsiniz.
Otomasyon ve Akıllı Ev Projelerinizi Kurun
Geliştirme kartları, LCD / OLED ekranlar, röle modülleri ve projenizin ihtiyacı olan tüm kablolama elemanları Robomer güvencesiyle kapınızda.
Robomer Sensör Kategorisini İncele