Analog okuma sorunu

Başlatan fzf, 27 Ekim 2019, 13:57:13

fzf

Slm arkadaşlar 16f877 analog girişinden değer okuyup okudugum degeri displey ekranında göstermeye çalışıyorum amaç voltaj okumak sorunum şu diyelimki analog girişine pıc beslemesinden direk 5 volt veriyorum displeyde sabit bir rakam görmem gerekirken diyelimki 50 bu sayı hiç yerinde durmuyor sürekli 49-51-47-52 şeklinde oynayıp duruyor voltajın oynadıgını düşünerekten kalem pille deneme yaptım sonuç degişmedi hatta analog girişine hiç birşey baglamadım halde bile ekranda bir deger göstermemesi gerekirken sacma sapan rakamlar gösteriyor bunun çözümüne ilişkin fikri olan arkadaşlardan yardım bekliyorum

Serk@n

Analog değer okumayı hobi devreleri için yapıyorsanız, analog girişi 10K bir dirençle şaseye vermeniz yeterli olur. Daha profesyonel bir işlem yapacaksanız, mikrodenetleyici datasheetinden de istifade ederek;

1. Analog beslemeyi bir bobinle ayırmak,
2. Harici analog referans kullanmak,
3. Yazılımda bazı eklemeler yapmak ,
4. Analog girişi belli bir voltaj seviyesinde sabit tutmak

gibi ilave tedbirlere ihtiyacınız olabilir.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

Serk@n

#2
Hız gerektirmeyen devrelerde yazılımla ilgili yapılabilecek basit işlemler de vardır:

1. Giriş değeri belli sayılarda okunur. Mesela 64 kere... Değerler toplanır ve 64'e bölünür. Bu sayının ikinin katları olması tavsiye ediliyor. Bunu kendim tecrübe etmesem de mantıklı geldi. Neticede dijital elektroniğin temeli iki sayısı ve mikrodenetleyiciler de ikinin katları ile işlem yapıyor.

2. Analog okumalar arasına biraz bekleme yapabilirsiniz.

İyi çalışmalar.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

ete

ADC de okuma ortalaması alma yönteminde toplam sayının 65535'i aşmamasına dikkat etmeliyiz.
Bu konudaki sınır 64 adet dir. Zira okunan değerlerin hepsi 1023 olursa 64x1023=‭65.472‬ sayısına ulaşırsınız buda Word değişkeninin tutabileceği sayı değeri (65535) sınırları içinde olacağı için sorun çıkmaz. Ancak unutmayınki 64 defa adc okumak zaman alan bir işlemdir.
Genellikle 20-30 defa okuma yeterli olabilmektedir.

Her şeyden önemlisi referans voltajınızın sabit ve stabil olması gerekir. Bunun için iyi bir 5V besleme kaynağına ihtiyacınız olduğunu unutmayınız.

Adc okumada gereken stabil sonucu sağlamanın diğer bir yolu da zaman zaman uyguladığım, çoklu okumayı bir diziye sırası ile kayıt edip dizinin ortasından belirli adedi alıp toplayıp ortalamasını almaktır.

Bazen üst üste okumalar yapıp üst üste 2 veya 3 defa aynı okumayı yaparsam okunmuş kabul edip onu kullandığımda olmuştur. Değilse yeniden okuyup istediğimi yakalayıncaya kadar sürdürürüm okumayı.
Elbette her yöntemin kendine göre sakıncaları var. Bu nedenle işinize en yarayanı seçip onu uygulamak gerekir.
Çoğu zaman okumalar tek okumada bile stabil olur. Bunun başlıca sebebi doğru parametrelerin ilgili registerlere girilmesi ve stabil bir ref voltaj kaynağınızın olmasıdır.
Bunu unutmayın.

Ete

fzf

Cevaplarınız teşekkürler sorunun yazılım degil pıc i besledgim lm2575 regüle devresinden oldugunu buldum yerine lm7805 taktıgımda sorunsuz çalışıyor ama neden lm2575 ile bu dalgalanmayı yapıyor ve bunu nasıl çözebilirim bir çok şey denedim sonuç alamadım yardımlarınızı bekliyorum

pic_acemisi

Alıntı yapılan: ete - 27 Ekim 2019, 17:46:15ADC de okuma ortalaması alma yönteminde toplam sayının 65535'i aşmamasına dikkat etmeliyiz.
Bu konudaki sınır 64 adet dir. Zira okunan değerlerin hepsi 1023 olursa 64x1023=‭65.472‬ sayısına ulaşırsınız buda Word değişkeninin tutabileceği sayı değeri (65535) sınırları içinde olacağı için sorun çıkmaz. Ancak unutmayınki 64 defa adc okumak zaman alan bir işlemdir.
Genellikle 20-30 defa okuma yeterli olabilmektedir.

Her şeyden önemlisi referans voltajınızın sabit ve stabil olması gerekir. Bunun için iyi bir 5V besleme kaynağına ihtiyacınız olduğunu unutmayınız.

Adc okumada gereken stabil sonucu sağlamanın diğer bir yolu da zaman zaman uyguladığım, çoklu okumayı bir diziye sırası ile kayıt edip dizinin ortasından belirli adedi alıp toplayıp ortalamasını almaktır.

Bazen üst üste okumalar yapıp üst üste 2 veya 3 defa aynı okumayı yaparsam okunmuş kabul edip onu kullandığımda olmuştur. Değilse yeniden okuyup istediğimi yakalayıncaya kadar sürdürürüm okumayı.
Elbette her yöntemin kendine göre sakıncaları var. Bu nedenle işinize en yarayanı seçip onu uygulamak gerekir.
Çoğu zaman okumalar tek okumada bile stabil olur. Bunun başlıca sebebi doğru parametrelerin ilgili registerlere girilmesi ve stabil bir ref voltaj kaynağınızın olmasıdır.
Bunu unutmayın.

Ete



Hocam merhaba, dizi ile ilgili olan kısım için örnek paylaşabilir misiniz acaba ?

ete

#6
Örnek aşağıdadır
HAM VAR WORD
TOPLAM VAR WORD
OKUNAN VAR WORD[20]
TEMP VAR WORD
I VAR BYTE

PAUSE 200

BASLA:
FOR I=0 TO 19
    ADCIN 0,HAM
    OKUNAN[I]=HAM
    PAUSEUS 10
NEXT

TOPLAM=0
FOR I=7 TO 12
TEMP=OKUNAN[I]
TOPLAM=TOPLAM+TEMP
NEXT
HAM=TOPLAM/6
Bu sistemin avantajı, okumanın daha stabil olduğu ortalardan belirli bir sayıdaki okuma adedini dizi içinden alıp toplayıp ortalamasını almak şeklinde açıklanabilir.
Bu yöntemin bir ilerisi ise okunanları önce büyüklüklerine göre sıraya sokmak sonra aradan belirli bir sayıyı alıp ortalamasını almaktır.
Sıraya sokma örneğini sitede digital filtre konusunda açıklamış idim. Bulup uygulayabilirsiniz.

https://etepic.com/index.php/topic,207.60.html

Ete

pic_acemisi

Alıntı yapılan: ete - 28 Ekim 2019, 07:26:43Örnek aşağıdadır
HAM VAR WORD
TOPLAM VAR WORD
OKUNAN VAR WORD[20]
TEMP VAR WORD
I VAR BYTE

PAUSE 200

BASLA:
FOR I=0 TO 19
    ADCIN 0,HAM
    OKUNAN[I]=HAM
    PAUSEUS 10
NEXT

TOPLAM=0
FOR I=7 TO 12
TEMP=OKUNAN[I]
TOPLAM=TOPLAM+TEMP
NEXT
HAM=TOPLAM/6
Bu sistemin avantajı, okumanın daha stabil olduğu ortalardan belirli bir sayıdaki okuma adedini dizi içinden alıp toplayıp ortalamasını almak şeklinde açıklanabilir.
Bu yöntemin bir ilerisi ise okunanları önce büyüklüklerine göre sıraya sokmak sonra aradan belirli bir sayıyı alıp ortalamasını almaktır.
Sıraya sokma örneğini sitede digital filtre konusunda açıklamış idim. Bulup uygulayabilirsiniz.

https://etepic.com/index.php/topic,207.60.html

Ete

Teşekkür ediyorum hocam bu faydalı bilgi için...

Powered by EzPortal