PIC16F877 ile LM35 Negatif Sıcaklık Ölçümü

PIC16F877 ile LM35 Negatif Sıcaklık Ölçümü

LM35 negatif sıcaklık sensörünün temel pozitif okuma uygulamalarını PIC16F877 ile LM35 Sıcaklık Sensörü Kullanımı rehberimizde tüm register seviyesi detaylarıyla ele almıştık. Ancak bu standart bağlantı şeması, 0^\circ\text{C} altındaki negatif sıcaklıkların ölçülmesine izin vermez.

Bu gelişmiş mühendislik kılavuzunda, LM35 sensörünün -55 ile +150 derece arasındaki tam ölçüm skalasını kullanabilmek amacıyla, iki silikon diyot ve bir dirençle kurulan diferansiyel (farksal) gerilim kaydırma şemasını, donanımsal ADC diferansiyel okuma matematiğini ve hatasız çalışan MPLAB XC8 C program kodunu inceleyeceğiz.

Diyot Tabanlı Sanal Toprak (Virtual Ground) Şeması

LM35 sensörü, standart bağlantısında 0^\circ\text{C} sıcaklıkta tam olarak 0\text{ V} çıkış üretir. Negatif sıcaklıklarda ise çıkış pini sıfırın altına (negatif voltaj seviyesine) inmeye çalışır. Ancak mikrodenetleyiciler tek kutuplu beslemeyle (0-5V) çalıştığından, analog giriş pinlerine uygulanan negatif gerilimleri okuyamazlar ve hatta bu durum G/Ç pinlerine zarar verebilir.

Bu problemi aşmak için en pratik ve maliyetsiz donanımsal çözüm, LM35’in toprak (GND) hattını sistem toprağından iki adet seri bağlı silikon Diyot Nedir ve Nasıl Çalışır? elemanı (örneğin 1N4148) yardımıyla yukarı kaldırmaktır:

Diyot Tabanlı LM35 Negatif Sıcaklık Devre Şeması
LM35 sanal toprak gerilim kaydırma bağlantısı

Mühendislik Mantığı: İki adet seri bağlı 1N4148 silikon diyotun üzerine düşen toplam ileri yön gerilimi (forward voltage drop) yaklaşık olarak 2 \times 0.6\text{ V} \approx 1.2\text{ V} civarındadır. Çıkış pini ile sistem toprağı arasına bağlanan 18\text{ k}\Omega‘luk bir Direnç Nedir ve Nasıl Kullanılır? elemanı, sensörün negatif akım çekebilmesini sağlar. Böylece:

  • Sanal toprak (sensörün GND bacağı) sistem toprağına göre sürekli +1.2\text{ V} seviyesinde asılı kalır.
  • 0^\circ\text{C} sıcaklıkta, sensörün analog çıkış pini (VOUT) sistem toprağına göre +1.2\text{ V} gösterir.
  • -10.0^\circ\text{C} sıcaklıkta, çıkış gerilimi 1.2\text{ V} - (10 \times 10\text{ mV}) = 1.1\text{ V} seviyesine iner.
  • +25.0^\circ\text{C} sıcaklıkta, çıkış gerilimi 1.2\text{ V} + (25 \times 10\text{ mV}) = 1.45\text{ V} seviyesine çıkar.

Bu sayede tüm sıcaklık eğrisi tamamen pozitif gerilim bölgesine (1.2\text{ V} merkezli olmak üzere) ötelenmiş olur ve mikrodenetleyicinin ADC birimi tarafından güvenle okunabilir.

Farksal (Diferansiyel) ADC Ölçüm Matematiği

Diyotların ileri yön iletim gerilimi (V_D \approx 0.6\text{ V}) sıcaklığa ve diyot üzerinden geçen akıma bağlı olarak hafifçe dalgalanabilir. Bu gürültüyü yok etmek için tek bir analog okuma yapmak yetersizdir. Bunun yerine iki ayrı analog kanaldan okuma yapıp farksal gerilimi hesaplamalıyız:

  1. Kanal 0 (AN0 – RA0): Sensörün çıkış bacağına (+) bağlanır ve ADC_0 değeri okunur.
  2. Kanal 1 (AN1 – RA1): Sensörün sanal toprak bacağına (-) bağlanır ve ADC_1 değeri okunur.

10-bit ADC çözünürlüğünde, iki kanal arasındaki farksal adım farkı hesaplanır. Burada dikkat edilmesi gereken husus, negatif sıcaklıklarda ADC_0 değerinin ADC_1 değerinden daha küçük olacağıdır. Bu sebeple işlemci seviyesinde işaretli tamsayı (signed integer) dönüşümü uygulanmalıdır:

    \[\text{ADC}_{DIFF} = (\text{signed int})\text{ADC}_0 - (\text{signed int})\text{ADC}_1\]

5V referans voltajında her ADC adımı 4.8828\text{ mV} (5000\text{ mV} / 1024) değerine karşılık gelir. Sensör hassasiyeti 10\text{ mV/}^\circ\text{C} olduğuna göre, nihai sıcaklık formülümüz şu şekildedir:

    \[\text{Sıcaklık (}^\circ\text{C)} = \text{ADC}_{DIFF} \times \frac{4.8828\text{ mV}}{10\text{ mV}} = \text{ADC}_{DIFF} \times 0.48828\]

PIC16F877A Negatif Sıcaklık Ölçüm Kodu (XC8)

Aşağıdaki MPLAB XC8 programı, ADCON0 ve ADCON1 kaydedicilerini AN0 ve AN1 analog girişlerini sırayla örnekleyecek şekilde yapılandırır. millis() benzeri bloklamayan zamanlama ile her 500 ms’de bir ölçüm gerçekleştirilip sonuçlar 16×2 LCD ekran üzerinde hem artı hem de eksi değerler dahil olmak üzere yüksek kararlılıkla gösterilir:

Proteus Simülasyon Analizi

Proteus simülasyonunda, LM35 sensörünün çıkışındaki iki diyotun katot ucu GND terminaline, anod ucu ise 18\text{ k}\Omega‘luk pull-down direnci üzerinden sensörün analog çıkışına bağlanmıştır. Sıcaklık sıfırın altına düşürüldüğünde, LCD ekranda eksi işaretinin ve virgülden sonraki hassas basamakların kararlı bir şekilde görüntülendiğini osiloskop ve multimetre ölçümleriyle de teyit edebilirsiniz:

Diferansiyel LM35 Negatif Sıcaklık Proteus Simülasyonu
Proteus üzerinde negatif sıcaklık test ekranı

Biyomedikal sıcaklık sensör sistemleri, endüstriyel fırın/soğutucu diferansiyel analog ölçüm metotları veya mikrokontrolcü tabanlı gürültü filtreleme algoritmaları hakkında her türlü teknik sorunuzu aşağıdaki yorumlar alanından bizimle paylaşabilirsiniz.

LM35’in negatif sıcaklıklar için sunduğu resmi referans bağlantılarına Texas Instruments LM35 Teknik Veri Sayfası (Datasheet) üzerinden erişebilirsiniz.

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.