ADC ile Gerilim Okuma Yardım!!!

Başlatan artapon, 10 Ocak 2013, 17:43:43

zamzam23

işlemcinin gerilimini sabit tutmakta fayda var. siz, atıyorum 3v6 da gerilimi sabitleyip pic e girin. bu esnada yine batarya gerilimini kontrol edip belirli seviyesinin altında low battery diyebilir istediğiniz pini high yapabilirsiniz.

yazdıgınız if li yapı dogru gözüküyor. ancak adım adım gidelim. adc den dogru ölçüm yaptıgınızdan emin olun. sonra karsılastırmalara gecersınız.daha vref olayını halledemedik galiba.

Okan AKÇA

ccs gibi  dandik ve basit bir derleyicide bunları yapamamak garip

artapon

Alıntı Yapişlemcinin gerilimini sabit tutmakta fayda var. siz, atıyorum 3v6 da gerilimi sabitleyip pic e girin. bu esnada yine batarya gerilimini kontrol edip belirli seviyesinin altında low battery diyebilir istediğiniz pini high yapabilirsiniz.

yazdıgınız if li yapı dogru gözüküyor. ancak adım adım gidelim. adc den dogru ölçüm yaptıgınızdan emin olun. sonra karsılastırmalara gecersınız.daha vref olayını halledemedik galiba.

ewet hocam halledemedim ama üzerinde çalışıyorum halen...

Prof Ahmet Hocam zenerle 2.5V luk bir Vref+ değeri ile ölçüm yapmamın doğru olacağını söyledi. şimdi bende onun üzerinde çalışıyorum hocam...

Alıntı Yapccs gibi  dandik ve basit bir derleyicide bunları yapamamak garip

hocam fikirleriniz varsa o değrli fikirleri bizimle de paylaşırsanız çok sevinirim...
basit ve dandik olabilir ama benim sizin kadar yeterli tecrübem yok. siz arkadaşlarımızın değerli tecrübelerinden faydalanmak istiyoruz. belki bizim yaptığımız hatalrı bir arkadaşımız yapmıştır ve doğru yolu biliyordur diye.... bize de doğru yolu gösterir belkii...

Konuya ilginiz için teşekkürler...
Aldanma İnsanların Samimiyetine, Menfaatleri İçin Gelirler Vecde, Vaad Etmeseydi Allah cenneti, O'na Bile Etmezlerdi Secde!   (NFK)

mcan

Vref  ucuna 2.5 volt referans voltajı üreten bir entegre bağla.Lm335 gibi.. Yanlız ref ve vdd arasındaki maximum değerlere dikkat et datasheet i iyi oku.

Ayrıca verdiğin koda ve şemaya göre sonucun 25.0 olması gerekiyor.ADC 10 bit yani max değeri 1023, şemada 2 adet 10k direç var gerilim bölücü olarak orta noktada pil geriliminin yarısını görmen gerekir. vref pil gerilimine eşit ozaman ADC den okuman gerekn değer 1023 ün yarısı , 511 dersek.Senin matematiksel koduna göre
gerilim=(0.0048875855*(1+511))*10;
gerilim=(0.0048875855*512)*10;
gerilim=(2,5)*10;
gerilim=25,0
5 i nasıl görüyorsun  anlamadım.Yada gece gece ben yanlış düşünüyorum.

artapon

Alıntı YapVref  ucuna 2.5 volt referans voltajı üreten bir entegre bağla.Lm335 gibi.. Yanlız ref ve vdd arasındaki maximum değerlere dikkat et datasheet i iyi oku.

Ayrıca verdiğin koda ve şemaya göre sonucun 25.0 olması gerekiyor.ADC 10 bit yani max değeri 1023, şemada 2 adet 10k direç var gerilim bölücü olarak orta noktada pil geriliminin yarısını görmen gerekir. vref pil gerilimine eşit ozaman ADC den okuman gerekn değer 1023 ün yarısı , 511 dersek.Senin matematiksel koduna göre
gerilim=(0.0048875855*(1+511))*10;
gerilim=(0.0048875855*512)*10;
gerilim=(2,5)*10;
gerilim=25,0
5 i nasıl görüyorsun  anlamadım.Yada gece gece ben yanlış düşünüyorum.

hocam displayde gösterebilmek için bilerek öyle yapıyorum..
               birler=gerilim%10;  // birler hanesi hesaplanıyor
               onlar=gerilim/10;   // onlar hanesi hesaplanıyor
10 ile çarptığımda mod ve bölme işlemini daha rahat yapabiliyorum...

yeni devre şemam:



Yeni gerilim ölçme kısmı kodları:

               setup_adc_ports(AN0_VREF_VREF); //setup_adc_ports(AN0_VREF_VREF) AN0 girişi analog giriş, Vref+ için RA3 ve Vref- içinde RA2 pini kullanılacak
               setup_adc(ADC_CLOCK_DIV_2);   // ADC clock frekansı Fadc=Fosc/2
               set_adc_channel(0);   // RE0/AN5 ucundaki sinyal A/D işlemine tabi tutulacak
               delay_ms(1);         // Kanal seçiminde sonra bu bekleme süresi verilmelidir
               adcsonuc=read_adc(ADC_START_AND_READ);     // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor

               gerilim=(0.0048875855*adcsonuc)*10; //gerilim=((adcsonuc*5)/1024)*10;// Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor
     
               birler=gerilim%10;  // birler hanesi hesaplanıyor
               onlar=gerilim/10;   // onlar hanesi hesaplanıyor

Aldanma İnsanların Samimiyetine, Menfaatleri İçin Gelirler Vecde, Vaad Etmeseydi Allah cenneti, O'na Bile Etmezlerdi Secde!   (NFK)

mcan

Fakat gerilim 25.0 ise(önceki hesabımdan) , senin hesap gene aynı çıkmıyor mu?
birler=25%10;  // birler hanesi hesaplanıyor , birler = 5
onlar=25/10;   // onlar hanesi hesaplanıyor , Onlar = 2

Ekrana onlarBİRLER şeklinde yazdırıyorsan sonuç gene 25.
Ne değişti ki?

artapon

#21
 Hocam evet dediğim gibi çıkıyor ama araya ben nokta koyuyorum.. aşağıdaki kodda durum daha da anlaşılabilir umarım...

               output_high(display_2);  // 2. display aktif durumda
               display_bilgi(digit[birler]); // displaye bilgi gönderiliyor
               delay_ms(5);             // gecikme veriliyor
               output_low(display_2);   // 2. display pasif durumda
               output_high(display_1);  // 1. display aktif durumda
               display_bilgi(digit[onlar]);  // displaye bilgi gönderiliyor
               output_low(PIN_B4);        //nokta
               delay_ms(5);             // gecikme veriliyor
               output_low(display_1);   // 1. display pasif durumda 

mesaj birleştirme:: 10 Ocak 2013, 22:41:32

maalesef hala gerilim sabit nerde hata var bir türlü anlayamadım...
Aldanma İnsanların Samimiyetine, Menfaatleri İçin Gelirler Vecde, Vaad Etmeseydi Allah cenneti, O'na Bile Etmezlerdi Secde!   (NFK)

emregenc

#22
hocam devre dosyasını ve yazılımı dosya olarak paylaşırsan
bilgisayarda düzenleyelim o şekilde yardımcı olalım

artapon

Alıntı Yaphocam devre dosyasını ve yazılımı dosya olarak paylaşırsan
bilgisayarda düzenleyelim o şekilde yardımcı olalım

hocam hallettim teşekkür ederim ilginize...

yakında programı ve devreyi tam olarak burada paylaşacağım...
Aldanma İnsanların Samimiyetine, Menfaatleri İçin Gelirler Vecde, Vaad Etmeseydi Allah cenneti, O'na Bile Etmezlerdi Secde!   (NFK)

artapon

sorun Çözülmüştür İlginiz ve Yardımlarınız için TEŞEKKÜRLER...

Problemin Giderilmiş Durumu...

https://www.picproje.org/index.php?topic=44565.msg327916;topicseen#msg327916
Aldanma İnsanların Samimiyetine, Menfaatleri İçin Gelirler Vecde, Vaad Etmeseydi Allah cenneti, O'na Bile Etmezlerdi Secde!   (NFK)