Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

adc-ptc

Başlatan kareli, 26 Nisan 2016, 18:50:56

kareli

Kolay gelsin arkadaşlar, bu uygulamada pot yerine ptc kullanmıs olsaydım eğer. ptc nın bellı aralıklarındakı degerlerın karsılıgı olan sıcaklık degerlerını kendım tanıtmıs olsam ve ptc yı ısıttıgımda o degerınde lcd de goruntulenmesını ısteseydım hangı adım ları uygulamam gerekır dı  .
ilk once sunları eklerdım;
#device use_portb_lcd true

lcd_init();

printf(lcd_putc,"\fsıcaklık olculuyor..");

gibi tabı bunun oncesınde kusurat var ıse float cınsınden deger tanımlamam gerekırdı

#include <main.h>
//#use fast_io(a)

#byte portb=6
#bit rb0=6.0
#bit rb1=6.1
#bit rb2=6.2
#bit rb3=6.3
#bit rb4=6.4
#bit rb5=6.5
#bit rb6=6.6
#bit rb7=6.7
#byte trisb=0x86

int deger;
void main()
{trisb=0;
portb=0;
setup_adc(adc_clock_internal);
setup_adc_ports(all_analog);

   while(1)
   {set_adc_channel(0);
   delay_us(10);
     deger=read_adc();
     output_bit(pin_b0,deger>0);
     output_bit(pin_b1,deger>32);
     output_bit(pin_b2,deger>64);
       output_bit(pin_b3,deger>96);
       output_bit(pin_b4,deger>128);
       output_bit(pin_b5,deger>160);
       output_bit(pin_b6,deger>192);
       output_bit(pin_b7,deger>224);
       }

}

'Bırakın bugün onların olsun: ama uğrunda çok uğraştığım gelecek, benimdir' Nikola Tesla.

dursuncemal

ntc, ptc gibi elemeanlarin hesaplama yapmadan degerlerini okumak cok zor.verileri tablo haline getiren programlar var sahsen ben bir kac deneme yaptim acikcasi basaramadim.'ntc calgulator'diye arama yapip biraz arastirma yaparsan belki sen basarirsin.bunun yerine cikislari linear olan lm35 veya mcp9700 kullanabilirsin.
:=

kareli

dursun abı ben sadece belli aralıkta ki değerleri kendım tanıtıp lcd te aktarıcam dogrulugu onemlı degıl ornegın ptc ısttım 50k ya geldı 50k dakı degerı 10 c olsun veya hafıf soguyunca bellı aralıkta 5 c olacak gıbı ..
bırde abı burda ben b portunu tanıttım ama dongu ıcerısıne rb0 veya rb1  dedgımde olmadı neden
'Bırakın bugün onların olsun: ama uğrunda çok uğraştığım gelecek, benimdir' Nikola Tesla.

dursuncemal

iyide abisi  boyle bir yazim sekli yokki              output_bit(int16 pin, int1 level); >> fonksiyonu  sadece cagrilirken 2 adet  degisken paramaetresi  var bunlardan birtanesi port( 16 bit portun adresi , bir tanesi pin bir bit 0 yahut 1: 2. bitlerine kadar tanimladigim port b yi neden hala  output_bit(int16 pin, int1 level); << fonksiyonu ile 1 aktif yada pasif yapiyorsun.? kullanman gereken sekil kisaca su :
if( deger > 0){ rb0 = 1;}//
if( deger > 0){ rb1 = 1;}//
if( deger > 0){ rb2 = 1;}//
if( deger > 0){ rb3 = 1;}//

ve digerleri
..
.
.


#include <main.h>
//#use fast_io(a)

#byte portb=6
#bit rb0=6.0
#bit rb1=6.1
#bit rb2=6.2
#bit rb3=6.3
#bit rb4=6.4
#bit rb5=6.5
#bit rb6=6.6
#bit rb7=6.7
#byte trisb=0x86

int deger;
void main()
{trisb=0;
portb=0;
setup_adc(adc_clock_internal);
setup_adc_ports(all_analog);

   while(1)
   {set_adc_channel(0);
   delay_us(10);
     deger=read_adc();
     output_bit(pin_b0,deger>0);
     output_bit(pin_b1,deger>32);
     output_bit(pin_b2,deger>64);
       output_bit(pin_b3,deger>96);
       output_bit(pin_b4,deger>128);
       output_bit(pin_b5,deger>160);
       output_bit(pin_b6,deger>192);
       output_bit(pin_b7,deger>224);
       }

}
:=

kareli

valahı bole olacagını tahmın etmıstım ama nese .. ben baslıktakıne ypgunlasam abı kolay gelsın ..
'Bırakın bugün onların olsun: ama uğrunda çok uğraştığım gelecek, benimdir' Nikola Tesla.