Değişken SKALALI analog giriş .

Başlatan Maxim, 08 Mayıs 2007, 16:51:00

Maxim

ben 16F876 10bit analog giriş kullanıyorum .
0 volt raw data =0
5 volt raw data =1023

fakat giriş 0 ile 5 volt arasında değil !

örnek :
0.25 volt ile 4.7 volt arasında olacak ,
ama ben lcd ekranda 0 ile 100 arasında bir rakam görmek istiyorum ,
yani girişe 0.25 volt geldiğinde ekranda 0
girişe 4.7 volt geldiğinde ise 100 görmek istiyorum .

Ben girişi öteleyerek 4.7 volt geldiğinde (raw olarak "961" ),
ekranda 100 görüyorum ama 0.25 geldiğinde bu sefer 0 olamıyor minimunm değer ..

? ne yapılabilir ?

mp3dragon

yazılımsal olarak 0.25 volt altını "0" 4.7 volt üstünü "100" gösterebilirsin.
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

ete

0,25V değerine karşılık okuyacağın HAM değer 51 olacaktır.
Buna karşılık 4,5V değerine karşılık okuyacağın değerde 921 olacaktır.
Bu durumda senin hesaplamalarına esas olacak değer;
921-51 = 870 olacaktır.
Bu değer senin 100 birimlik değerine karşılık gelen ADC değeri olacaktır.
Bir birim okumaya karşılk gelecek değer ise;
100/870 = 0,1149 gibi bir değerdir. Küsurattan kurtarmak için bu sayıyı 256 ile çarpalım  0,1149 x 256 = 29,4 gibi bir rakam buluruz.
Bu durumda sen okuduğun ham değerden 51 'i çıkartıp kalanı  29,4 ile çarpıp 256 ya bölersen yüzde değerini bulmuş olacaksın. Deneyelim.
Okuduğun değer 921 olsun (100'e karşılık gelecek olan değer).
Yüzde=((ham+1)-51)*294/256*10 =100 çıkacaktır.
Bunun pic de kullanılacak formül karşılığı şöyle olmalıdır;
Yüzde=(((HAM+1)-51)*/294)/10

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

pcb

#3
BASLA:
  DelayMs   200
  OKU=ADIN  0
  OKU2=1023/5000    '1mV okuma değeri
  X=OKU/OKU2          'adın in okuma değerine karşılık gelen mV değer

IF   OKU>51 AND OKU<961    THEN  HESAP
GOTO  BASLA   

HESAP:
  A=X/45   
  'BURAYA EKRANA YAZDIRMAK İSTEDİĞİNİZ SATIRI-KODU VE A DEĞERİNİ BURAYA YAZACAKSINIZ, KULLANDIĞINIZ EKRAN ÇEŞİDİNİ BİLMİYORUM'   
  GOTO  BASLA

İstediğiniz 0.25V ile 4.7V arası 0-100 arası ekrana yazdırılması.  45 rakamı ise 0-100 arası her rakam için kaç mV'da 1 fazla değer alması gerektiğidir.

Maxim

cevaplar için sağolun ,
özellikle ETE usta çok teşekkür ederim sana .