12f675 ile ADC kullanmak.

Başlatan futureng, 06 Ekim 2008, 10:28:21

futureng

Merhaba arkadaşlar. Uzun uğraşlar sonucu 12f675 ile ADC kullanımı hakkında TEMEL bir çalışma yaptım. sisznle paylaşmak istiyorum.

Burada yaptığım kodlama pic 12f675 in, istenilen bacağından Analog voltajı okuyup pic in ne yapacğı hakkında ufak bir çalışmadır.

include 12f675_bert
include pic_general
include 12f675_inc_all
include adc_hardware
include extradelay

pin_a1_direction = output

var byte dataL

forever loop
_ADC_read_low_res(0x00, dataL)

if dataL >= 52 then pin_a1 = low end if

if dataL <= 52 then pin_a1 = high end if

end loop


include larla gerekli kürüphane dosyaları eklenir.
_ADC_read_low_res komutunda 8 bitlik okuma yapılacaktır.
0x00 = Hangi kanaldan (bacaktan) bilgi okunacağı.
dataL = Bilginin aktarılacağı sabit (buradaki bilgi hex kodundadır.)

if komutları da şudur:

Eğer gelen bilgi 52 den büyükse a1 bacağı low olsun.
Eğer gelen bilgi 52 den küçükse a1 bacağı high olsun.


52 sayısı 1V a denk gelmektedir.

8 bit hassasiyet 256 demektir. (Referans default volt 5V tur.)

256/5 = 51,2  yani 1V = 52 değerine tekabül ediyor.

Umarım faydalı bir bilgi olur.

NOT: Kütüphane dosyalarını isteyenler benimle irtibata geçebilir. Daha sonra linki ekleyeceğim.
GimpTR.COM: Hayal Gücünüzün Gerçek Dünyadaki Görünüşü  http://www.gimptr.com

omasis

Arkaşım çok faydalı oldu. Çok teşekkür ederim

toyo

Gelirken ne getirilir ki giderken ne götürülür.

OG

Alıntı Yap
8 bit hassasiyet 256 demektir. (Referans default volt 5V tur.)

256/5 = 51,2  yani 1V = 52 değerine tekabül ediyor.

Küçük düzeltme;

256 çözünürlüğe sahip ama bu 0 değeri ile beraberdir ve max değer 256 değil 255 olur. O sebeple hesapları 255 değeri üzerinden yapmanız gerekir. 256 dediğiniz anda 9. bite geçmiş olursunuz ki 8 bit çalışma için  9. bit yalnızca =1 demektir.

Benzer şekilde 10 bit için de 0-1023 değerleri işlenir.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.