877A ile birden fazla lm 35 ısı sensörü verisi alma

Başlatan stk4221, 31 Ağustos 2016, 23:34:14

stk4221

kolay gelsin arkadaşlar
pıc konusunda yeniyim. aracım için ısı sensörü çalışması yapıyorum. 1 adet lm 35 ile ısıyı okuyup ekrana lcd (16x2)  yazdırdım. fakat veri almak istedigim 5 nokta daha var.  1 lm 35 için yazılmış  kodlarda sensör  sayını arttırdıkca   nasıl bir degişiklik yapabilirim.  serdar çicek in kitabından faydalandım
  ( telafuzda lısan bozukklugu afola)   
#include <test 5 coklu lm.h>

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)
#use fast_io(a)


#define use_portb_lcd TRUE
#include<lcd.c>
unsigned long int bilgi;
float voltaj,sicaklik;



void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);

set_tris_a(0X01);
setup_adc_ports(AN0_AN1_AN2_AN3_AN4_AN5);
setup_adc(adc_clock_div_32);

lcd_init();
set_adc_channel(0);

delay_us(20);
printf(lcd_putc,"\fsicaklik=");

while(1)
{
bilgi=read_adc();
voltaj=(0.0048828125*bilgi)*1000;

sicaklik=(voltaj/10)+2;
lcd_gotoxy(10,1);
printf(lcd_putc,"%5.1f'C",sicaklik);
delay_ms(100);

 


  }
}

eeburakdemir

selam,
set_adc_channel(); fonksiyonu okuma yaptığınız kanalı init eder yani hazır hale getirir. Sizde bu kanaldan daha sonra okuma işlemi yaparsınız. Bu yüzden okuma yapacağınız kanalı init edip ardından tek kanaldan nasıl okuma yapıyorsanız aynı şekilde okuma işlemini gerçekleştireceksiniz.
kolay gelsin.
Asla pes etme...