Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

DTMF DECODER

Başlatan ta7om, 27 Temmuz 2004, 14:12:14

ta7om

Herkese merhaba;
PBP Plus Kullanıyorum DTMF sinyali ile kumanda yapmak istiyorum ama  Basic i yeni öğrenmeye başladığımdan pek başarılı olamadım.
***Örneğin***
Porta.0=Q1
Porta.1=Q2
Porta.2=Q3
Porta.3=Q4
Porta.4=STD (DTFM Varken +5v olur)

olduğunu varsayarsak:

DTMF İle 1 rakamı vurulduğunda;

Porta.0=Q1=1
Porta.1=Q2=0
Porta.2=Q3=0
Porta.3=Q4=0
Porta.4=STD=1

DTMF İle 2 rakamı vurulduğunda;

Porta.0=Q1=0
Porta.1=Q2=1
Porta.2=Q3=0
Porta.3=Q4=0
Porta.4=STD=1

yani --12--rakamı vurulduğunda

Örneğn Portb.0=1 olsun

Yukarıdaki gibi bir programı nasıl yazabilirim hangi codlarla ve aşamalarla.

Herkese şimdiden yardımı için teşekkürler.

cozturk


baba

Kısaca nasıl birşey yapmak istediğini anlatabilir misin?
ÖĞRENDİKÇE    CAHİLLİĞİM       ARTIYOR.

fsan

Alıntı YapPorta.0=Q1=0
Porta.1=Q2=1
Porta.2=Q3=0
Porta.3=Q4=0
Porta.4=STD=1

yani --12--rakamı vurulduğunda

Örneğn Portb.0=1 olsun

Merhaba ta7om,
eskiden birara ben pic basic pro ile bu sekilde yazdim olmuştu.. herhalde picpasic plus te de olur..
------------------------------------
DTMFdata var byte

trisa=11111 'porta.0-4 gris
porta = 0
trisb=0 ' portb.0-7 cikis
portb = 0

loop:
if STD=1 then
while STD=1 'dtmf tonu kayboluncaya kadar bekle
pause 1
wend
DTMFdata = porta & %01111 'std girisi sayma
if DTMFdata = "12 rakami" then high portb.0
endif
goto loop

"12 rakami vuruldugunda" derken "#" tusuna basmaktan mi bahsediyorsun? (asagidaki semaya bir göz at)


ayrica birde buraya bak:
https://www.picproje.org/index.php/topic,3676&postdays=0&postorder=asc&start=15

ta7om

Üstat;
Verdiğin bilgiler gerçekten çok güzel benim 12 rakamından kastetdiğim şey  iki haneli veya daha fazla haneli rarakamı (BU DTMF SİNYALİ ŞEKLİNDE OLACAK) 8870 dtmf entegresine girdiğimde P16F84 ün bacaklarından herhangi birine bağladığım roleyi çekebileceğim yani bir şifre gibi olacak bu devreyi bir RF alıcının hop çukışına bağlayarak bir  RF verici ile DTMF sinyali gönderdiğimde alıcıya bağlı olan bu devre daha önceden belirlediğim rakamları algığında devreye bağadığım role şifre doğru ise çekmelidir.

fsan

anliyorum usta bunu yapmak cok kolay. http://home.no/fsan/projects/ sayfasinda yaptigim bir şifrelikilit uygulamasi var.. oradaki BAS dosyayi incelersen.. aradigini bulacaksin.. oradaki keypad dan gelen key degiskeni senin telsizden aldigin DTMF tonu (DTMFdata) olarak düsün..

kardes istersen yazmak istedigin kodlari burada bizimle paylas takildigin yerlerde biz yardimci olalim.
Hem bu sekilde borda yeni katilan arkadaslarda proton+ hakkinda biraz bilgi edinmis olurlar


Saygilar..

z

Alıntı yapılan: "ta7om"Üstat;
Verdiğin bilgiler gerçekten çok güzel benim 12 rakamından kastetdiğim şey  iki haneli veya daha fazla haneli rarakamı (BU DTMF SİNYALİ ŞEKLİNDE OLACAK) 8870 dtmf entegresine girdiğimde P16F84 ün bacaklarından herhangi birine bağladığım roleyi çekebileceğim yani bir şifre gibi olacak bu devreyi bir RF alıcının hop çukışına bağlayarak bir  RF verici ile DTMF sinyali gönderdiğimde alıcıya bağlı olan bu devre daha önceden belirlediğim rakamları algığında devreye bağadığım role şifre doğru ise çekmelidir.

Cok iyi dusunmussun ama sen bu sisteme nasil guveneceksin?

Sen yayin yaptiginda, yayinini dinler ve kayit ederim. Sonra lazim oldugunda basit bir sekilde kaydettigim bilgiyi yollarim hoop role cekiverir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

fsan

Alıntı yapılan: "bunalmis"
Cok iyi dusunmussun ama sen bu sisteme nasil guveneceksin?
güvenlik konusunda hakli olabilirsin hocam.. ben bu sekilde eve bir hirsiz alarimi kurdum ama tabiki telsiz yerine cep telefon kullaniyorum telefonun hoporlöründen DTMF tonlarini 8870 dtmf decoder entegresine verdim. istedigim zaman distan telefon edip alarmi kontrol edebiliyorum.

fsan

arkadaslar buda ileride yapmak istedigim bir DTMF-dialer projesinin ön calismalari..
Pratik olarak deneme imkanim olmadi o yüzden bu devreyi proteus  ile simüle ederken bilgisayarin hopörler cikisindan signal alip 8870 nin dtmf grisine verip bir denemek lazim..
hazir kurulu 8870 li devresi olan varsa bir test edebilirmi ?



HEX, BAS ve DSN dosyalar burada:
http://home.no/fsan/projects/Diverse/DTMF_tone/

Veli B.

Kullanımı kendi standartlarıma göre olduğu için 8870 üzerinde bulunan dtmf ready pinini kullanmadan portb deki değişmeler ile kesme oluşturuyorum.Bu benim için şöyle bir avantaj sağlıyor.Aynı tuşa iki defa basılsa bile işlemci kabul etmiyor.(Portb üzerinde değişiklik oluşmayacağından dolayı)Şifre konusunda bir avantaj benim durumum için.

Şu iki satır ile direkt olarak 4 bitlik bilgiyi okuyorum

(BURADA DTMF DEĞİŞKEN)

DTMF=PORTB ^ %00001111
DTMF=DTMF>>4


Sevgili Fsan' ın hoşgörüsüne sığınarak (sevgilerimle) linke bir çalışma koydum.Henüz bitmedi ama sanırım ilgini çeker.Benzer bir konu.Aratırsan gsm bölümünde var.


http://finance.groups.yahoo.com/group/picprojeup5/files/katana/dtmf.rar


Bu arada picten bir  :twisted:  :twisted: BEEEP :twisted:  :twisted:  sesi çıkartamadım ya çıldıracam.Nasıl yapılır bu arkadaşlar.Sound saçmalıyor(yada ben saçmalatıyorum :roll: ) Frekans çıkışı ilede abuk subuk bir şey yaptım ama bırakın tatmin etmemeyi beceremedim. :evil:  :evil:  :evil:

:evil:

DumrulBey

Merhaba,

Arkadaşlar yazılım yoluyla yapılan çözücülere (Soft Decoder) ne diyorsunuz? Hani geçen sene (2003) Eylül ayında Radu Constantinescu'nun yaptığı var ya. Adresini şu an bulamadım ismini aratırsanız mutlaka gelir. Sizce değmezmi veya daha esnek işler yapılamaz mı? Yani mevzu 3 kuruşluk tümdevreden (8870) kaçmak değil!

Sevgiler, saygılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

fsan

@katana
bende bazen sound komutlari yerine asagidakine benzer bir sekilde yapiyorum ama bence en iyisi interrupt kullanarak yapmak.
case ardindaki rakamlari istedigin gibi ayarlayabilirsin
Cnt var byte
Buzzer var PortX.X 'port & pin
Cnt = 0
Buzzer = 0

Main:
     Cnt = Cnt + 1
     select case Cnt
     case 1, 65
          High Buzzer
     case 33, 129
          Low Buzzer
     case is > 129
        Cnt = 0
     end select
     pause 1 'gerekirse..
goto Main


Saygilar..

Veli B.

Tama dostum section olarak koydum.Sonsivriden indirmiştim.Bazen sorun yapıyor.Mesela çok sık mouse ile oynarsam save seçeneği ve nesne seçimi çalışmıyor.Sık sık saklıyarak çalışıyorum.Ver 6.3.1

DumrulBey

DTMF Remote Contro
A software DTMF decoder for PIC 16F87X



http://www.geocities.com/constantinescuradu/content/dtmf.htm


Açık Şema

ve

ASM Kodu

için tıkla...


Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

ta7om

Arkadaşlar;
ASM Kodu ile yazılmış birçok uygulama buldum ancak ben PicBASIC  ile bu işi yapmak istiyorum. PBP da anlayamadığım bir iki konu var  ve birtürlü beceremedim örneğin;

8870   Porta.4=  Porta.3=    Porta.2=  Porta.1=  Porta.0=      Numara

 Q1 ---- 1---- -----0 ----------- 0 ---------- 0 ------ 1 -------        - 1 -    
Q2 ------1--------- 0 ----------- 0 -----------1 ------ 0 -------        - 2 -
 Q3 ---- 1--------- 0 ----------- 1 ---------- 1 ------ 0 -------        - 3 -
 Q4 ---  1 -------- 0 ----------- 1 ---------- 0 ------- 0 ------         - 4

Yukarıdaki   1234 rakamlarını daha önceden PIC e tanıtıp, PIC de bu rakamların doğruluğunu karşılaştırıp doğru DTMF ise örneğin PortB.0=1 yapmalı