dmtf out hakkında....

Başlatan sahinler64, 21 Nisan 2012, 20:46:06

sahinler64

herkese iyi akşamlar.
hocam bir konuda daha yardıma ihtiyacım var.sizin yapmış olduğunuz telefonla cihaz kontrolünü yaptım çalıştırdım. bunun üzerinde ufak değişiklikler yapıp telefon hattı üzerinden istediğim 1 veya 2 numarayı arama şansım varmı.
var diye biliyorum. ama nasıl olduğnu bilmiyorum.
dmtfout komutunu biraz inceledim ama pek ilerleme yapamadım.
mesala ben 0123456789 numaralı telefonu aramak istiyorum. bunun için
DTMFOUT PORTA.0,[A,B,C,D]  komutu yeterli gelirmi.
bu konu hakkında kısaca bilgi verebilirseniz çok memnun olacağım....

ete

Ben şimdiye kadar dtmfout komutunu hiç kullanmadım. Ancak öneden okuduğum kadarı ile çok başarılı bir komut olmadığı söyleniyordu. Üstelik komut ancak 20Mhz kristal frekanslarında doğru çalışabiliyormuş. Bu nedenle bu devre ile kullanılmasını pek tavsiye edemeyeceğim.
Komutun kullanım şu şekildedir.DTMFOUT ÇıkışPini,[Çevrilecek  Numara digitleri]
Örnek vermek gerekirse 416 25 77 numaralı telefonu aramak için

DTMFOUT ÇıkışPini,[4,1,6,2,5,7,7] şeklinde kullanmak gerekir.

Bir telefonun aranabilmesi için hattın kapalı olması gerekiyor. Benim sistem bütün fonksiyonları hat açık iken çalışıyor. Bu nedenle bir kere daha bu işe uygun olmadığını söylemek zorundayım. Bu iş için başka bir program yazılması gerekir.

Ete

mg1980

Ete Hocamın anlattığı şekilden sonuç alamazsanız telefon numaralarının belirli tuşlara atanabildiği telefonlardan kullanıp o tuşa bir role ile işlemci vasıtasıyla komuta edebilirsiniz.

sahinler64

O zaman bende ayrı bir devre kuracağım. yine 628a yı kullanarak. araştırdıklarıma göre osc 20 mhz olacak.
birde mg1980 arkadaşım dediğine göre bu şekilde yapamayız. peki biraz açarmısın konuyu. nasıl yapabiliriz.
hertürlü yardıma açığım. çünkü bayadır uğraşıyorum.
bir nevi telefon arama madülü yapmak istiyorum.
yani portx.0 1 yada 0 olduğunda beni yada yazılımda girdiğim numarayı arasın istiyorum.

mg1980

Sayın sahinler64,
Yanlış anlaşılmasın.Ben Ete hocamın yazdığı gibi yapılamaz demedim.Bu şekilde denemedim.Ama anlatmaya çalıştığım gibi bir alarm devresi yapmıştım zamanında.Hatta o devirde daha pic konusunu bilmezken bir başka şekilde yapmış ve uzunca süre kullanmıştım.Bir Panasonic sabit telefondan yararlandım.Beş telefon numarası kaydedip sırayla önce 155 'i, aratıp ses kayıt entegresinde evin adresini
belirten bir hırsız alarmı yapmıştım.Bu cihazda telefonun numara atama butonlarından bağlantılar çıkarıp rolelere komuta ettirdim.
Aslında çok da bilinemeyecek bir şey değil.Herkesin kolaylıkla yapabileceği hele bir pic ile çok daha rahat yapılabilecek bir şey.Kapı açıldığında devre belirli bir zamanla sınırlı olarak kilitleniyor.Önce ahizeyi kaldırma işlemi ardından ilk butona basma bir süre bekleyip
karşı telefonun açıldığını varsayarak ses kayıt entegresindeki kaydın verilmesi peşinden ahizenin kapatılması.Karşı taraf mesajı almış
olsa dahi bunu algılayamadan bir süre sonra ikinci numaranın aranması şeklinde. Saygılar.

sahinler64


MS_59

hocam merhaba
pic ile basit bi alarm yapmak istiyorum evin kapısı açılınca hafızasındaki telefon numarasını aramasını istiyorum
okuduğum kadarıyla daha önce dtmfout komutunu hiç kullamamışsınız 
şimdi diyelimki bu komut çalışıyor fakat ben pic'i telefon hattına nasıl bağlayacağım araya optokuplörlü bi devremi  koyucam bunu bilmiyorum. daha önce böyle çalışması olan varmı
mehmet

ete

Bu işin zor olduğunu düşünmüyorum. Dtmf ile kontrol devreme bakarsa o devre hattan gelen telefonun zilini algılar. İstenilen adet çalınca röleyi çektirerek hattı açar. Sende hat açma olmayacak ama hatta sinyal vereceksin. Aynı deveden yararlanabilirsin.

Ete

onurinci

pwm ile bir örnek buldum ama çalışırmı bilmiyorum çünki çıkışın filitrelenmesi gerkir.
PORTB.1 hattı açıyor,PORTB.2 ve 3 'den seri iki 100nf kapasite ile çıkıp ,kapasitelerin iki ucu birleştirilerek dualtone yapılmış.Proton örneği.

Device 16F628A
Config hs_osc,wdt_off,boden_off,cp_off,lvp_off,pwrte_on,MCLRE_ON
     
Xtal=20
     
Dim INDEX As Byte
Dim VAR1  As Byte
Dim TONE1 As Word
Dim TONE2 As Word
     
All_Digital TRUE
     
Output PORTA
Output PORTB
TONE1=1000
TONE2=1000
PORTB=0
PORTA=0

'-------------------------------------------------------   
      DelayMS 1000
     
      Set PORTB.1       'hattı aç
      DelayMS 1500
     
For INDEX=0 To 10     
VAR1 = LookUp INDEX , [ 1,2,3,4,5,6,7,8,9,0,1]  'çevrilecek numara
Select VAR1
  Case 0
TONE1=992 : TONE2=1405
  Case 1
TONE1=733 : TONE2=1269
  Case 2
TONE1=733 : TONE2=1405   
  Case 3
TONE1=733 : TONE2=1554
  Case 4
TONE1=809 : TONE2=1269
  Case 5
TONE1=809 : TONE2=1405
  Case 6
TONE1=809 : TONE2=1555
  Case 7
TONE1=899 : TONE2=1269
  Case 8
TONE1=899 : TONE2=1405
  Case 9
TONE1=899 : TONE2=1555
End Select
       
      Sound2 PORTB.3 , PORTB.2 , [TONE1 \ TONE2 \ 350  ]
      DelayMS 150
Next
      DelayMS 3000
     
                        'Telefon çalmaya başladıktan sonra yapılmasını istediğniz
                        'işlemleri buraya yazıyorsunuz.
     
      Clear PORTB.1     'hattı kapat   
      Stop



MS_59

hocam sizin devrenize bakıp bişeyler yapmaya çalışacağım teşekkürler

onurinci,
proton bilmiyorum,  aslında yazılımla ilgili sorunum yok sadece devreyi fiziki olarak nasıl yaparım. neyse biraz daha araştırayım
mehmet


Powered by EzPortal