12f675 akım sensörü

Başlatan oguztkn, 30 Ağustos 2014, 01:15:31

oguztkn

Arkadaşlar elimde acs714 +-5 amper akım sensörü var.Bu devre ile bir motoru 3 ampere dayanınca röle ile kesmek istiyorum.Bu sensör 2.5 volt referans voltajı var akım yönüne göre + yada - yönde voltaj arttırımı yada eksilimi yapıyor.ekteki programda sensörü 3 amper de algılamasını sağladım ama devredeki röle sürekli aç-kapa yapıyor yani kararsız çalışıyor şema ve program ekte önerilerinizi bekliyorum....

Şimdiden Teşekkürler.....

@ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF
;*****************************************************************
ADCON0=%10000001 '7. bit 1 yapıldı 10 bit sonuç almak için.
ANSEL=%00110001 'AN0 PİNİ ANALOG GİRİŞ
CMCON=%00000111
INTCON=0
OPTION_REG=0
;*****************************************************************
DEFINE	ADC_BITS	10	
DEFINE	ADC_CLOCK	3	
DEFINE	ADC_SAMPLEUS 20
DEFINE OSCCAL_1K 1 
;*****************************************************************
TRISIO=%00000001
HAM    var word
AKIM   var word
TOPLAM var word
x      var byte
y      var byte
z      var byte
;*****************************************************************
low GPIO.2
low GPIO.4
x=0:y=0:z=0
clear
pause 300 
;*****************************************************************
high GPIO.4:high GPIO.2
pause 100
low GPIO.4:low GPIO.2
pause 100
x=0:akim=0:toplam=0
Basla:
  gosub oku
  while akim>455 and akim<575
  low GPIO.4
  low GPIO.2
  gosub oku
  wend
  while akim=>580
  high GPIO.4
  high GPIO.2
  gosub oku
  wend
  while akim=<450
  high GPIO.4
  high GPIO.2
  gosub oku
  wend
  goto basla
oku:
    toplam=0
    for x=1 to 10
    adcin 0,ham
    toplam=toplam+ham
    next
    akim=toplam/10
    return  
end 



OG

#1
Bu bolumu değiştirerek denermisin

Basla:
pause 1  ''' bir miktar bekleme koymak iyidir.
  gosub oku

  if akim>455 and akim<575
  low GPIO.4
  low GPIO.2
  goto basla
  endif


  high GPIO.4
  high GPIO.2

goto basla

mesaj birleştirme:: 30 Ağustos 2014, 02:07:25

Ayrıca açma kapama anındaki akımın yükselme ve düşme geçiş bölgelerini ölçüyorsundur, bu durumda kararsızlığa neden olur. Pause değeri ile oynarsan faydası olabilir.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Maxim

role acma kapama esnasinda asiri akim dalgalanmalari oluyor olabilir.
bu da akim sensoru cikisinin dalgalanmasi demek.

semada adc girisinde hic filtre yok
seri bir 10k direnc ekleyin ve islemci tarafina 1uf kondansator koyun, ben olsam oyle yapardim.

tabi en dogrusu scop ile baknak.

bu arada kod bence biraz tuhaf

oguztkn

adc girişine seri 4.7k koydum pic tarafınada 1mf koydum sorun şu devre aslında çalışıyor gibi ama çok hızlı olduğundan 3 amperi görüdüğünde devreyi kesiyor ama hemen açınca tekrar kesiyor bu seferde motor kalkınma anında fazla çektiğinde bu iki aralık ta kalıyor.Acaba bunu nasıl bir algoritma ile engelleyebilirim kodları tamamen de değiştirebilirim her türlü öneriye açığım

OG

Basla:
pause 100 ''' bir miktar bekleme koymak iyidir, bu süreyi yavaş yavaş arttırarak dene.
  gosub oku

  if akim>455 and akim<575
  low GPIO.4
  low GPIO.2
  goto basla
  endif


  high GPIO.4
  high GPIO.2



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