set değeri

Başlatan behcet.3, 29 Mart 2012, 16:05:57

behcet.3

ete hocanın sayesinde aşağıdaki gibi kod yazdım.yanlız trimpot ile ince ayar yaptığımda set değerine gelince sabit durmayan voltaj olduğunda röleler bir açılıp bir kapanıyor.flip-flop tarzı ne gibi önlem alabilirim yardımlarınız bekliyorum.şimdiden teşekkürler

toplam=0
for v=0 to 59
ADCIN 0,ham
toplam=toplam+ham
pauseus 10
next   
ham=toplam/60     
Volt=(ham */ 1250)/25
 

if (yuksek<=volt) then
high syuksek
else
low syuksek
endif
if (dusuk>=volt) then
high sdusuk
else
low sdusuk
endif
return

ete

#1
Bence kullandığın formülde bir yanlışlık var gibi.
Okunacak en yüksek değer 1023 dür.  Senin formülde yerine koyarsak;
((1023 * 1250)/256)/25 =4995 /25=199 elde edilir. Bence formülü şöyle kullan;
((Ham+1)*/1250)/25
Bu durumda sonuç 200 çıkacaktır.

Normalde 60 defa okuma yapıp ortalamasını aldığında fazla oynama olmaması gerekir.
Tabiiki okuma yaptığın kaynağı bilemiyorum. Kaynaktan  gelen voltaj oynuyorsa elbette oynama olacaktır.
Alınabilecek birinci tedbir ADC pinine önce 10nf bir kondansatör bağlamak ve kondansatörün diğer ucu GND ye bağlı olması gerekir. Şayet değişen bir şey olmaz ise 100 nf ile bir kez daha dene.
Yine değişen bir şey yok ise O zaman okuma adedini 30'a düşürüp okunanları bir diziye atıp ortadan 10 adedini alıp ortalamasını almak en doğrusu olur sanırım. Bu şekilde oynama minimuma düşürülebilir.
İşlem sırası şöyledir.
- SAYI var WORD[30] şeklinde 30 luk bir dizi değişkeni tanımla
- 0 29 arası döngü kur
  FOR I=0 to 29
- Önce 30 adet ADC okuması yap ve her okunanı SAYI isimli dizi değişkenine yerleştir.
ADCIN 0,HAM
SAYI[I]=HAM+1

 
- Sonra dizi içindeki okunan değerleri sıraya diz.
- Sonra sıraya dizilmiş 30 adet ADC değerinden 10-19 arasını al topla ve 10'a böl.
Al sana oynamayacak ADC değeri işte.
Bu anlattıklarımın nasıl olacakları aşağıdaki linkte konu olarak işlenmiş idi.

http://etepic.com/index.php?topic=207.0

Kolay gelsin
Ete

behcet.3

hocam formülü düzelttim.kondansatör mevcut.okuma adedi düşüktü yine aynı problemi yaptığından 60 a yükseltmiştim.bubble sort yöntemini de denedim.kısa kısa pause koydum olmadı.
şöyle birşey düşündüm örnek olarak set değerini 50 ise değer 50 ye  geldiğinde röle atacak  değer düştüğünde ise 48 röleyi bırakacak.belki böyle bir önlem alabilirmiyim veya nasıl yaparım.tesekkürler.

Maxim

Alıntı yapılan: behcet.3 - 31 Mart 2012, 20:56:19
hocam formülü düzelttim.kondansatör mevcut.okuma adedi düşüktü yine aynı problemi yaptığından 60 a yükseltmiştim.bubble sort yöntemini de denedim.kısa kısa pause koydum olmadı.
şöyle birşey düşündüm örnek olarak set değerini 50 ise değer 50 ye  geldiğinde röle atacak  değer düştüğünde ise 48 röleyi bırakacak.belki böyle bir önlem alabilirmiyim veya nasıl yaparım.tesekkürler.

zaten öyle yapmanız lazım
onun adı "histeriz"

isterseniz 500 tane örnek alıp ortalamasını hesaplayın genede o geçiş anında röle çeker bırakır

behcet.3

teşekkürler maxim histeriz olayı için..google bir araştırdım ete hoca bu konuda daha önceden bir arkadasa yardım etmiş ordan yararlandım.teşekkürler ete hocaya.kodlar

if (yuksek<=volt) then high syuksek
if (yuksek-3)>=volt then low syuksek


Powered by EzPortal