ADC'nin Referansı

Başlatan hasanuslu, 23 Mayıs 2005, 19:37:44

hasanuslu

16F877'de ADC kullanmak istiyorum
bunun için 10 kanal ADC kullanıyorum...
referansı hangi voltaja göre ayarlanabilir
sadece besleme gerilimine göremi bunu biraz anlatabilirmisiniz
çok acil teşekkür ederim

uysali

16 f 877 nin türkçe datasheet'i burda buradan bulabilirsin :)

http://rapidshare.de/files/1935630/_16F877tr.pdf.html

başarılar :)

Erol YILMAZ

@hasanuslu
10 bit demek istedin heralde. Ayrica istersen ayri bir pinden referans gerilim verebilirsin-ki 10 biti  hakkiyla kullanacagim diyorsan referansi beslemeden değil, ayri pinden al derim.
Boylece o beslemeyi kullanan diger elemanlarin enerji ihtiyaclarindan etkilenmezsin. Sase de onemli.
Hatta hatta kullanilan 16 bit ADC, kartina gore manali olarak 10 - 12 - 13 bitlik ADC cevabi uretebiliyor.

quack

16F877 kendi icinde maksimum 8 analog kanalı 10 bit dijitale cevirecek ADC ye sahip. Besleme gerilimini kullanırsan bu 8 kanalıda kullanman mümkün. bu benim tercihim. + ref icin bir kanaldan - ref icin ikinci kanaldan vazgecmelisin kanal sayın düser yani. datasheeti iyi okursan yanılmıyorsam pic icin referans geriliminide -5 0 +5 V arası vermeni tavsiye ediyor... yani - ref kullanmayacaksan besleme gerilimi bence en ideali...ekstra kaynaktan kurtarır seni.. erolun dedigine katılmıyorum... bir 7805 ve uygun devre sana yeterli beslemeyi saglıyor...su an üzerinde ugrastıgım devrede bu sekilde kullanıyorum. .

psiko

Alıntı yapılan: "hasanuslu"16F877'de ADC kullanmak istiyorum
bunun için 10 kanal ADC kullanıyorum...
referansı hangi voltaja göre ayarlanabilir
sadece besleme gerilimine göremi bunu biraz anlatabilirmisiniz
çok acil teşekkür ederim

ADCON1 register'ından ayarlayabiliyorsun referans gerilimi seçimini. datasheet'ini aç bak. orda ADCON1 register'ını nasıl ayarlayacağını çok güzel gösteriyor.

hasanuslu

Özellikle verdiğniz bilgiler için tsk ederim şiimdiki sorum özellikle erola
erol, 10 bit 1023'e karşılık geliyor ben ADC çıışını LCDye versem
5/1023 değerinde bir artış gözlermiyim...Bana bu çevrim işlemini açarmısın..Bilen arkadaşlarda yazabilir teşekkürler

bmutlu

Adc referansını 5 v secersen bunu gorursun daha hassas okumak istersen referan değerini dışarıdan verip daha hassas okuma yapabilirsin. Örneğin ADC max degerin 2v olsun sen de ref. degerini 2 v girersen ADC de okudun değer 2v karşılık gelen 1203 degeri olur.

Erol YILMAZ

@hasanuslu
ADC nin isi zaten bolup vermektir.
Ref. gerilimini 5.12 Volt verirsen LSB bitin 5 mV u temsil eder. Yani her 5 mV ta ADC sonucun 1 artar. (5.12V/1024) = 5 mV

ADC cikisini LCD ye aktarirsan tabii ki degisimleri gorebilirsin.

hasanuslu

Verdiğiniz bilgiler için tsk ederim
erol, 10 bit hepsi 1 olduğunda değer 1023 olmaz mı?
bir karışıklık var...
dışardan nasıl vereceğim hangi pine bağlamalıyım ve
pic'e nasıl anlatacağım hangi pine bağladığımı bir örnek verebilirmisin!
yardımların için tskler
iyi çalışmalar....

Erol YILMAZ

@hasanuslu

Bu konular datasheet inde ayrintili olarak anlatiliyor.
Veya CCS orneklerinden birini dahi incelesen sonuca gidebilirsin

#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

void main()
{

   int value;

   setup_port_a( ALL_ANALOG );
   setup_adc( ADC_CLOCK_INTERNAL );
   set_adc_channel( 0 );

   value = Read_ADC();

   printf(" Value: %2X ",value);

}


Burada en basit okuma islemi var. ADC yi oku ve RS232 den gonder...
Bu fonksiyonlar sana yol gosterecektir. Ayrintili bilgi almak istersen 16F877.h dosyasini incele, baska ne gibi seceneklerin varmis, onlari da gorursun. Yardimci olabilmisimdir heralde.

hasanuslu

erol burada rs232den gönderme komutu hangisi
ben bunu herhangi bir dil ile örneğin c# veya vusual basic ile alabilirmiyim bu konu öğrenmek istediğim bir şeydi yardım edersen sevinirim...
yardımların için tsk ederim

quack

printf(" Value: %2X ",value); gönderme komutu
ör:  printf("Değer : %4X,1234);
bu komut 1234 değerini uygun parametereye göre (%4X) arka arkaya seri porttan gönderir. ancak pic c icinde bu parameterelere dikkat etmen lazım...
vb de mscomm objesi var ... bunu vb de herhangi bir forma ekleyip daha sonra ayarlarını yapman lazım da bu forumlarda o başlık altında daha detaylı hali var sanırım...
neyse gelen veri inbuff (vb de buffer) oraya aktarılıyor sende onu görüntülüyorsunda...
hevesini kırmak istemem ama işin çok zor .. bence ilk olarak pic c yi öğrenemeye ve proteusta adc denemeleri yapmaya çalış sonra seri iletişime geçersin