Alarm Sesi

Başlatan onurinci, 08 Şubat 2014, 00:14:32

onurinci

hocam yine bir şey yapmaya çalıştım ,Aksaktimur çalıştı.
kısaca prensip
Adcin 0' da bir pot var 0...ila 5 volt arası geziniyorum,bu esnada üretilen ses Adc oranı kadar
sıklaşıp azalıyor.metal dedektörü sesi yada oto geri park yardım sensoru gibi düşünebiliriz
objeye yaklaştıkça ses sıklaşıyor.
benim pot ters çalıştı gnd'ye yanaşırken sıklaşıyor oysa ben Vcc'ye yanaşır iken sıklaşmasını istiyorum.
ADCON0 satırını silersem çalışıyor fakat istediğim gibi değil ters oluyor bu noktada desteğinize ihtiyacım var saygılar..

@ Device PIC12F675,WDT_OFF,PWRT_ON,PROTECT_OFF, CPD_OFF,MCLR_OFF,BOD_OFF,INTRC_OSC_NOCLKOUT
DEFINE OSC 4
DEFINE OSCCAL_1K 1


Define ADC_BITS  8 ' Set number of bits in result
Define ADC_CLOCK 3 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS

TRISIO=%000001 :GPIO=0
ANSEL=%00000001    ' Set AN0 analog
ADCON0=%10000000      'right justify results, Vref = VDD, channel 0
CMCON=7

adval var byte ' Create adval to store result

      Pause 500 ' Wait .5 second 500
Start:

      ADCIN 0, adval    ' Read channel 0 to adval
      Pause adval*10    ' Wait .1 second
      FREQOUT GPIO.1, 500, 650

      Goto Start  ' Do it forever
End


http://s3.dosya.tc/server17/Crztre/12F675AdcBeep.rar.html

İlyas KAYA

Pause (255-adval)*10    ' Wait .1 second

"Adval" " byte" boyutlu olduğuna göre ve maksimum alacağı değer 255 olduğuna göre, yukarıdaki şekilde komutu düzeltirseniz VCC ye yaklaştıkça süre azalacaktır.

Saygılarımla.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

onurinci

İlyas bey Sağolun varolun.verdiğiniz satırı ekleyip,ADCON0 satırını kaldırınca istediğim gibi çalıştı.Sağolsun Ete hocam bunu açıklamıştı fakat yaş 60'şa dayandı kafada kalmıyor,kalın sağlıcakla.

F®T

hocam potun artı eksi  bağlantısını değiştirirsek aynı sonucu almazmıyız.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

İlyas KAYA

Alıntı yapılan: F.T - 08 Şubat 2014, 11:20:14
hocam potun artı eksi  bağlantısını değiştirirsek aynı sonucu almazmıyız.

Olaya yön olarak baksaydık doğru, aynı işlemi görürdü.
Saat yönüne çevirdiğinde pot kıssın, saat yönün tersine çevirdiğinde açsın gibi.

Ancak burada VCC ye yaklaştığında kıssın dendiği için bu yöntem işe yarıyor.
Basılmış bir PCB de de bu basit işlem kurtarıcı olacaktır.

Saygılarımla.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

F®T

haklısınız ben vcc olayını kaçırmışım.hayırlı günler.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

onurinci

hocam yukarıda yaptığım devre sağlıklı çalışmadı.

bende tekrar denedim,adc 'ye istediğim çalışma aralığınını verdim ,kabaca çalıştı.

1'nci sorun pot 0 da ise ses yok ,orayı sonradan ben sessizleştirdim,potu azıcık yürütünce geliyor.
başlarken 0 değeri verdim ondanmı diye kaldırdım bir şey değişmedi.

2'nci sorun gecişlerde örnek 50 den 51'e atlıyorum bu iki rakam arasında ses ya kayboluyor yada 2 parametre arasında bocalıyor.arayı üç beş rakam açıncada sessizlik problemi çıkıyor.

kısaca maksadım 2 metal plak birbirine yaklaşır iken sesin frekansı sabit peryodun değişmesi gerekiyor.

örnek aldığım kapasitif sensor 200mv 2500mv arası bir çıkış veriyor.bir MCP6002 rail in rail out opamp'tan geçirip offset'i 0 'ra çektiğimde üst taraf bozuluyor.

kısacası opampı devreden çıkarıp,if komutları ile yapmam gerekiyor bu konuda takıldım hocam matematik operatorleri ile çözüm aradım olmadı hocam.saygılar.

http://s3.dosya.tc/server18/b0e4qg/monitor.rar.html


@ Device PIC12F675,WDT_OFF,PWRT_ON,PROTECT_OFF, CPD_OFF,MCLR_OFF,BOD_OFF,INTRC_OSC_NOCLKOUT
DEFINE OSC 4
DEFINE OSCCAL_1K 1
CMCON=7

Define ADC_BITS  8 ' Set number of bits in result
Define ADC_CLOCK 3 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS

TRISIO=%000001 :GPIO=0
ANSEL=%00000001

       
adval VAR BYTE
adval=0


Start:
    PAUSE 100
    ADCIN 0, adval
IF adval > 000 and adval < 050  THEN FREQOUT GPIO.1,999,0
IF adval > 051 and adval < 100  THEN FREQOUT GPIO.1,500,650
IF adval > 101 and adval < 150  THEN FREQOUT GPIO.1,250,650
IF adval > 151 and adval < 200  THEN FREQOUT GPIO.1,100,650

    GOTO Start

END

onurinci

Hocam bir fikriniz varmı ?

ete

#8
Aşağıdakini bir dene istersen.
@ Device PIC12F675,WDT_OFF,PWRT_ON,PROTECT_OFF, CPD_OFF,MCLR_OFF,BOD_OFF,INTRC_OSC_NOCLKOUT
DEFINE OSC 4
DEFINE OSCCAL_1K 1
CMCON=7

Define ADC_BITS  8 ' Set number of bits in result
Define ADC_CLOCK 1 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 30 ' Set sampling time in uS

TRISIO=%00000001 :GPIO=0
ANSEL =%00000001
ADCON0=%00000000
GPIO=0

Adval VAR word 56
adval=0

Start:
    PAUSE 100
    ADCIN 0, adval
    adval=255-adval:IF ADVAL<30 then adval=30
    FREQOUT GPIO.1,adval,650
    GOTO Start


Ete

onurinci

Hocam sağolun denedim bir önceki devre ile pek fark yok.ikinci yapmaya çalıştığım if şartları ile yaptığım tam istediğim gibi çalışıyor.kusuru ise şartlar arasındaki minicik boşlukta ses kesiliyor.
buna bir yöntem geliştiremedim.

Powered by EzPortal