ana sayfa > Microchip, Projelerim > Pic16F88 ve Ds18B20 ile Sıcaklık Kontrol Devresi

Pic16F88 ve Ds18B20 ile Sıcaklık Kontrol Devresi

Perşembe, 16 Ağu 2012 yorum ekle yorumlara git
Pic16F88 ve Ds18B20 ile Sıcaklık Kontrol Devresi

Merhaba Arkadaşlar

Çok amaçlı olarak kullanabileceğiniz nispeten güzel bir termostat devresi sizlerle paylaşmak istiyorum.

Sistemin iki versiyonu var. İlk tasarladığım sistemde sadece ısıtma kontrolü yapılıyordu. Ayrıca negatif sıcaklıkları göstermiyor ve negatif sıcaklıklarda ısıtma kontrolü yapmıyordu. Yani Sadece sıcaklık düşümlerinde herhangi bir ısıtıcıyı kontrol etmek üzere tasarlamıştım. Yeni sistemde ise Hem pozitif sıcaklıklarda hemde negatif sıcaklıklarda ısı düşüş kontrolü ve ısı yükseliş kontrolü yapılabilmektedir. Yaptığım Yeni değişikliklerle kullanım alanı epeyce arttı. Bununla birlikte Elektrikli ısıtıcı, Çeşitli kuluçka makineleri, Kombi kontrolü, Buzdolabı, Derin Dondurucu ve bunun gibi ısıtma ve soğutma kontrolü gereken cihazarda kullanılır.

İşlemciyi değiştirmek zorunda kaldım çünkü eski yazılımda kulandığım 16F628 in 2K lık hafızası yeni yaptığım değişiklikleri kaldırmadı. Bende 8K hafızası olan 16F88 üzerine yazılımı gömdüm. Eski yazılım açıkçası okadar çok değişiklik istiyorduki neredeyse programı sıfırdan yazdım gibi birşey oldu. Pek değişiklik yapmadım yani. Özellikle kontrol mekanizması benim çok vaktimi aldı. Çünkü kontrol edilmesi gereken birçok durum, olasılık var. Bu olasılıkların hepsinin teker teker kontrol mekanizmasında ele alınıp değerlendirilip sonuca göre röle durumu kontrol ediliyor.

Kontrol mekanizması Her ısı çevriminden sonra sırayla aşağıdaki işlemleri yapar.

  1. Cihaz Isıtma modundamı çalışıyor yoksa soğutma modundamı Bu kontrol edilir. Elde edilen sonuca göre farklı hesaplamalar yapılır.
  2. Çalışma modu belirlendikten sonra Ortam sıcaklığının Pozitifmi yoksa Negatifmi bu durum değerlendirilir. Duruma göre farklı işlemler yapılır.
  3. İşlemci Hafızasından Sıcaklık Set Değeri, Histeris Değeri okunur.
  4. Okunan bu set değerleri ile işlemciden okunan sıcaklık değerleri karşılaştırılıp(Toplanıp çıkarılıp çarpılıp:) ) Elde edilen sonuca göre çıkış rölesi açılır veya kapatılır. Genel olarak arka planda yürüyen işler böyle

Her nekadar bu kadar basit görünsede bayağı karmaşık işlemler. Yazılımı incelerseniz anlarsınız mutlaka.

Gelelim Devre şemasına

Devre şeması aşağıdaki gibidir.
Devre Şeması

Görüldüğü üzere 16F88 in tüm pinleri kullanılmaktadır. MCLR kapalı ve OSC olarak dahili 4Mhz osc aktif. Dolayısıla hem OSC pinleri Hemde Reset pnileri devrede kullanılabilmektedir.

Biraz Sistemin kontrol mekanizmasından bahsetmek istiyorum;

Genel olarak 0-100 derece arası 0.1 derece hassasiyetinde ve 0 ile (-50) arasında 1 derece çözünürlükte kontrol yapabiliyor. Negatif Sıcaklıklarda 1 derece çözünürlükte kontrol yapmasının sebebi devrede sadece 3 dijit olmasından kaynaklanmaktadır. Bu yüzden Negatif sıcaklıkların hem gösterilmesi hemde kontrolü 1 derece çözünürlükle yapılır. Dediğim gibi yeni yazılımı eski sistem üzerine kurduğum için donanım üzerinde pek değişiklik yapma imkanım yoktu. Sadece işlemciyi değiştirebildim. Pozitif sıcaklıklarda böyle bir durum söz konusu değildir. Sıcaklık kontrolü 0.1 derece çözünürlükte gösterilip kontrol edilir.

Cihaza Eklediğim yeni özelliklerden birisi ise iki adet çalışma modu bulunması. Isıtma modu (Poz) Ve soğutma modu(Neg) olmak üzere iki ayırabiliriz.

Cihaz pozitif mod da çalışıyorken sıcaklık değeri Ayarladığımız Set değerinin altına inince röle devreye girer.

Örnek vermek gerekirse;

Devre pozitif modda çalışıyorken Diyelim ki Set değerini 27.4C olsun. Tolerans Değerimiz ise 2.3C olsun. O halde Rölenin devreye girme sıcaklığı 25.1C olacaktır. Sıcaklık 27.4 olunca röle devre dışı kalır.

Başka bir örnek vermek gerekirse Yine Devre pozitif modda çalışıyorken diyelimki Set değerimiz -36C olsun. Tolerans değerimiz ise 3 derece olsun. O halde Rölenin devreye girme sıcaklığı -39 derece olacaktır.

Sıcaklık -39 ise veya dahada düşük ise röle devreye girer. Sıcaklık değeri Set değerine ulaşır veya set değerinin üzerine çıkar ise Röle devre dışı kalır. Pozitif modda iken sistem bu şekilde çalışıyor. Yani ortam sıcaklığını arttırmak amaçlanıyor.

Diğer çalışma modu olan negatif modda ise hemem hemen buradaki işlemlerin tam tersi yapılır.

Anlaşılması açısından aynı değerlerle örnekler vereyim.

Yine Set Değerimiz 27.4C olsun. Tolerans Değerimizde yine 2.3C olsun. Değerlerimiz bu şekilde olunca Rölenin devreye girme sıcaklığı 29.7C dir. Sıcaklık bu değere ulaşınca veya bu değerin dahada üzerine çıkarsa röle devreye girer. Sıcaklık değeri Set değerimize ulaşır veya Set değerimizin dahada altına inerse röle devre dışı kalır.

Başka bir örnekle Set değerimiz -36C olsun. Tolerans değerimiz de yine 3 derece olsun. Değerler böyle olunca Sıcaklık değeri -33C ye ulaşınca veya bu değerden daha yüksek olursa röle devreye girer. Sıcaklık değeri Set değerine ulaşınca veya daha düşük sıcaklıklara inerse röle devre dışı kalır.

Genel olarak Kontrol mekanizmasının çalışması bu şekildedir.

Devrede dikkat edilmesi gereken iki nokta vardır. Normalde Pozitif değerlerde set değeri 0-99 derece arası 0.1 derece hassasiyetinde tolerans değeri ise 0 ile 5.0 derece arası ayarlanabiliyor. Negatif sıcaklıklarda Set değeri 0 ile (-50) arası 1 Derece hassasiyetinde tolerans değeri de 0 ile 5 derece arası ayarlanabiliyor. Burada dikkat edilmesi gerekenler Set değerinin tolerans değerinden küçük olmamasıdır. Küçük olmasının kontrol açısından bir sakıncası yoktur fakat negatif sıcaklıklarda 1 derece hassasiyetinde ekranda gösterim yapıldığı için Eğer Rölenin çalışması gereken değer tam sıcaklık değer değilse sıcaklık değeri set değerine eşitlenmesini anlık olarak göremezsiniz.

Bir örnekle açıklayayım. Diyelim ki Set değerimiz 3.5C olsun tolerans değerimiz ise 5C olsun. O halde Rölenin devreye girmesi gereken sıcaklık -1.5C olacaktır. Bu konuda bir problem yoktur. Sıcaklık -1.5 derece olunca röle devreye girer. Fakat sıcaklık negatif olunca ekranda sıcaklık 1 derece çözünürlükle gösterilir. Bu Yüzden eksi değerlerde virgülden sonraki hane görülmez. Bu işlemin aynısı Devre Negatif modda çalışıyorken de geçerlidir. Ben pek sorun olacağını düşünmedim açıkçası Sonuçta kontrol işlemi yine yerine getiriliyor.

Devreye set değeri girmek için SET tuşuna Ekranda Set yazısı görülünceye kadar basılır. Set yazısı görüldüğünde set tuşuna basmayı bırakırsanız set ayar menüsüne gider. Eğer Set yazısını görüpte basmaya devam ederseniz belirli bir süre sonra Çalışma modu menüsüne gidersiniz. O an Devre hangi Modda çalışıyorsa Poz veya Neg olmak üzere ikisinden biri ekranda görülür.

Menülere giriş bu şekilde Yapılıyor.

Set menüsünde Ayarlar eski devredeki gibidir. 0-99 arası 0.1 derece çözünürlükle ayarlanır. 0 ile -50 arası 1 derece çözünürlükle ayarlanır. Ayarlar yapıldıktan sonra tekrar set tuşunu basılarak hassasiyet menüsüne gidilir. Orada da ayarlar set menüsündeki gibidir. Ayarlar yapılıp set tuşuna basılarak ana çalışma moduna dönülür.

Çalışma modu menüsünde ise iki seçenek vardır. Poz ve Neg olarak ekranda görülür. Yukarı ve aşağı butonları ile ayarlar gerçekleştirilip Set tuşuyla menüden çıkılıp ana çalışma moduna dönülür. Tüm ayarlar bunlardan ibaret.

Yapılan değişiklikleri 16F628 in Hafızası kaldırmadığı için direk 16F88′e geçtim. Pin yapısı 16F628 ile tamamen aynıdır. 16F88, 16F628′e göre biraz daha g.elişmiştir. PCB de Hiçbir değişiklik yoktur. Hatta Daha önceki devreyi yapanlar olduysa, 16F88 alıp yeni yazılımı yükleyip 16F628 yerine takarak devreyi çalıştırabilirler.

Benim denemelerimde sıcaklığı 95 dereceye kadar sorunsuz ölçtüm. Negatif sıcaklıktada maximun -20 ye kadar inebildim. (Buzdolabı o kadar inebildi) 😀 Ama -50 ye kadar sorunsuz ölçeceğini düşünüyorum. ;D

Yeni Devreyle ilgili bazı resimler çektim. PCB eskisiyle aynıdır.
Termostat
Termostat
Termostat
Bu resimlerde Eksi sıcaklığı gösteriyorken çektim. Sensörün kablosunu uzatıp buzdolabı içerisine yerleştirdim
Termostat
Termostat

Birde iyi kötü video çekmeye çalıştım;

Not: Devredeki displayler ortak Katottur.

Dosyaları Buradan indirebilirsiniz.

Categories: Microchip, Projelerim Tags:
  1. mehmet
  2. Ferhat YOL
    Salı, 05 Kas 2013 zamanında 22:07 | #2

    Hayır Onlar Sadece Resim

  3. ahmet arar
    Perşembe, 09 Eki 2014 zamanında 19:34 | #3

    SELAM FERHAT HOCAM
    PİC16F88 & DS18B20 MULTİ TERMOSTAT DEVRESİ’NDE BULUNAN KONDANSATÖRLERİ DEĞERLERİ YAZIYOR AMA VOLT DEĞERLERİ YAZMIYOR. 2 ADET KUTUPLU KONDANSATÖRÜN VOLT DEĞERLERİNİ SÖYLERSENİZ ÇOK İYİ OLUR. BİR DE HOCAM BASKI DEVRESİNDEKİ ELEMAN YERLEŞİMİNDE TRANSİSTÖR BACAKLARI GÖRÜLDÜĞÜ GİBİ Mİ BIRAKMALIYIZ YOKSA DEĞİŞLİK YAPMAMIZ GEREKİYOR MU? BİR DE SİZDEN UFAK BİR RİCAM OLACAK İSİS DEVRESİNDEKİ ŞEMA İLE ARES DEVRESİNDEKİ ŞEMA BİRBİRİNE UYMUYOR. ARES ŞEMASINA UYGUN ŞEMAYI GÖNDERİRSENİZ ÇOK YARDIMCI OLURSUNUZ. ELİNİZDE YOKSA NASIL ÇİZEBİLECEĞİM HAKKINDA BİLGİ VERİRSENİZ İYİ OLUR. Örneğin; KONDANSATÖRÜN + UCU BUTONUNA + GERİLİM GELEN YER PARALEL BAĞLANIR VE GROUNDLANIR.

  4. Ferhat YOL
    Cuma, 10 Eki 2014 zamanında 09:52 | #4

    ahmet arar :

    Elektrolitik kondansatörlerin hepsinini 16V takabilirsiniz. Kutupsuz kondansatörlerde zaten 63V polyseter olanlardır.

    Butonlara bağlı kondasatör kutupsuzdur. Bağlantı yönü farketmez.

    Transistör ise Ares’deki gibi bağlanacak. Ters bağlama felan yok. Bunları yapın yeter.

  5. Çarşamba, 26 Ağu 2015 zamanında 06:22 | #5

    Hello Ferhat
    Consultation on Thermostat
    You can change the display by common anode ???
    I’m from chile
    regards
    Sergio

    Merhaba Ferhat
    Termostat üzerinde istişare
    Ortak anot ile görünümünü değiştirebilirsiniz ???
    Ben Şili duyuyorum
    selamlar
    Sergio

    • Ferhat YOL
      Çarşamba, 26 Ağu 2015 zamanında 10:40 | #6

      Hi Sergio
      No I’m sorry, this is not possible. I need to change the design.

  6. mehmet
    Cuma, 20 Kas 2015 zamanında 21:47 | #7

    hocam role yerine 12 v luk bir motor kullanabilirmiyiz

    • Ferhat YOL
      Pazar, 29 Kas 2015 zamanında 00:43 | #8

      Hayır olmaz. İyi olmaz. Doğru olan röle ile motor sürmektir. Devre üzerindeki donanım motor sürmek için yeterli değildir.

  7. Baris yakut
    Çarşamba, 23 Ara 2015 zamanında 13:24 | #9

    Merhaba,

    Ben de evimdeki Demirdöküm Termostar Comfort kombi için oda termostatı yapmaya karar verdim. İnternetten bulduğum e-kılavuzlardan kombinin termostat girişinin 24V olduğunu gördüm. Kartı beslemek için adaptör alacağım ancak adaptörün Amper değeri ne olmalı?

    Teşekkürler.

  8. Ferhat YOL
    Perşembe, 24 Ara 2015 zamanında 00:03 | #10

    @Baris yakut
    12V 500ma civarı olması yeterlidir.

  9. muzaffer YORGUN
    Çarşamba, 30 Ara 2015 zamanında 15:46 | #11

    Hocam iyi çalışmalar ben bir sağlık firmasında çalışıyorum hastanedeki tıbbi cihazlara kalibrasyon yapıyoruz fakat termometrelere yapamıyoruz yani ortam sıcaklığını ölçen termometrelerden bahs ediyorum çünkü bunları kalibre edecek cihaz çok pahalı ve biz alamıyoruz.
    sonra düşündüm kendim bir ısı kalibratörü yapmaya karar verdim çok basit ama iş görecek projesinide çizdim ben elektirikten anlamıyorum düz lise mezunuyum sizn çalışmanıza baktım bunla ısı ayarı yapılıyormu yani ben cihazımı pirize taktığımda blok içindeki cam ısıtcısı 50 ye veya 70 e veya 30 a ayarlaya bilirmiyiz

    • Ferhat YOL
      Perşembe, 31 Ara 2015 zamanında 01:17 | #12

      Muzaffer bey, Bu devre kalibrasyon amaçlı kullanılmaz. Kalibrasyon amaçlı kullanılabilmesi için devre üzerindeki sensörün doğruluğunun yetkili merkezler tarafından kontrol edilmiş olması lazım. Ayrıca Devre tamamen amatör olarak tasarlanmış olup Tıbbi konularda kullanılmaması gerekir. Aksi durumda oluşabilecek problemlerin yükümlülükleri tamamen kullanıcıya aittir. Burada yayınladığım bütün projeler için geçerlidir.
      Devrede bahsettiğiniz bir sistem için kontrol yapabilirsiniz. Buna bir engel yoktur

  10. Barbaros
    Cumartesi, 30 Oca 2016 zamanında 21:15 | #13

    hocam ben bu devrenizi 2 senedir oda sıcaklığını ayarlamak için 10×10 kare buvat içerisine 40a triac devresi ile beraber elektrikli ıstıcıda kullanıyorum.çokda memnunum.bu yıl kombiye terfi ettik.bu devreyi kombide kullanmak istiyorum kablosuz olarak.15 nolu pinden rf olarak kontrol edilebilecek bir projeniz varmı.(devresi hazırda olduğu ve fazla tadilat gerektirmemesinden dolayı)bu projeyi birde böyle değerlendirirseniz sanırım herkesin çok işine yarayacak bir alternatif olacak

  11. Ferhat YOL
    Cumartesi, 30 Oca 2016 zamanında 21:35 | #14

    Malesef elimde öyle bir sistem yok

  12. Tamer
    Pazartesi, 07 Kas 2016 zamanında 16:09 | #15

    Merhaba hocam, devrede ısıtıcı olarak kombiyi kullanacağım. Sistemi basit. Kablonun iki ucu kısa devre olduğunda kombi ısıtmaya başlıyor ve açık devre olduğu zaman ise duruyor. Kısaca basit bir anahtarlamaya ihtiyacım var. Kablodaki gerilim 220v kesin olarak düşük. Düşük gerilimi bu devre kesip açababilir mi acaba bir sorun yaşar mıyım?

  1. şimdilik geri bağlantı yok