Notlar..

320volt / Mikrodenetleyici Projeleri/

PIC 16F877 DS 18B20 lcd dijital termometre

Mikrodenetleyici Projeleri, blog arşivinde PIC 16F877 DS 18B20 LCD DIJITAL TERMOMETRE konusu "ds18b20 sıcaklık metre* microchip pic projeleri* mikroc* pic16f877 dijital termometre* termometre devresi* " ile etiketlendi

PIC16F877 mikro denetleyici ve DS18B20 ısı sensörü ile lcd göstergeli dijital termometre yapımı tüm detaylar bulunmakta yazılım C dili ile (Mikroelektronika mikroC) hazırlanmış ısı alğılama projelerinizde örnek olabilir feyz alabilirsiniz. Harızlayan emeği geçen kişilere teşekkürler

Bu çalışmada elektronik devreler ve mikro denetleyici kullanılarak bir termo metre tasarımı amaçlanmıştır. Çalışmada algılanan sıcaklığa bağlı olarak değişen sıralamada yanan ledler ve algılanan sıcaklığı dijital olarak gösteren lcd cihazları çalışma prensibi esas alınmıştır. Bu yöntemde vücut sıcaklığı incelenir.

Normal bir insanın vücut sıcaklığı 37C olup birçok hastalıkların başlangıcında sıcaklık genellikle yükselmekte ve bazı hastalıklarda da vücut sıcaklığı düşmektedir. Bu nedenle hastalıkların anlaşılması için vücut sıcaklığını ölçen ve termometre denilen cihazlar tasarlanmıştır.

Öncelikle termometre hakkında kısa bir bilgi verilecek daha sonra kullanılan malzemeler hakkında bilgi verilecektir. Bir sonraki bölümde ise uygulanan yöntem hakkında bilgiler verilecek, tasarlanan sistem blok diyagramlarla anlatılacaktır. Ardından devre şemaları ve devre dizaynları ile ilgili açıklamalar yapılmıştır. Son olarak sonuç ve bugüne kadar gelinen nokta hakkında bilgiler verilecektir.

Genel olarak Santigrat, Fahrenheit, Reomür olmak üzere üç çeşit termometre vardır. Bunlar, genel yapı bakımından birbirlerinin aynıdır. Değişik olan, üzerlerinde bulunan rakamlardır. Bu da, kaynama derecesinin, her üçünde değişik olarak alınmasından ileri gelmektedir. Suyun donma derecesi, her üç termometrede 0 olduğu halde, kaynama derecesi, Santigratta 100, Fahrenheltta 212, Reomürde 80 olarak kabul edilmiştir. Oiva termometrelerinden başka madensel ve alkollü termometreler de yapılmıştır.

Dijital Termometre

Dijital termometreler genellikle vücut sıcaklığını ölçer. Ancak dijital olduğu için uzun süreli okuma yapabilirler; yine de termometreler arasında en hızlı ölçüm yapabilen çeşittir.

Cıvalı Termometre

Cıvalı termometre de vücut ısısını ölçer ancak dijital termometrenin ölçtüğü süreden daha uzun sürede bu işi görmektedir. Aynı zamanda “vücut termometresi” şeklinde de bilinir. Tıpta kullanılır.

Hasta Termometresi

Civalı bir termometredir. Vücut sıcaklığını ölçmede kullanılır. 35 santigrat derece ile 42 santigrat derece arasındaki sıcaklıkları 1/10 incelikle ölçer. Bu termometrelerin haznesi ile kılcal borunu birleştiği yerde bir boğum bulunur. Vücut sıcaklığı ölçüldükten sonra termometre sapından tutularak sallanır. Neden? Yeni bir ölçmeye hazır olan termometre ağız içi ya da koltuk altına konularak vücut sıcaklığı ölçülür.

*Bu projede PIC mikro kontrolör tabanlı bir dijital termometre yapmak amaçlanmaktadır.*

KULLANILAN MALZEME LİSTESİ

  • 1) 1 adet 16F877 model pic
  • 2) 1 adet BS18B20 sıcaklık entegresi
  • 3) 1 adet 20MHZ Kristal
  • 4) 2 adet 22Pf Kondansatör
  • 5) 9 adet 10K Direnç
  • 6) 1 adet LM016L LCD
  • 7) 8 adet sarı 1 adet yeşil led
  • 8) 1 adet 5V adaptör
  • 9) 1 adet pull up direnci

Vücut sıcaklığını ölçen ve uygun bir şekilde gösteren PIC mikro kontrolör tabanlı cihaz tasarımı için sıcaklığı algılayan sıcaklık sensörü, PIC mikro kontrolör, Ölçülen sıcaklığı gösteren LED ya da LCD gereklidir.

Sıcaklık sensörleri genel olarak analog ya da sayısaldır. Analog sensörlerin çıkışları analog gerilim veya analog akım olup genellikle bu gerilim veya akım sıcaklık ile doğru orantılıdır. Analog sensörleri mikro kontrolöre bağlamak için analog-sayısal dönüştürücü devresi kullanmak gerekmektedir. Birçok PIC mikro kontrolör içinde analog-sayısal çevirici bulunmaktadır. Projede kullanılan PIC16F877 mikro kontrolörün içinde 8 tane ve her biri 10 bit olan analog-sayısal çevirici bulunmaktadır. Gerçekte analog-sayısal çevirici bir tane olup bir multipleksor sayesinde mikro kontrolöre 8 tane analog giriş bağlanabilir.

Projede algılanmış sıcaklığı göstermek için LED ve LCD kullandık. LCD ekranından gösterilen sıcaklığa bakarak ve yanmış olan LED lere bakarak sıcaklığı ölçmüş oluruz. LED lerle ölçüm hassas olmamasına rağmen vücut sıcaklığını ölçmek için kullanılabilir. Kullandığımız sıcaklık sensörü üç bacaklı bir sensördür. Bir bacağı +5V gerilime diğer bir bacağı toprağa üçüncü bacağı ise çıkış olup mikro kontrolörün analog girişine bağlanır.

DS18B20 Sayısal Sıcaklık Algılayıcısı

Maxim/Dallas firması tarafından üretilen DS18B20 sıcaklık algılayıcısı en fazla 0,5°C’lik hata ile -55°C ile +125°C arası ölçüm yapabilmekte ve sıcaklık bilgisini sayısal olarak vermektedir. TO-92 kılıfındaki DS18B20’nin görünümü Şekil-2’de verilmektedir.

ds18b20-sayisal-sicaklik-algilayicisi

DS18B20 gibi sayısal çıkış veren sıcaklık algılayıcılarının kullanımı ile analog/sayısal dönüştürücü kullanımına gerek kalmamaktadır. Ayrıca Maxim/Dallas tarafından geliştirilen tek hatlı (1-Wire®) bir haberleşme protokolü ile sıcaklık bilgisi sayısal bir işlemcinin sadece bir giriş/çıkış ucu kullanılarak okunabilmektedir. Her bir DS18B20 için tanımlanmış 64-bitlik bir seri numarası mevcuttur.

Bu seri numarası sayesinde tek bir tel üzerinden birden fazla DS18B20’den sıcaklık bilgisi okunabilmektir. Ayrıca parazit besleme özelliği ile (parasite power) harici besleme kaynağına gerek kalmadan sıcaklık bilgisi okunabilmektedir.

ds18b20-blok-diagram

Termometre

İlk termometre, 1614 yılında ünlü bilgin Galile tarafından yapılmış, gittikçe evrim kazanarak, bugün kullanmakta olduğumuz termometrelerin meydana gelmesine yol açmıştır. Bugün kullanmakta olduğumuz termometreler, 1742 yılında Andres Celsius tarafından bulunmuştur.

Termometreler, genel olarak, ince bir cam tüp halindedirler. Bu tüpün alt tarafında şişkince olan bölümde, cıva deposu vardır. Sıcaklık karşısında genişlemeye uğrayan cava, bir sütun halinde, cam tüp içinde yükselir, önceden tespit edilmiş derece miktarlarına göre, civanın bu yükselmesine sebep olan sıcaklık, tespit edilmiş olur.

termometre

DQ ucu 4,7 K‘ lık bir pull-up direnci ile mutlaka +5 V ta bağlanmalı. Eğer bu nokta atlanırsa devre 0 dereceyi gösterecektir.

ds18b20-pull-up-direnci

DS18B20 algılayıcısı (Tek Hat Sayısal Termometre) yüksek doğrusallığa sahip sayısal çıkış üreten bir sıcaklık algılayıcısıdır. Dallas/Maxim tarafından geliştirilen tek hat haberleşme protokolü ile haberleşilen bu algılayıcıların her birinin özel ve 64 bitten oluşan

tek bir seri numarası bulunmaktadır (8 bit CRC kodu + 48 bit seri no +8 bit aile kodu ). Böylece tek bir seri hatta bağlanan birden fazla DS18B20algılayıcılarından istenileni ile haberleşilerek ilgili noktadaki sıcaklık ölçülebilir. Bu sıcaklık algılayıcısı 100 metreye kadar herhangi bir ek devre elemanına gerek kalmadan kullanılabilmektedir. DS18B20, -55°C ile +125°C arasında 9, 10, 11 veya 12 bitlik çözünürlükte ölçüm yapabilmektedir. 12 bitlik çözünürlükteki hassasiyeti 0,0625’°C dir. Çözünürlük değeri yapılandırma kaydedicisinin 5. ve 6. bitleri değiştirilerek belirlenmektedir.

Link PIC16F877’nin Özellikleri ve Yapısı

GERİ BESLEME VE OSİLATÖRLER

Kristal Osilatörler: Bir osilatör, bir alıcı ya da verici sabit bir frekansta çalışacaksa yani çalıştığı frekansta az da olsa bir değişiklik olmayacaksa o zaman devredeki osilatörün kristalli olması en iyi yöntemdir. Kristal osilatörün ana parçası olan piezoelektrik kristal çoğunlukla kuvars madeninden yapılır. Kuvars, çeşitli büyüklüklerde kesilerek, yontularak çeşitli frekanslar için üretilir. Osilatör için üretilmiş bir kuvars yuvarlak vitamin haplarına ya da küçük dikdörtgen prizmaya benzer.

Bir kuvars kristaline basınç uygularsak iki kenarı arasında bir gerilim oluşturur. Kuvars benzeri maddelerle yapılmış çakmaklar buna bir örnektir. Tersi biçimde bir kuvars kristaline DC gerilim uygularsak bu kez de burkulur. Tersi bir gerilim uygularsak diğer yönde burkulur. AC bir gerilim uygularsak, uygulanan AC gerilimin frekansında her iki yöne burkulur yani titreşir. Uygulanan AC gerilimim frekansı, kristalin bir kesim özelliği olan rezonans frekansında ise o zaman en büyük titreşim elde edilir.

kristal-osilator

Yukarıdaki paragrafta anlattığım gibi kristalin hareketleri mekaniktir. Bu mekanik hareketi sağlayan kristalin elektriksel modeli ise aşağıdaki şekildedir.

elektriksel-model-frekans-egrisi

Şekil 3.2’de sol taraf bir seri rezonans devresidir. Bu seri kısım kristalin hiç bir bağlantı ucu olmayan halini temsil eder. Sağ taraftaki Cj ise kristalin bağlantı elektrotları ve elektrotları elektronik devreye bağlayan bağlantı telleri arasındaki kapasiteyi temsil eder. Piezoelektrik kristallerin Q değerleri çok yüksek olur tipik bir değer olarak 5000 diyebiliriz.

Şeklin sol tarafına dönecek olursak L ve C kristalin rezonans frekansıdır ve kesim şekli ile büyüklüğü ile belirlenir. R direnci ise kristalin mekanik salınımına yaptığı direnmedir. R direnci ihmal edilirse seri kısmın rezonans frekansı;

frekans-formul-1

Sağ tarafta seri rezonans devresine paralel bir Cj kondansatörü var. Bu kondansatörün değeri seri rezonans kısmındaki kondansatörden çok büyüktür. Bir örnek verecek olursak, tipik bir kristalde C=0,025pf Cj=3,5pf gibi. Bu durumda kristalin paralel devre olarak rezonans frekansı;

frekans-formul-2

Paralel rezonansta oluşan frekans, seri rezonansta oluşan frekanstan biraz daha yüksektir. Tipik olarak seri rezonans frekansı paralel rezonans frekansının 0,9 daha düşüğüdür. Kristali paralel rezonansta çalıştırmanın bir avantajı vardır. Cj kondansatörü kristalin bağlantıları ile ilgili olduğu için kristale dışarıdan ayarlı bir kondansatör takarak (trimer kondansatör) frekansı çok az aşağı ya da yukarı çekmek mümkündür. Bu değişim çok fazla olmamak koşulu ile ince ayar için çokça kullanılır.

Kristal bir kütleye sahiptir. Bu nedenle ısındığı ya da soğuduğu zaman hacmi dolaysıyla frekansı değişir. Bu değişim az olmasına rağmen hassas devrelerde istenmez. Isıya bağlı frekans kaymasını önlemek için kristaller sabit ısıda çalıştırılır. Sabit ısı, içinde kristal ve termostatlı ısıtıcı bulunan küçük fırınlarla (crystal owen) sağlanır.
Aşağıda çeşitli kristal osilatör devreleri görülmektedir.

kristalli-miller-osilator

Yukarıdaki devrede kristal paralel rezonans devresi olarak çalıştırılır. Bu durumda kristal çok yüksek empedans gösterecektir. FET transistörün akaç tarafındaki L C kristal frekansına yakın bir değere ayarlanır.
PROJENİN YAPIM SÜRECİ ve AÇIKLAMALARI

• Mikro kontrolörün 1 numaralı bacağı besleme bacağıdır ve bu besleme bacağına (+5V) bağlanarak mikro kontrolör enerjilendirilmiştir.

mikro-kontrol

• Sıcaklığı algılayabilmek için kullanılan DS18B20 sıcaklık sensöründe;

ds18b20

• VCC besleme, DQ(DIGITAL QUIT) data çıkışı, GND(GROUND) toprak bağlantısıdır. Sıcaklık sensörünün çıkışı olan dijital sinyal, paralel bağlı Pull up direnci ile kuvvetlendirilmiştir. Pull up direncinin bağlanma sebebi; ısı sensörünün çıkışından gelen zayıf sinyalin yeterli düzeye yükseltilmesini sağlamak içindir.

pull-up-direnci

• Kuvvetlenen sinyal PIC’ in giriş kısmında 10 numaralı bacağı olan AN7/CS portuna bağlanmıştır.

• Mikro kontrolörün 13 ve 14 numaralı CLKIN ve CLKOUT bacakları arasına Kristal Osilatör ve kristalin 2 ucuna da (giriş ve çıkış uçlarına) paralel kondansatörler bağlanmıştır. Bağladığımız bu Kristal ve kondansatörler, Dc giriş gerilimini Kare dalga Ac gerilime çeviriyor ve bu kare dalga gerilim PIC’ in clock uçlarına uygulanıyor böylece mikro kontrolörde zaman kavramı oluşuyor. Eğer kondansatörlerin değerleri uygun seçilmezse elde ettiğimiz kare dalgalarda bozulmalar meydana gelir ve hassas bir sonuç elde edilmez.

• Mikro kontrolörün çıkış kısmına Port d 19-20-21-22-27-28-29-30 bacaklarına sırasıyla 8 led birbirine paralel olarak bağlanmıştır. Programımızın çalışma düzenine göre bağlanan ledler hexademical düzene göre yanmaktadır. Bağlanan 8 led sırayla yandığında (20 ,21 ,……27 ) değerlerini ifade ediyor.

Bizim devremiz maksimum 127,5 dereceye kadar ölçüm yapabiliyor, bu sıcaklıkta ledlerin tamamı yanar ve 255 değerini okunur. Ledlerin yanmasıyla okunan değer ve ölçülen sıcaklık arasında 2:1 oranı vardır.

Bir örnek üzerinde gösterecek olursak;

ornek-devre

Yukarıdaki şekilde 4. Ve 6. Lamba yanıyor yani bizim okuyacağımız değer onluk tabanda termometre-formul-x1 değeri olacaktır.

termometre-formul-x2

• Ölçülen sıcaklığı LCD ekran üzerinde okuyabilmek için LM16L model lcd kulandım.

Resim 4.2 LM016L LCD

lm16l-model-lcd

termometre-lcd-sicaklik-goruntusu

LCD 2 numaralı bacağına bağlı +5V gerilim ile beslenmektedir. 1 numaralı bacak ise nötr hat bağlanmıştır.

Projemde mikro kontrolör ile LCD arasında 4 bitlik haberleşme söz konusudur dolayısıyla çıkış tarafında port b 37-38-39-40 olmak üzere 4 bacak LCD’ nin 11-12-13-14 numaralı b ( D4 D5 D6 D7) bacaklarına ayrı ayrı bağlanmıştır. Mikro kontrolörün 36 numaralı bacağı LCD’ nin 6 numaralı E(enable signal) bacağına, mikro kontrolörün 35 numaralı bacağı ise LCD nin 4 numaralı RS bacağına bağlanmıştır. Yukarıda bahsettiğimiz 37-38-39-40 bacakları haberleşmeyi sağlamak için kullanılırken 35 ve 36 numaralı bacaklar kontrol amaçlı olarak bağlanmıştır ve LCD nin çalışmasını sağlamaktadırlar. 5 ve 3 numaralı bacaklar kullanılmadığı için topraklanmıştır.

• Tüm bunlara ek olarak;

Potansiyometre ile Lcd’nin parlaklığını değiştirmek mümkündür.

Mikro kontrolör 20 MHz rezonatör ile çalıştırılmıştır.

Ledlerin önüne aşırı akımları önlemek için akım sınırlayıcı 210 ohm’luk dirençler seri olarak bağlanmıştır.

Sistemimizin çalışması için gereken 5 V luk gerilim Adaptörle sağlanmıştır.

İnsan vücudu için uygun sıcaklık aralığı olan 36,5 ile 37 derece arasında vücudun sağlıklı bir sıcaklıkta olduğunu belirtmek için ayrıca yeşil bir led yanmaktadır.

Sonuç : Bu çalışma sayesinde hem vücut sıcaklığını sürekli olarak ölçüp sıcaklığın insan hayatı için tehlike arz eden sınırların altında veya üstünde olması durumunda uyarı veren bir dijital termometre tasarlanırken hem de PIC 16F877 mikro denetleyicisi, LM016L lcd entegresi, DS18B20 sıcaklık algılama sensörü gibi elemanlar ile kullanılan diğer elektronik elemanların yapıları, görevleri, çalışma prensipleri niçin ve nedenleri ile sorgulanmış ve öğrenilmiştir.

Ufak bir deney düzeniği ile elde ettiğimiz projemiz başarı ile çalışmaktadır ve %0.5 gibi ihmal edilebilecek bir hata payına sahiptir. Proje bu aşamada deney amaçlıdır; günlük hayatta daha kullanışlı olabilecek şekilde, aynı program ve yazılımlar kullanılarak daha farklı bir şekilde tasarlanılabilir. Projenin Proteus simülasyonu da yapılmıştır. Yazılan programın kaynak kodu ile proteus dosyası ve bu raporun elektronik ortamdaki versiyonu, faydalanılan malzeme datasheetleri raporla birlikte verilen cd içerisindedir.

Termo metre devre şeması

pic-16f877-ds-18b20-lcd-dijital-termometre

C yazılımı

// Set TEMP_RESOLUTION to the corresponding resolution of your DS18x20 sensor:
//  18S20: 9
//  18B20: 12 (default setting; can be 9,10,11,or 12)
const unsigned short TEMP_RESOLUTION = 12;

const int RES_FACTOR_1[4] = {5000, 2500, 1250, 625};
const unsigned int RES_FACTOR_2[4] = {0x0001, 0x0003, 0x0007, 0x000F};
const unsigned int RES_FACTOR_3[4] = {0x8000, 0xC000, 0xE000, 0xF000};
float alarma;
unsigned temp,temp2,new_temp;
unsigned short  j, RES_SHIFT,j2;

void Display_Temperature(unsigned int temp) {
  const unsigned short RES_SHIFT = TEMP_RESOLUTION - 8;
  unsigned int temp_whole, temp_fraction;
  unsigned short i;
  char text[8];

  // Isolate the fraction and make it a 4-digit decimal integer (for display)
  temp_fraction = temp & RES_FACTOR_2[RES_SHIFT - 1];
  temp_fraction = temp_fraction * RES_FACTOR_1[RES_SHIFT - 1];
  //portc = temp_fraction;
  // Handle the whole part of temperature value
  temp_whole = temp;

  // Is temperature negative?
  if ((temp_whole & 0x8000) != 0u) i = 1;  // Yes, i = 1
  else i = 0;                              // No,  i = 0
//  PORTC = i;
  // Remove the fractional part
  temp_whole >>= RES_SHIFT;

  // Correct the sign if necessary
  if (i) temp_whole |= RES_FACTOR_3[RES_SHIFT - 1];

  //portd = temp_whole;
  IntToStr(temp_whole, text);  // Convert whole part to string
  Lcd_Out(2, 6, text);         // Print whole part on LCD
  Lcd_Chr_Cp('.');             // Print dot to separate fractional part


  IntToStr(temp_fraction, text); // Convert fractional part to string

  // Add leading zeroes (we display 4 digits fractional part)
  if (temp_fraction < 1000u) Lcd_Chr_Cp('0');
  if (temp_fraction < 100u)  Lcd_Chr_Cp('0');
  if (temp_fraction < 10u)   Lcd_Chr_Cp('0');

  Lcd_Out_Cp(text);            // Print fractional part on LCD

  Lcd_Chr_Cp(223);             // Print degree character
  Lcd_Chr_Cp('C');             // Print 'C' for Centigrades
}//~

void main() {
  ADCON1 = 0xFF;               // Configure RA5 pin as digital I/O
  PORTE  = 0xFF;
  TRISE  = 0x0F;               // PORTE is input
  PORTB  = 0;
  TRISB  = 0;               // PORTB is output
  TRISD=0;
  PORTD=0;
  TRISC=0;
  PORTC=0;

  // Initialize LCD on PORTB and prepare for output
  Lcd_Init(&PORTB);
  Lcd_Cmd(Lcd_CURSOR_OFF);
  Lcd_Out(1, 1, "Sicaklik:   ");

  do { // main loop

    Ow_Reset(&PORTE,2);        // Onewire reset signal
    Ow_Write(&PORTE,2,0xCC);   // Issue command SKIP_ROM
    Ow_Write(&PORTE,2,0x44);   // Issue command CONVERT_T
    Delay_us(120);

    Ow_Reset(&PORTE,2);
    Ow_Write(&PORTE,2,0xCC);   // Issue command SKIP_ROM
    Ow_Write(&PORTE,2,0xBE);   // Issue command READ_SCRATCHPAD
    Delay_ms(400);

    j = Ow_Read(&PORTE,2);     // Get temperature LSB
    j2=j;
    temp = Ow_Read(&PORTE,2);  // Get temperature MSB
    temp2=temp;
    temp <<= 8; temp += j;     // Form the result
    temp2<<=5;
    j2>>=3;
    new_temp=temp2^j2;
    portd=new_temp;
  //   alarma=39;
    alarma=((new_temp*127.5)/255);
    if(((alarma>=36.5)&&(alarma<=38)))  {    //YESİL LED AKTIF
  PORTC.F0=1;
   }

    else  {
    portc.f0=0;}

    Display_Temperature(temp); // Format and display result on LCD
    Delay_ms(500);

  } while (1);

}//~!

Proje dosyaları (isis .dsn .hex .c);

ds18b20-pic16f877-dijital-termometre.rar

  • Serkan

    merhabalar bişy sorcaktım bnm projem var bu termometre devresinde 16F84 ü kullanabilirmiyiz.. yardımcı olursanız sevinirim… zamanım azaldı:( :(

  • emreemix

    olmayabilir sanırım anolog dönüştürücüleri yok :s

  • Mustafa Macit ÖZCAN

    DS18B20 ısı değerini hex olara vermektedir. herhangi bir adc ye ihtiyaç duymamaktadır…

  • samet

    ben devreyi kurdum fakat lcd nin ilk satırı yanıyor fakat 2. satırın ışıkları yanmıyor neden acaba birde bu programda 37.5 değilde 25 yapmam gerekior yaptım fakat hata veriyor derlerken neden acaba öğrenebilirmiyim

  • izafi

    Merabalar

    Tezim için 16f877 ile tek kanaldan rf haberleşme sağlamam lazım. Alıcı ve verici olarak udeanın ATX-34S NRX-34U kullanmayı düşünüyorum. Fakat pic te yeni olduğum ve daha önce rf haberleşmeyle uğraşmadığım için nerden nasıl başlayacağıma bir türlü karar veremedim. microc’un helpinde Manchester Code Library’de verilen kod RF haberleşme kısmında işimi görür mü acaba?

    Bir ikinci sorum ise isiste smilasyonuyla ilgili,microcun library’sindeki devre yeterli olurmu,rf haberleşme için? Cevapları sabırsızlıkla bekliyorum..Teşekkürler

  • pınar

    İyi günler. Ben devreyi kurdum ancak sıcaklık sadece -1.39 derece gösteriyor. 3 farklı sensörü taktığımda dahi aynı görüntüyü alıyorum. Acaba sorun nereden kaynaklanıyor olabilir? Şimdiden yardımınız için teşekkür ederim.

  • houssemus

    hi,, nice work, buddy!!
    i just wanna know if u have the source code in assembly,,
    ps: sorry i don’t understand turkish
    thanks!

  • kdrzkn

    Lcd_Init(&PORTB); satırında Too many actual parameters. hatası veriyor .hex dosyasını oluşturamıyorum.MikroC Pro for PIC 2009 1.65 te denedim. yardımlarınızı bekliyoum.

  • http://320volt.com gevv

    sanırım yazıda verilen kodu direkt kopylayıp kullandınız dosya içindeki kaynak C kodunu kullanın

  • kdrzkn

    dosya içindeki C kaynak kodunu kullandım.Ama olmuyor.

  • onur

    baskı devresi olan koyabilirmi?
    ayrıca bu graundları ve fazları birbirne bağlamayacakmıyız piller nasıl bağlanıcak yazarmısınız ????

  • amari hamza

    code de porte sur l’isis et le pic_c 16F877
    avec clavier

  • ahmete

    arkadaşlar bende bu devreyi kurdum ama derece -1.93 gösteriyor yaptığım yaanlışlık ve düzeltmem gereken nedir??
    yardımcı olabilir misiniz acil lutfen

  • adem

    arkadaşlar yaklaşık 1 metre toprak altındaki sıcaklık ölçmem gerekiyor bunun için bu devreyi kullanabilirmiyim?

  • ceylan

    arkadaslar benim proteus programımda 16f877nin 31 12 11 32 inci uçları yok yani çizimde bu uçları hem topraklayamıyorum hemde gerilim veremiyorum fikri olan var mı?

  • muhammet

    microC de deniyorum ama şu hatayı veriyor (68 324 Undeclared identifier ‘Lcd_CURSOR_OFF’ in expression) sebebi nedir acaba yardım edebilir misiniz?

  • phil

    aynı hata bende de oldu arkadaşım, çözüm buldun mu

  • omerce

    _LCD_CURSOR_OFF olarak yazmalısın

  • omerce

    -(eksi) sonuç çıkaranlar için yazıyorum. MicroC programında pic özelliklerinden Oscillator Selection özelliği “XT” kristal seçilmeli. Kod hatalı yanlış sonuç veriyor. bundan dolayı aşağıdaki kodu kullanabilirsiniz. Küsüratla uğraşamadım sabit değer vermekte. Aşağıdaki kodları uygun yerlerde kullanmanız gerekmekte. Not!! Sanırım 18. satır ile “void main()” fonksiyonu arasındaki kodlardır

    const unsigned short TEMP_RESOLUTION = 12;

    const int RES_FACTOR_1[4] = {5000, 2500, 1250, 625};
    const unsigned int RES_FACTOR_2[4] = {0×0001, 0×0003, 0×0007, 0x000F};
    const unsigned int RES_FACTOR_3[4] = {0×8000, 0xC000, 0xE000, 0xF000};
    float alarma;
    unsigned temp,temp2,new_temp;
    unsigned short j, RES_SHIFT,j2;

    char *text = “00″;

    void Display_Temperature(unsigned int temp2write) {
    const unsigned short RES_SHIFT = TEMP_RESOLUTION – 8;
    char temp_whole;
    unsigned int temp_fraction;

    temp_whole = temp / 2 ;

    text[0] = (temp_whole/10)%10 + 48;
    text[1] = temp_whole%10 + 48;

    Lcd_Out(2, 6, text);
    }

  • hsyin

    devreyi kurdum kristal i 4mhz kullandım LCD de yazıyı goremedım kare kare simgeler cıktı acaba krıstalı 20mhz kullansam sorun hallolur mu ?