Sıcak Su Tankı – Sıcaklık Uyarı ve Kontrol Sistemi(DS18B20)

Reklamlar

 

 

Merhaba arkadaşlar,

Bir süredir tez çalışmalarından ötürü birşeyler yazamıyordum. Bugün sizinle sıcak su tankı sıcaklığının kontrolü yada uyarısı için kullanılabilecek bir devreyi anlatacağım.

 

 

Devrede kullanılan malzemaler temelde mikrodenetleyici olarak PIC16F84A , sıcaklık sensörü olarak Dallas firmasının DS18B20, gösterge olarak eski bir uydu alıcıdan söktüğüm 3×7Seg display ve kontrol amaçlı 12V bir 5 ayaklı role.

Sistem ilerleyişi şu şekilde 1 saniye aralıklarla sensör okunuyor ve sonrasında ekrana tarama yöntemi kullanılarak yazdırılıyor. Taramada displayler için transistör kullanmaya gerek duymadım. PIC mikrodenetleyicilerin I/O standartları uygun gibi geldi. Program CCS C ile yazıldı.

DS18B20 için yeniden program yazmadım. Web üzerinde ufak arama ile pek çok yerde görebilirsiniz.

#include <16F84A.h>
#device *=16
 
#use delay(CLOCK=4000000)         //Fosc=4Mhz
#FUSES NOWDT, XT, NOPUT, NOPROTECT
#include "ds18b20.c"
 
float sicaklik = 0;
char table[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
char i = 0, temp = 0,tmp=0;
char dig[2] = "";
 
///PROGRAM
#int_timer0
void timer0_kesme()
{
disable_interrupts(INT_TIMER0);
switch(i)
   {
      case 0:
         output_a(0x01+tmp);
         output_b(table[dig[1]]);
         break;
      case 1:
         output_a(0x02+tmp);
         output_b(table[dig[0]]);
         break;
      case 2:
         output_a(0x04+tmp);
         output_b(0xA7);//table[dig[0]]);//'C sembolü için
         break;
   }
  i++;
  i%=3;
  enable_interrupts(INT_TIMER0);
  set_timer0(50);
}
 
void main()
{
 
set_tris_b(0x00);
set_tris_a(0x00);
setup_timer_0(RTCC_DIV_32|RTCC_INTERNAL);
 
set_timer0(50);
 
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
 
while(1)
{
   sicaklik = ds1820_read();  //Sıcaklık bilgisi okunuyor ve çevriliyor
 
   temp = sicaklik;
 
   dig[0] = temp % 10;
   dig[1] = (temp / 10) % 10;
 
  if(temp > 90)
   tmp = 0x08;
  else
   tmp = 0;
 
   delay_ms(1000);
 
}
}

Çalışma Vidyosu

http://www.dailymotion.com/video/xq6q07

 

Sonuç olarak basit ama kullanışlı bir çalışma oldu.

————
Orhan YILMAZ
Dumlupınar Üniversitesi

Bu yazının kalıcı bağlantısı https://www.mafgom.com/sicak-su-tanki-sicaklik-uyari-ve-kontrol-sistemids18b20/