Analog okumada giriş voltajını kalibre etme

Başlatan dyonizos, 26 Ağustos 2014, 20:52:32

dyonizos

selam arkadaşlar,
Analog girişi okumak istediğim bir pic te dısarıdan gelen giriş voltajı minimum 0.5V ve maximum 1.2V
ben analog okuma yaparken bunu nasıl analog okuma sonucunu 0-1024 arasında olacak şekilde kalibre edebilirim. Yani 0.5V da okuma değeri 0 ve 1.2V da 1024 olacak şekilde.
Bu konuda yardımcı olursanız sevinirim.
Teşekürler


Device 12F683
Config INTRC_OSC_NOCLKOUT,FCMEN_OFF,IESO_OFF,CPD_OFF,CP_ON,BOD_OFF,MCLRE_OFF,PWRTE_ON,WDT_OFF      
Declare Xtal = 8
        
OSCCON = %01110001 ' Internal 8MHz osc  
CMCON0 = %00000000

TRISIO = %0001111
ANSEL = %01110011


Declare Adin_Res = 10 ' 8-bit result required
Declare Adin_Tad = FRC ' RC oscillator chosen
Declare Adin_Stime = 50 ' Allow 50us sample time

Dim hREC1V As Word



START:

hREC1V= ADIn 0

Goto START

Kabil ATICI

Üst sınır için Vref (6 nolu bak)bacağından ölçebileceğin maksimum gerilimi girersen adc otomatik olarak maks gerilim'de 1024 adıma ölceklenir. Örneğin maks=1.2V  ADC ayarların harici vref giriişini ayarlaman gerekir.
Burada referans geriliminin çok kararlı olması gerekir yoksa sonuçlar dansöz gibi kıvırır.
ambar7

Erol YILMAZ

Önce kağıda bir tane sabit eğimli doğru çiziyorsun...

Alt tarafta 0 - 0.5 - 1.2V noktalarını işaretliyorsun... fln,

Öncelikle okuduğun V nin sınırlar dahilinde olup olmadığını test et, ondan sonra da bu formülü çalıştır.
Bir sonuç çıkacaktır, onu da test edersin artık :))


dyonizos

Referans voltajı o kadar stabil verebilecek bir devre değil malesef kullandığım.
Formül olarak işlem yaparken bu formülü nasıl kullanıcam. Analog değeri okuduğum zaman zaten bana 0-1023 arasında bir değer vermiş oluyor voltaj değeri ile ilgili işlemi nasıl yapabilirim?
Normail voltajın (besleme) 5V olduğunu düşünürsek
0.5 minimum değer için yaklaşık 102 gibi bir değer alıyor olucak zaten.  1.2V içinde yaklaşık 245
Bu durumda sanırım formülü şu şekilde uygularsam olur gibi geliyor, yanılıyormuyum?

Kal = (OkunanDeger - 102) * 7.15


OG

0,5V --> 102
1,2V --> 245

Değişim aralığı = 245 - 102 = 143 birim
143 birim senin max değerin yani 1023 olması lazım.

Oran = 1023 / 143 = 7,15

Algoritması
dwd_1  -- dword
okunan -- word
w_1 -- word

adc oku (deger okunan  değişkeninde)
w_1 = okunan - 102   '' ofset kaydırdık alt değeri sıfıra cektik.
dwd_1 = w_1 * 715   '' float işlemden kurtulmak için basit yontem
okunan = dwd_1 / 100  '' sonucun bu

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.