Etepic

Dökümanlar - Makaleler ve Projeler => Ete Projeleri => Konuyu başlatan: ete - 04 Eylül 2011, 19:05:04

Başlık: DTMF Projeleri
Gönderen: ete - 04 Eylül 2011, 19:05:04
Telefon yardımı ile haberleşme sistemini, konu alan bu başlıkta  iki ayrı işlemci için hazırlanmış dosyaları bulabilirsiniz.
Tabiiki tavsiyem 16F628 ile yapılmış olan projeyi yapmanız yönündedir.
Sistemin bir açılış şifresi birde genel şifresi bulunmaktadır. Genel şifre diğer şifrenin unutulması halinde girilecek emniyet şifresi anlamına gelmektedir.

Şifre girişlerinde zaman çalışmakta olup belirli süre içinde giriş yapılmaması durumunda sistem resetlenir ve yeniden giriş yapılmayı bekler.

Sistem şebeke de zil sesini algılar ve belirlenen çalma adedinden sonra hattı otomatik olarak açar. Hattın açılmasını müteakip kullanıcı şifresini girer ve ardından 6 adet röleyi açma için önce "#" işaretine sonrada röle numarasına basar ve ilgili röleyi aktif eder.
Kapatma için önce "*" işareti ve ardından ilgili röle numarasını girer ve röleyi kapatır.
Röleler tek tek açılabilir ancak önce * ve ardından 0(sıfır) girilerek hepsi birden kapatılabilmektedir.
Programda;
- zil çalma adedi, ( #8 ile)
- Şifre değiştirme ( #9 ile)
işlemleride yapılabilmektedir.

Diğer detaylar için program satırlarına bakınız.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: kzmkzm - 19 Ekim 2011, 13:10:10
ETE hocam bu projeyi ISD serisi bir entegre ile ses ile geri mesaj şeklinde yine telefon hattı kullanarak nasıl yapabiliriz. Proje için teşekkürler
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 19 Ekim 2011, 14:05:55
Bu sorunun cevabı kafamda hazır degil maalesef. Su anda ancak bilmiyorum diyebilirim.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: kzmkzm - 25 Ekim 2011, 11:01:18
ETE hocam yaptığınız DTMF pojesinin değişik versiyonlarını birçok sitede görmekteyiz sormak istediğim elinizde denenmiş üzerinde buzzer bulunan bir devreniz mevcutmudur izniniz olursa denmek isterim ilginize teşekkürler.
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 25 Ekim 2011, 16:00:38
Dtmf ler denenmistir. Burada verilende buzzer olmasi gerek.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: kzmkzm - 25 Ekim 2011, 19:14:30
Hocam ben doc dosyasına baktim onun içinde baskı devresi var fakat buzzer olan yok ilginize teşekkürler
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 25 Ekim 2011, 19:18:15
Baskı devrede olmayabilir. Sen programa ve şemaya bak asıl. Onlarda vardır. Buzzeri sonradan ilave etmiştim.
PCB ye direk kablo ile bağlayıverirsin. AYrıca PCB yapmadım çünki. AMa bu sistemi o kadar çok yapan olduki neredeyse bir standart oldu sanki. Başkalarının yaptığı PCB leri bulabilirsin nette belki.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: kzmkzm - 31 Ekim 2011, 21:03:10
Ete hocam benzer projeyi CCS C de gerçekleştirmeye çalışıyorum bende ama sürekli sorunlar var kodun bir kısmını göndersem sadece yazılım hakkında görüşlerinizi öğrenkem isterim hat acmada ve sayaç kısımları büyük sorun yaşıyor. Devrede ISD ses entegresi ile cevap şeklinde kullanmaya çalışıyorum saygılarımla.
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 01 Kasım 2011, 07:38:12
Maalesef CCS mantığından çok iyi anlamıyorum. Bu nedenle yardımcı olmam imkansız.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: kzmkzm - 26 Kasım 2011, 23:03:48
ETE hocam öncelikle devreyi denediğimizi söylemek isterim gayet güzel bir çalışma fakat devremde röleler açık konumdan kapalıya geçemiyor led bağlantısı yapıldı ledler kapanıyor fakat aynı etkiyi rölelerde göremedik sebeni nedir sizce neden olabilir?
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 27 Kasım 2011, 00:12:41
Komut vererek Ledleri kapatabiliyorsunuz ama röleler kapanmıyor öylemi?.
Benim programda #1 - #2 gibi "#" işareti yanında hangi numaraya basılırsa ona ait röle açılır,
*1 - *2 gibi "*"işareti ve yanında yer alan numara tuşları da aynı röleleri kapatmak için kullanılıyor.
siz nasıl yaptınız?

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: kzmkzm - 27 Kasım 2011, 20:25:36
Evet. röleler sürekli olarak açık kalıyor. Sistemden gücü kesince kapanıyorlar yani açık olanlar tekrar güç verildiğinde istediğimiz konumlara gelmiş oluyorlar. Kullanılan sistem sizin sistem aynı kontrol ediliyor ilginize hocam
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 27 Kasım 2011, 20:52:26
Benim sistemi kullananlarda böyle bir kusur şimdiye kadar görülmedi.
Hatta bir kaç ilave ile ticari olarak kullanlarda var. Bu şekilde bir kusuru olsa kullanılabilirmi?

Üstelik kendim için yapmış olduğum devrede elimde özellikle çalıştırdım bir sorun yok. Sorun senin devrende yada yaptığınız yazılımda.

Onları buraya açarsan ben veya bir başkası ilgilenir bakarız. Röle sürme devrenize bakın. Hangi transistörü ne şekilde kullandınız röleleri sürmek için.  Anladığım kadarı ile röle sürücü transistörleri doyuma gidiyor ve kendi kendilerini set ediyorlar.
BU durumda sen sinyali kessende iletimde kalıyorlar. Röle sürme devrenizde bir kusur var mutlaka.

En azından hex dosyanız ile varsa simulasyon dosyasını buraya koyun isis de bakmaya çalışalım.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 17 Ocak 2012, 09:37:48
ETE hocam merhabalar diger forumlardan PROJELERİNİZİ takip ediyorum EV TELEFONU İLE DTMF projeniz çok güzel çalışıyor..
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 17 Ocak 2012, 09:55:25
Evet..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 17 Ocak 2012, 11:36:28
TA5AAT,
Sabit telefon için yazılmış bir programı ve devreyi cep telefonuna adapte etmek için ne gibi değişiklikler yaptın?
Açıkla ki ona göre düşünüp varsa kusurlarını tespit etmeye çalışalım.
Ayrıca , Çalıştıramadım derken ne gibi sorun yada sorunlar çıktı . Hiçmi çalışmadı yoksa devre çalıştıda cep telefonu ile sisteme kumanda mı edemedin?
Biraz detay vermende yarar var.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: canbulut - 17 Ocak 2012, 21:49:25
16f84 ile olan açılıyor fakat 628 yazan dosya bende açılmıyor:(aşağıdaki uyarı geliyor.
(https://etepic.com/proxy.php?request=http%3A%2F%2Fd1201.hizliresim.com%2Ft%2Fk%2F1w597.png&hash=b87a0b1d0dab803d9f5bdbf344a965cb6901b9fa) (http://bit.ly/c25MCx)
Başlık: Ynt: DTMF Projeleri
Gönderen: ELZEMEFE - 17 Ocak 2012, 22:34:59
arkdaşım versiyon farkı var diyo artık devre hangi verisyonda ise  onunla açmak zorundasın sendeki düşük versiyonmuş..........
Başlık: Ynt: DTMF Projeleri
Gönderen: canbulut - 17 Ocak 2012, 22:42:09
bende anladım onuda nasıl edinebilirim?
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 18 Ocak 2012, 09:33:31
Örnek aşagıdadır..


'****************************************************************
'* Name : DTMF-KONTROL.BAS *
'* Author : [E.T.E] *
'* Notice : Copyright (c) 2005 Ete] *
'* : All Rights Reserved *
'* Date : 02.06.2005 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
PORTA=0:PORTB=0
TRISB=%00000001 'PortB.0 giris digerleri çıkıs yapıldı.
TRISA=%00111111 'A portu tamamı çıkıs yapıldı.
'-----------------------------------------------------------------
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Ocak 2012, 09:56:35
Başlangıç kısmını aşağıdaki şekilde yap.
BASLA:  Sayac=0
'-------------------------------PORTB.0=HIGH-------------
ILK:    IF HAT=1 THEN ILK
'------------------------------PORTB.0=LOW---------------
BAK:     SAYAC=SAYAC+1
BIR:     IF HAT=0 THEN BIR
'------------------------------PORTB.0=LOW-----------------
       IF SAYAC=ZIL THEN
            PAUSE 1800
            HIGH ROLE
            pause 800
            low role
            GOTO BIRINCI
         ENDIF
         SURE=0
         WHILE HAT=1
         SURE=SURE+1
         IF SURE=300 THEN ILK
         PAUSE 1
         WEND
         IF SURE<100 THEN BIR
         GOTO BAK

Bunun dışında başka bir şey gerekmiyor.
Gerekmiyor derken hattın alınması telefon hoparlöründen yapılıyor. Bu bağlantıları yapman gerek.
Programda bir zaman sayacı var. Belirli süre içinde şayet herhangi bir komut girilmez ise sistem kendini otomatik kapatır.
Buda 18-20 sn olması gerek ama biraz daha az olabilir. Sen 16 sn diyorsun demekki sende 16 sn olarak çalışıyor otomatik kapanma. Bunu iptal etmek istersen aşağıdaki komut satırlarını bul;
ALBILGI:
         SURE=0:ZAMAN=0
         WHILE VALDAT=0
          SURE=SURE+1
          PAUSEus 270
            IF SURE=65500 THEN
              CIK=1:RETURN
            ENDIF
          WEND
Buradan " IF SURE=65500 then CIK=1:RETURN" komutunu sil yada kapat. Böylece otomatik kapanma iptal edilmiş olacaktır.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 18 Ocak 2012, 10:00:11
hocam yazılım çok güzel devreyi ütü ile bastım süper çalışıyor..
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 18 Ocak 2012, 11:51:19
 

çalışır dururmda şu an. sadece ilk elektrik verildiginde biraz bekliyoruz 15-20 saniye sonrasında bir beep sesi geliyor 1 2 3 4 şifresi girirliyor ve devremiz hazır hale geliyor....


Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 18 Ocak 2012, 13:21:38
Merhaba:

hocam söylediginiz noktadaki degişikleri yaptım son hali ile süper çalışmakta.
hocam kusura bakmayın rahatsız ediyorum sizi..

bu devremize klima baglıyorum röle kontaklarına. klimaya gerekli ayarları verdikten sonra klimayı yapılan degişiklikleri hafızada tutması için ŞALTERDEN kapatıyorum klimayı.  uzaktan klimayı kontrol edebiliyorum fakat hocam ELEKTRİK KESİNTİLERİNDEN ETKİLENMESİN diyerekten yani şu şekilde elektrik kesilip geldiginde kaldıgı yerden RÖLE çalışması için yazıllımdan neler yapabilirim hocam..
teşekkürler..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Ocak 2012, 13:55:30
Programı aslında senin istediğin gibi yazmıştım. Sende çalışmıyormu?. Normal şartlarda hangi röle açık ise onun durumu kayıt ediliyor ve ilk çalıştırmada aktif olan röle var ise yeniden aktif ediliyor.

Yeniden dene istersen. Ama şimdi yukarıdaki programa baktımda bu iş için yazdığım kodları silmiş birileri.
Programın başlarında READ 10,DURUM komutu olması gerek.
PORTB=DURUM komutu altında yer almalı.
Ayrıca her bir röle kontrol kısmında YAZ=1 diye bir komut var ve Role KOntrol ksımında ise IF YAZ=1 then GOSUB ROLEYAZ diye bir komut daha olması gerek.
Sen en iyisi projeler kısmından DTMF-YENI isimli programı yeniden yükle ve yukarıdaki değişiklikleri uygula onu kullan. İstediğin böylece olacaktır.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 18 Ocak 2012, 13:59:53
Evet hocam bu program eski halindede hafızada tutmuyor yani ev telefon sistemindede gerekdigi gibi çalışıyor fakat enerjiyi kesip açtıgım zaman roleler kapalı dururmda kalıyorlar.
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 18 Ocak 2012, 14:08:04
hocam bulamadım..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Ocak 2012, 14:17:21
Aşağıdaki linkte yer alan;
http://etepic.com/index.php?topic=59.0

DTMF_TUMU.RAR dosyasını yükle. içindedir mutlaka.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 18 Ocak 2012, 15:08:05
hocam teşekkürler..
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 20 Ocak 2012, 17:43:34
merhaba:

ÖRNEK:
PORTA=0:PORTB=0
TRISB=%00000000     
TRISA=%11111111

ÖRNEK:

Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 20 Ocak 2012, 18:56:43
Devrenin orjinalinde A portundaki o bacaklara HT9170 pinleri bağlı. Aslında karmaşık bir işlem gerektiriyor. Bunu yapabilecek durumda olsanız bana ne yapmalıyız diye sormaz direk yapardınız. Bu iş öyle tarifle falan olmaz. Ama illaki yaparım ben dersen aşağıdakileri uygula;
a) SYMBOL HAT=PORTB.0
SYMBOL CIKIS1=PORTB.1
SYMBOL CIKIS2=PORTB.2
SYMBOL CIKIS3=PORTB.3
symbol CIKIS4=PORTB.4
SYMBOL CIKIS5=PORTB.5
SYMBOL CIKIS6=PORTB.6
SYMBOL ROLE=PORTB.7
SYMBOL VALDAT=PORTA.0
SYMBOL BUZZER=PORTA.7
satırlarını bul değişenlere yeni port isimlerini ver. Toplam 6 adet röle kullanmışız iptal edilenler var ise onları sil çıkar.
A portu röle çıkışı olarak kullanılacak ise TRIS registerini TRISA=0 olarak değiştir.

2. PORTB nin ilk 4 biti giriş olacağı için TRISB=%00001111 şeklinde değiştir.

3. Aşağıdaki satırları bul ve onları PortB karşılıkları ile değiştir.

SYMBOL VALDAT=PORTA.0  yerine PORTB.0 olacak
SAYIAL: SAYI=0
        WHILE VALDAT=1
        SAYI.0=PORTA.4  yerine PORTB.4 
        SAYI.1=PORTA.3             portb.3
        SAYI.2=PORTA.2             portb.2
        SAYI.3=PORTA.1            portb.1

Başka bir değişiklik gerekmez sanırım.

Ete

        WEND

Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 26 Ocak 2012, 17:08:59
hocam çok teşekkürler çalışır durumda evet..

Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 26 Ocak 2012, 17:16:45
2 röleli nasıl yaptın daha doğrusu röleleri hangi komutlarla açıp kapatıyorsun.
Biri açılırken diğerininkapanmaması için bütün portun okunması ve okunan değerde yalnızca açılacak röleninbağlı olduğu bitin set edilmesi ve bütün değerin geri porta yazılması gerekir.
Tek tek pin bazında kontrolde çalışması gerekir.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 26 Ocak 2012, 17:21:25
hocam iki adet devre yaptım biri 2 röleli digeri 4 rölelei 4 röleledie sıkıntı yok.fakat iki röleli kartdan entegreyi sokentinden alıyorum 4 röledide çalışıyor tabii iki röleyi açıyor kapatıyor sorunsuz.. iki röleli kartda bu olay oluyor.. saygılar
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 26 Ocak 2012, 17:27:52
hocam gönderdigim hex dosyaı picde yüklü. 4 röleli kartda süper 2 röle açıp kapıyor
2 rölleli kartda rölenin biri açılıyor digerini tuşladıgımızda digeri sönüyor kart üzerinde bir işlemmi yapıcaz direç mercimek kondansatör şeklinde felan ben yazımıma rölelrin tümü aç ekledim..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 26 Ocak 2012, 17:44:46
Yaşadığın sorun A portunu aktif eden komutu 5 bit olarak kullanmandan kaynaklanıyor olabilir.
TRISA=%00000 şeklindeki komut yanlıştır. Onun TRISA=%00000000 şeklinde olması gerekir. Neden dersen Dahili OSC kullanılınca PortA.6 ve PortA.7 normal giriş çıkış pini haline geliyor bunları TRis registerinde belirlemen gerekir. AYrıca MCLR_OFF denilince de PortA.5 giriş pini haline gelir bunuda Tris registerinde belirlemen gerekir. Aynı şekilde Röleleri açıp kapattığın komutda da  5 bit yerine 8 bit tanımlama yapman gerekir.  Yazının sonunda nasıl olması gerektiğini yazdım. Onud mutlaka denemelisin.

Sen en iyisi birde şu komutu dene. Çünki Röleler için sembol isimleri kullanmışsın .
IF SAYI=1 THEN
              IF durum.0=0 THEN
                GOSUB SES1:YAZ=1
                CIKIS1=1  '1 tuşuna basılınca 1 nolu çıkışı aç
                goto ROLEKONTROL
              ENDIF
           ENDIF
           
           IF SAYI=2 THEN
              IF durum.1=0 THEN
                GOSUB SES1:GOSUB SES1:YAZ=1
                CIKIS2=1   '2 tuşuna basılınca 2. ci çıkışı aç
                goto ROLEKONTROL
              ENDIF
           ENDIF     

Bu çıkışları kapatırkende CIKIS1=0 veya CIKIS2=0 şeklinde komut kullanman yeterli olacaktır.
Çok merak ediyorsan mevcut komutu şöyle bir yaz bakalım olacakmı;
PORTA=DURUM | %00000001 (1 nolu çıkış için)
PORTA=DURUM | %00000010 (2 nolu çıkış için)

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 26 Ocak 2012, 17:47:14
yapıyorum hoca teşekkürler..
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 07 Şubat 2012, 12:15:26
hocam LED animasyon kontrol devresi yaptım devremiz hazır fakat HEX çeviremedim MicroCode kullanıyorum nerde problem olabilir hocam  (WARNİNG - EROR)  felan diyor TEŞEKKÜRLER..
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 07 Şubat 2012, 12:15:57
PORTA=0
TrisA=%00000000
TrisB=%00000000
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 07 Şubat 2012, 13:01:32
Programda verilen açıklama satırları " ` "ayrıracı ile ayrılmış Halbuki " ' " ayıracı  ile ayrılması lazım.
Doğru program aşağıdadır.

Ete
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 07.02.2012                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
PORTA=0
TrisA=%00000000
TrisB=%00000000
'-----------------------------------------------------------------
@ DEVICE pic16F628 'islemci 16F628
@ DEVICE pic16F628, WDT_ON 'Watch Dog timer açık
@ DEVICE pic16F628, PWRT_ON 'Power on timer açık
@ DEVICE pic16F628, PROTECT_OFF 'Kod Koruma kapalı
@ DEVICE pic16F628, MCLR_OFF 'MCLR pini kullanlımııyor.
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullanılacak
'-----------------------------------------------------------------
CMCON=7 '16F628 de komparatör pinleri iptal hepsi dijital
'-----------------------------------------------------------------
I var WORD
Z VAR BYTE
W VAR BYTE
T VAR BYTE
Y var byte
SON VAR BYTE '128 - 192 -224 - 240 - 248 - 124
'-----------------------------------------------------------------
'A portundan baslayarak ledleri birer birer yakıyoruz. Sonra B portuna
'atlıyoruz. Hepsi yandıktan sonra teker söndürüyoruz. Bu sefer ikiser
'yakıyoruz ve söndürüyoruz. Üçer yakıyoruz söndürüyoruz. Bu sefer Dıstan
'içe dogru yakıp söndürüyoruz. Sonra içten dısa dogru. SOnra kara simsek yapıyoruz.
'------------------------------------------------------------------
PORTA=0
PORTB=0
I=1:Z=2:W=1
'---------------------------ANA PROGRAM BÖÜMÜ-----------------------------------
BASLA:
PORTA=I '1. bit den baslayarak ledleri yakıyoruz
PAUSE 100
I=I*2 'bir sonraki bit yakıldı
IF I<254 THEN BASLA
PORTA=0 'tüm bitler yandıktan sonra portun tamamını söndür
I=W
BIR: PORTB=I 'Aynı isi B portu içinde yap
PAUSE 100
I=I*2
IF I<254 THEN BIR
PORTB=0
T=I/2 'bu sefer geriye dogru yakıyoruz ledleri
I=T
IKI:PORTB=I
PAUSE 100
I=I/2
IF I>0 THEN IKI
PORTB=0
I=T
UC:PORTA=I 'Geriye dogru A portunu yakıyoruz
PAUSE 100
I=I/2
IF I>0 THEN UC
Z=Z+1:I=2*W+1:W=I
IF Z<8 THEN BASLA
PORTA=0
I=128
Z=1
'------------------BURAYA KADAR 1-5 SIRA ÇFT YÖN YAKILDI-----------------------
DORT: PORTA=I
PORTB=Z
PAUSE 100
I=I/2
Z=Z*2
IF I>0 THEN DORT
ARA: I=1:Z=128:W=I:T=7:y=z
BES:
PORTA=I
PORTB=Z
PAUSE 100
I=I*2
Z=Z/2
IF Z>1 THEN BES
z=w:I=y
ALTI: PORTA=I
PORTB=Z
PAUSE 100
I=I/2
Z=Z*2
IF I>1 THEN ALTI
T=T-1:I=W*2+1:Z=DCD T+Y:W=I:Y=z
IF I<33 then BES
porta=0:portb=0
I=1:Z=2:W=1:T=7
goto basla
END

Başlık: Ynt: DTMF Projeleri
Gönderen: sahinler64 - 17 Şubat 2012, 20:42:50
ya hocam kusura bakmayın. yazdıklarınızı biraz inceledim. TA5AAT hocam cep telefonu için yaptığın programı paylaşma şansın varmı diyecektim.
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 14 Mart 2012, 10:16:29
ETE hocam teşekkürler LED animasyon kartımız bu haliyle çalışmakta..
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 14 Mart 2012, 10:22:52
ete hocam bu DTMF devremiz ile ARACIMIN ilk motor hareketi olan MARŞ sistemine hareket vermek istiyorum..
Başlık: Ynt: DTMF Projeleri
Gönderen: mg1980 - 14 Mart 2012, 10:28:28
Röle zamanına alternatif olarak yağ basınç müşirinden motor çalışınca sinyal alan RB0 kesmesi de düşünülebilir.Kolay gelsin.
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 14 Mart 2012, 11:28:44
TA5AAT,

Bu işi timer ile yapmak programa epeyce yük getirir. İşlem basit ve en azından o esnada programın başka iş yapması gerekmiyor. O halde #1 ile röleyi aktif ettikten sonra aynı yerde;
PAUSE 2000
ROLE=0
şeklinde bir komut yerleştirerek 2 sn sonra rölenin kapanmasını sağlayabiliriz.
Tek kusur programın 2sn müddetle orada bloke edilmesi olurki çok da önemli değil diye düşünüyorum.
Ne dersin?

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 14 Mart 2012, 13:09:58
PORTA=0:PORTB=0
TRISB=%00000001 'PortB.0 giris digerleri çıkıs yapıldı.
TRISA=%00111111 'A portu tamamı çıkıs yapıldı.
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 14 Mart 2012, 13:11:32
hocam hangi satıra bu PAUSE 2000  ROLE=0 eklemeliyiz saygılar..
veya LOW ROLE komutunu..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 14 Mart 2012, 13:15:16
ACMA:  etiketi altında şu satırları bul
    IF SAYI=1 THEN
        IF durum.1=0 THEN
        GOSUB SES1
        PORTB=DURUM | %00000010
        goto ROLEKONTROL
        ENDIF
    ENDIF


Bu satırları şöyle değiştir;

    IF SAYI=1 THEN
        IF durum.1=0 THEN
        GOSUB SES1
        PORTB=DURUM | %00000010
        PAUSE 2000
        PORTB=DURUM & %11111101
        goto ROLEKONTROL
        ENDIF
    ENDIF


Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 14 Mart 2012, 13:50:57
hocam TEŞEKKÜRLER elinize saglık..
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 14 Mart 2012, 15:24:24
hocam sistem güzel çalışmakta ARAÇ uzaktan çalışıyor ve hatda KAPANIYOR bu çalışma sisteminde sadece # KARE yazılımdan kaldırabilirmiyiz sadece (1) basınca çalışsa sistem.
TEŞEKKÜRLER saygılar..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 14 Mart 2012, 16:20:32
Onu kaldırmak uzun prosedür. Kalsın şimdilik.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 20 Mart 2012, 12:13:52
Merhaba   E.T.E  hocam hocam bu normal şekli ile çalışan yazılım AÇ KAPA şeklinde..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 20 Mart 2012, 13:00:47
Telefon klavyesinden yanızca 0-9 -10 -11 -12 rakamlarına karılık gelen tuşların değerleri aktarılabilir.
Dekoder entegresinin neyi alıp verebildiğini bilemiyorum.

Şifre programdan da değişebiliyor kullandığımız şifre 4 haneli rakamdır sen galiba tek haneyemi düşürmek istiyorsun anlamadım.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 20 Mart 2012, 16:24:01
hocam bu devre denemeye çalışmakta..

Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 20 Mart 2012, 16:26:56
hocam ben MÜFTÜLÜGE  gidip gönderilen TON ları ögrenim onuda belirtim saygılarımla Teşekkürler..
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 22 Mart 2012, 08:53:04
evet. hocam şifreleri ögrendim.

yıldız yıldız  **  açma

( d )  kapama

   
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 22 Mart 2012, 10:09:34
hocam benim arşivde şu şekilde bir DTMF kontrol yazılım var. bu şifreleri buna uygulasak dahamı basit olur saygılar..

Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 22 Mart 2012, 10:12:37
bu yukarda örnegi verilmiş yazılım çok güzel çalışmakta.. sadece ON OFF EZAN WAAZ
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 22 Mart 2012, 10:43:01
Çoğu zaman bir programı tadil etmek yerine yeniden yazmak tercih ettiğim bir yol oluyor. Sebebide mevcut programın mantığını anlamak için çok fazla zaman harcan ması gerektiğidir. Yapacağınız değişikliği nasıl nereye uygulayacağınızı anlamak epeyce uzun sürüyor. Senin istediğinde aynı şey. Bu kendi yazdığım programlarda başıma gelen bir olay ki programı başkası yazmış ise bu daha da zor oluyor benim için. Çünki herkesin kendine göre bir program yazma mantığı vardır. Kendi mantığımı her yerde tanırım. Ama başkalarının yazdığı üzerinde epeyce düşünmek gerekir. Uzaktan kolay gibi gözükebilir. Ama gözüktüğü gibi değil maalesef. Bu değişiklikleri şu anda yapmam mümkün değil. Boş bir zamanımda üzerinde düşünürüm. Yapabilirsem yapar koyarım.

Hadi açma işini anladım" ** " önce ilk yıldız kodu (11) beklenecek alınmış ise ikincisine bakılacak.
Ama kapatmayı anlamadım Nedir "d" tuş takımında "d" diye bir tuş yok. Nedir bunun karşılığı.?

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 22 Mart 2012, 10:52:34
evet saygı duyarım..
A-B-C-D  kodlarıda mevcut   0-9 dan sonra

10  11  12  13  14  15  kadar kodlar var sanırırm
*
#

A

B

C

D
Başlık: Ynt: DTMF Projeleri
Gönderen: sangarius - 26 Mart 2012, 14:17:41
Herkese Selamlar

Sayın TA5AAT, takip ettiğim kadarıyla cep telefonuna uyarlanan devre son haliyle güzel çalışıyor demişsiniz.

Anladığıma göre ETE hocanın da yardımlarıyla devreyi cep telefonu ile çalışır hale getirmişsiniz.

İzninizle bilgi edinmek istediğim kısımlar ve şu ana kadar anladıklarımdan doğruluğunun kontrol edilmesini istediğim bazı noktalar var;

1) Devre cep telefonu ile çalıştığına göre ETE hocanın verdiği "ev telefonu ile çalışan devredeki" bazı malzemeleri devreden çıkarttınız mı? (hat açma rölesi, yalıtım trafosu vs. gibi) yada "Telefon_Kon628.DSN" dosyasını olduğu gibi mi çizdiniz?

2) ETE hocanın verdiği devrede telefon girişi olarak iki uç var. Cep telefonuna buzzer ses onayını nasıl veriyorsunuz? Mikrofonlu kulaklıkla mı? Öyleyse cep telefonunun mikrofon girişi, buzzer hattına mı bağlanıyor yoksa buzzera yakın mesafede mi duruyor?

3) Cep telefonuna uyarlandıktan sonra B portunda bazı ayaklar boşa çıktı denilmiş. Boşa çıkanlar, malzeme eksiltildiği için mi, yada neden? Portlarla ilgili değişiklik yapmaya gerek var mı? Sanırım o bir özel istekti değil mi?

Sayın TA5AAT ve ETE hocam;
İlk mesajımda böyle emrivaki yapmış gibi hissediyorum. Ama sizi birkaç forumda takip eden biri olarak cep telefonu ile çalışan devrenin en net bilgilerini burada bulduğuma inanıyorum. Cep telefonuyla çalışan devrenin dosyalarını TA5AAT arkadaşın paylaşmasını rica ediyorum.

Saygılar
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 26 Mart 2012, 14:35:18
Sangarius,
Aslında cep telefonu ile bu sistemin çalıştırılmasına karşıyım. İsteyen kendi projesini yapar çalıştırır beni ilgilendirmez ama ben bu tür sistemlerin cep telefonu ile kullanılmasına karşıyım. Bu nedenle gereken açıklamaları bir daha vermeyeceğim.
Bu konuyu baştan sona okursan ne yapman gerektiğini anlarsın. Anlamazsan da şansına küs derim.
Sistemin cep telefonu ile olan versiyonu yok aslında ama yalnızca bir iki satır değiştirilerek yapılan bir iş için koca programın yeniden verilmeside yanlış. Forum kapasitemizi hızla dolduruyoruz. Bu nedenle olur olmaz şeylerle formu kirletmemeye çalışıyoruz. Sen en iyisi konuyu baştan sona oku ne yapman gerektiğini anlayacaksın.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: sangarius - 26 Mart 2012, 15:05:50
Peki hocam

Sizi de anlayışla karşılıyorum. İnce ayrıntılar konusunda TA5AAT ile özel iletişime geçiyorum.

Bu arada projenin cep telefonu ile yapılması hocamın isteği :) . Yani aslına bakacak olursak ben de karşıyım hazır ev telefonuyla çalışan devreyi kesip biçmeyi, tutarsız hale getirmeyi. Ama anlayın işte.

Hazır aklımdayken böyle bir projeyi paylaştığınız için de teşekkür ederim.
Başlık: Ynt: DTMF Projeleri
Gönderen: sangarius - 26 Mart 2012, 22:13:02
Hocam programdaki ;

@ DEVICE pic16F628A                      'işlemci 16F628                               
@ DEVICE pic16F628A, WDT_OFF              'Watch Dog timer açık
@ DEVICE pic16F628A, PWRT_ON             'Power on timer açık
@ DEVICE pic16F628A, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic16F628A, MCLR_OFF             'MCLR pini kullanılıyor.
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak

satırları, programı derlerken hataya sebep oluyor.

Ancak "http://etepic.com/index.php?topic=300.0" sayfasında verilen sigorta ayarları yazılınca sorun yok.
(@ __config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF)

Tabi ben bunları aşağıdaki şekilde yazdım (pwrt yerine pwrte, protect yerine cp' ye dikkat ederek tabi, çünkü mpasm'nin içindeki p16f628a.inc dosyasında öyle tanımlanmış)
@ __config _WDT_OFF & _PWRTE_ON & _CP_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT

Ancak gördüğünüz gibi yukarıda sizin yazdığınız yazımdan uzak şeyler yazarak derledim ama çalıştı. Sormak istediğim, DEVICE komutunun çalışmamasının sebebi nedir ve benim yazımdaki tek eksik olan PIC16F628A yazısını nerede ve nasıl kullanmalıyım yada kullanmasam da olur mu (çünkü microcodestudio'da 16F628A'yı seçmemizin yeterli olduğunu düşünüyorum ama önerinizi de bekliyorum)?

(Bu arada kullandığım MPLAB v8.84, 64 bit Win7 kullanıyorum ve 64 bit için yukarıdaki linkte yazdığınız ayarları da yaptım.)
Başlık: Ynt: DTMF Projeleri
Gönderen: wisdom_rs232 - 26 Mart 2012, 23:54:44
arkadaşlar ilk sayfada ISD ses mesaj Tarafımızdan yapılmış ve denemiş tir. malumunuz ISD SMD olmadığından çok yer kaplıyor devre kaba bir hal almıştır. Tarımsal Sulama için projemiz hazır olup Yazın Çiftçi dostlarımıza teste sunacağız. Saygılar.
Başlık: Ynt: DTMF Projeleri
Gönderen: sangarius - 27 Mart 2012, 00:05:27
ISD ses mesaj 'dan ve ilk sayfa' dan kastınız nedir wisdom_rs232?
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 27 Mart 2012, 08:25:53
Sangarius,
Daha once pbp derleyiciye ait assembler biriminin 32 bit olarak hazırlandığını bu nedenle 64 bit makinalarda çalışmadığını bunun yerine derlemenin Mpasm ile yapılması gerektiğini açıklamış idim.
Programlarda verdiğimiz normal config ayarları pbp derleyicisi formatına uygundur. Mpasm kullanınca config formatını ona uygun değistirmek gerekiyor sende oyle yapmışsın.
İslemci mcs de yukarıdakı kutudan seçiliyor. Bu nedenle illaki configde yer alması gerekmiyor.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: wisdom_rs232 - 27 Mart 2012, 09:18:24
Bu konunun ilk 1. sayfasında arkadaşım ısd ile bir soru yöneltmiş onun cevabını verdim, ilk sayfayla son sayfa arasında konu biraz açı değiştirmiş ama farklı bir yere konu açmak iistemedim. ISD ses kayıt entegresinin başarılı bir şekilde sesli yanıt sistemini yaptık oluşturduk. sahaya teste gönderecez. SMD olmadığından mevcut ISD entegreleri çok yer kaplıyor. fuzuli kalabalık yapıyor. Testlerden sonra saha aplikasyonlarının bilgisini paylaşacam.

saygı ve sevgiler.
wisdom.
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 09 Nisan 2012, 09:40:16
Hocam Merhabalar bu ev telefonu ile DTMF devremiz hazır dı zaten bu devremizle KLİMA
( 1 )  SAAT boyun caçalışsın sonrasında kapansın aşagıda kopyaladıgımız satırırn pause kısmında
2000 yazan yer 60000 oldugunda 1 daki sonrasında kapanıyor 1 saat için 2000 yerine sayısal olarak ne yazmam gerekir....

klimayı kendim #1 olarak açıcam sonrasında 1 saat sonra röle düşücek saygılarımla..

IF SAYI=1 THEN
        IF durum.1=0 THEN
        GOSUB SES1
        PORTB=DURUM | %00000010
        PAUSE 2000
        PORTB=DURUM & %11111101
        goto ROLEKONTROL
        ENDIF
    ENDIF
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 09 Nisan 2012, 09:44:17
 Örenek:   ( 3 600 000 )   1 saat yapıyor bu satırırn daha kısa ve mantıklısıs olabilirmi yopksa bu şekildemidir bu şekilde denedim sistem güzel çalışmakta fakat diger röle çalışmamaktadır şimdiden çok teşekkürler..

NOT: Sevgili arkadaşlar bu sistemde hazırladıgınız devrenizin telefon için HAT trafosu bazı hurda telefonların içinde mevcuttur EV TELEFONU İLE EV OTOMSAYON DEVRESİ..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 09 Nisan 2012, 10:05:32
Oraya yazılabilecek en kısa komut;
Pause 2000 yerine
SLEEP 3600 yazmaktır.
Ancak 1 saat boyunca program o kısımda bloke olur ve başka hiç bir iş yapamaz.
Bu şekilde istersen olur. Ama program bloke olmasın dersen mutlaka bir şekilde saat sinyali edinmen gerekir.
Saat sinyali de iki şekilde elde edilir. Ya TMR0 kullanarak kesme oluşturur ve oradan SN, DAK ve SAAT bilgisini alırsın, yada devreye bir adet RTC (mesela DS1307) ilave ederek saat bilgisini RTC den alırsın. Saat bilgisini elde ettikten sonra yapılacak iş basittir. Zamanlamayı başlatmak için SN=0:DAK=0:SAAT=0: yapıp süreyi başlatmış olursun

IF SAYI=1 THEN
        IF durum.1=0 THEN
        GOSUB SES1
        PORTB=DURUM | %00000010
        SN=0:DAK=0:SAAT=0       
        goto ROLEKONTROL
        ENDIF
    ENDIF

'Artık klimanın kapatılması kısmı Role kontrol kısmında yapılacak demektir.
Orada ;
IF PORTB.1=1 and SAAT=1 then PORTB.1=0
 

demen yeterlidir.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 09 Nisan 2012, 10:18:55
Hocam tamam yazılıma ekledim güzel çalışmakta fakat diger rölemiz kafasına gör çalışmakta veya çalışmamakta olmassa iki satırada zaman eklesek..

(sleep 3600)
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 09 Nisan 2012, 10:26:06
IF PORTB.1=1 and SAAT=1 then PORTB.1=0

hocam bu gönderdiginiz örnek satırı eklesek bu tek satırmı alt altamı desem..
yazılımda bu satırın konumu neresi hocam bagışlayın beni...

sanırırm bu satırı ekledigimizde DS1307 kulanıcaz bu şekilde anladım hocam saygılar...
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 09 Nisan 2012, 10:41:44
O satır tek satır halinde verilecek.
Yeri ise;
ROLEKONTROL:  isimli etiket altında her hangi bir yer.

Elbette bu komutu kullanınca sana Saniye , Dakika ve Saat bilgisi lazım olacak. Onuda RTC den alman gerekiyor.
Ya DS1302 yada DS1307 kullanman gerekecek.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 09 Nisan 2012, 13:06:38
Hocam mrb:

hocam SLEEP  60  (1)  dakika

600   10  dakika

3600  60  dakika

bunu PAUSE ile yapmak isteyince  HEX diline çeviren program EROR diyor hex e çevirmiyor

sayısalın kısaltılmışı kullanılırmı PAUSE de..    (ÖRNEK: PAUSE 3600000   60 DAKİKA   ERÖR diyoo..)

PAUSE  100  katladıgı zaman erör diyoo..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 09 Nisan 2012, 13:18:14
Der tabiiki . Çünki kullanabileceğin en büyük rakam 65535 dir. O yüzden pause ile değil Sleep ile yapılmasını söylemiştim.
Ancak döngü kurarak yapabilirsin bunu.
FOR I=0 to 36000
  PAUSE 100
NEXT
sana yaklaşık 1 saatlik gecikme sağlayacaktır.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 09 Nisan 2012, 17:20:56
hemen deniyorum hocam..

hocam birde şuna bakın bu haliyle çok güzel bir şekilde çalışmakta fakat satır çok deneme aşagıda

IF SAYI=1 THEN
              IF durum.0=0 THEN
                GOSUB SES1:YAZ=1
                PORTA=DURUM | %00000001   
                PAUSE  60000
                               
                PORTA=DURUM & %11111110
                goto ROLEKONTROL
              ENDIF
           ENDIF
       
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 09 Nisan 2012, 17:51:40
Hangi satıra ekleyelim hocam son gönderdiginizi..

FOR I=0 to 36000
  PAUSE 100
NEXT

KAPANIŞ      AÇILIŞ ????
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 09 Nisan 2012, 19:09:17
SLEEP  60 yapıyorum PAUSE yerine 60 saniye bekliyorum fakat hiç işlem olmuyor yani kapanmıyor RÖLE hocam sleep de satırda bir yanlışlıkmı yapıyorum ÖRNEK şekil aşagıdadır..

  DURUM=PORTA
           
           IF SAYI=1 THEN
              IF durum.0=0 THEN
                GOSUB SES1:YAZ=1
                PORTA=DURUM | %00000001   '1 tuşuna basılınca 1 nolu çıkışı aç
               
                SLEEP 60
                 
                PORTA=DURUM & %11111110
                goto ROLEKONTROL
              ENDIF
           ENDIF
       
        GOTO ROLEKONTROL   
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 09 Nisan 2012, 19:21:18
Sleep komutu sanırım WDT kullanarak bu süreleri gerçekleştiriyor. Şayet Sigorta ayarlarında WDT_OFF ise sistem çalışmayabilir. Bu nedenle WDT_ON yaparak denemelisin.

Döngülü gecikmeyi tam olarak SLEEP 60 yerine yazacaksın.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 09 Nisan 2012, 19:29:47
evet güzel şekilde çalışmakta hocam dilinize saglık..

ama bu süre zarfında canımız istediginde sistemi kapatamıyoruz illaki 60 dakikanın bitmesi lazım buna bir ÇARE varmıdır hocam saygılar..
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 09 Nisan 2012, 20:58:24
ete hocam sizin bu projenizi bende yapmaya çalışıyorum cep tel ile.benim problemim şu: pice bağlı cep telefonuna bir çağrı geldiği zaman bu telefon çağrıyı otomatik cevaplıyor.bir zil sesinden sonra çağrıyı kabul ediyor.bu telefonun özelliği.böyle olunca proğramın ilk bölümündeki hattın durumuna bakan ve zil sayma kısıkmlarıyla ilgili satırları iptal ederek direk şifre kısmına gitmesi için uğraştım.ama olmadı.böyle bir olay proğramın mantığı açısından uygunmu?yok bu iş için tamamen ayrı bir proğrammı yazılmalı?
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 10 Nisan 2012, 07:56:12
Bana yazan pek çok kişiden öğrendiğim kadarı ile onlarda otomatik cevaplama iözelliğini kullanmışlar. Bence iyi bir yöntem. Ama programda da tadilat yapıp ilk zil çalmasından sonra telefonu açmak ve zil saymaktan vaz geçmek bir çözüm olabilir.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 10 Nisan 2012, 14:31:48
hocam iyi çalışmalar,
proğramdan zil sayma ve telefonu açma kısmını iptal edemedim bir türlü.proğramdan proğramsal anlamda ne yaptımsa olmuyor. telefon, gelen çağrıyı kabul ettikten sonra şifreyi giriyorum kabul etmiyor.proğramda ne gibi değişiklik yapmam gerekiyor  hocam?
şimdiden teşekkürler..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 10 Nisan 2012, 15:27:15
Power,
programa bakarsan etiket isimleri şu sırada gidiyor:
BASLA
ILK
BAK
BIR
BIRINCI
birinciye kadar olanları silip Birinciyide BASLA diye adlandırırsan sistem zil sayma ve hat açma işleminden kurtulmuş olur.
Bu şekilde bir dene bakalım.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 10 Nisan 2012, 15:51:24
Evet..
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 10 Nisan 2012, 15:54:11
dtmf proje endstriyel otomasyon..
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 12 Nisan 2012, 00:36:16
hocam söylediğiniz gibi BIRINCI ye kadar olan kısmı iptal ettim.BIRINCI yide BASLA yaptım hex çevirdim denemedim olmadım.olması gerikirdi ama atladığımız bir nokta var herhalde.
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 12 Nisan 2012, 07:15:03
Bende denemeden söyledim ama teori olarak düşünürsek ,
BİRINCI etiketi hattın açılmasından sonra çalışmaya başlayan kısım. Hattı hep açık farzedersek buradan itibaren sistemin çalışması gerekirdi. Bu durumda telefonun otomatik hattı açması gerekiyor.
Zira telefon açık değil ise tuş takımı dtmf kodu üretmeyecektir. Yada telefon hiç bu kodları üretmiyorsa sistem yine çalışmayacaktır ne şifre girebilir nede röle seçebilirsin.
Ama hat açılıyor ise her şeyi yapabilmen lazım gelir.

Aslında normal bir telefon kullandığın zaman telefon çaldığı zaman yeşil tuşa (veya her hangibir tuşa) bir kere tıklaman hattı açmana yetiyor. Bu sistemi yapanlardan bir kısmıa bu özelliği kullanmıştı. Yes (yada cevapla) tuşundan uç çıkartıp hat açtırma rölesine bağlamışlardı. Orjinal programda röle devamlı çekili kalıyor idi sende bir kere çekip bırakması gerkeecek.Bu şekilde zil sayacı ile birlikte de kullanabilirsin.

Normal şartlarda kulaklıktan hat bilgisi aldığına göre telefon hattı açmadan orada ne gibi bir voltaj var?,
Telefon çaldığı zaman neler oluyor voltaj inip çıkıyormu çıkıyorsa nerelere çıkıyor?
hat açıldığı zaman kulaklık uçlarındaki voltaj ne oluyor.
Bu bilgileri toparlayıp bana bildir ona göre bir şeyler düşünelim.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 12 Nisan 2012, 09:05:37
hocam,
ben hic sabit telefonla denemedim.fakat cep telefonu ile sabit telefonda kullanmanın tek farkı,sabit telefonda role sürekli çekili kalıyor,cep telefonunda ise kısa süreli çekip bırakıyor.yani yes tuşuna basıp bırakıyor.bunlar zaten bilinen şeyler.benim denemelerimde,çağrıyı role vasıtasıyla yes tuşuna basarak kabul etme konusunda bir sıkıntı yok.o zaman proğram olması gerektiği gibi çalışıyor.fakat burdaki benim yaşadığım sıkıntı,çağrıyı cevaplama yani kısa süreli rolenin çekip bırakması konusunda bir kararsızlık var.bazen gelen çağrı kabul edilmiyor.bende bu durumdan kurtulmak için.,telefonun otomatik çağrıyı kabul etmesi özelliğini devreye soktum.fakat bu seferde çağrı geliyor bir sefer çalmadan sonra çağrı kabul ediliyor sonrasında şifreyi giriyorum fakat roleyi kapatıp açamıyorum.sıkıntım burda.benden istediğin bilgileri akşam evde deneyim yazacağım.yanlız ben kulaklıkta kullanmıyorum kulaklık yerine 27 ohm direnç taktım.otomatik çağrıyı kabul edebilmesi için bu şart.hat bilgisini hoparlrden alıyorum.şimdi aklıma geldi.benim sorunum burda galiba.ben hat bilgisi kulaklıktan almam gerekiyor.kulaklık özelliğini kullanıyorum ama ton seslerini hoparlörden almaya çalışıyorum.neyse çok uzadı akşam deneyerek sonucu yazacağım.
Başlık: Ynt: DTMF Projeleri
Gönderen: mg1980 - 12 Nisan 2012, 11:02:56
Hocam,
İyi Günler. Benzer bir çalışmayı ASM programa dilinde yapmıştım. Gelen çağrıyı iki şekilde daha almak mümkün.Birincisi telefonu titreşime alıp titreşim motor uçlarından, bir diğeri de tuşların aydınlatma LED'lerinden.Tabii siz bilirsiniz ama denemek mümkün.Saygılar.
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 12 Nisan 2012, 21:24:07
@mg1980
malesef telefonda titreşim özelliği yok.aydınlatma ledleri benimde aklıma gelmişti. tam  deneyecekken bu otomatik cevaplama özelliğine geçtik bu daha iyi oldu.
hocam malesef mesajımda bahsettiğim gibi çok basit yerde hata yapmışım.yani kulaklık kullanırken ton bilgilerini hoparlörden almaya kalkımışım hep.size cevap yazarken sizin istediklerinizi düşünürken hatamı anladım ve akşam eve gelince ilk olarak denedim proğram sondan bir evvelki mesajınızdaki değişiklikle sorunsuz çalışıyor.ben şimdi kafama göre bir kaç ekleme çıkarma yapıyorum.şimdilik sorun görünmüyor.birde yapılan işlemi onaylamak için ses zayıf olduğundan,bir role daha ekledim.bu role,başarıla şekilde yapılan işlemin ardından 6 tuşunu kısa süreli kısadevre yaptırarak çıkan tonun diğer telefondan dinlenmesi sağlanıyor.ben böyle bir yol izledim.
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 13 Nisan 2012, 07:58:24
Yapılan her işte olduğu gibi mantık çalıştırmak sorunları çözmede işin yarısıdır. Bak ne güzel aştın sorunu.
Hadi geçmiş olsun.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 13 Nisan 2012, 08:45:53
ETE hocam devremize artık (SEKRETER) eklemek istiyorum piyasada bulunan ISD 1730 SES KAYIT entegre ile iki devreyi baglantı kurarak telefon açıldıgında.( HOŞGELDİNİZ  (1) ci RÖLE için #1 tuşlayın 2 ci RÖLE için #2 tuşlayın) demesini isteyebilirmiyiz en kısa zamanda uygulamaya geçmek istiyorum bu konuda sizin fikirlerinizi almak istedim..

TELEFON açıldıgında SEKRETER sesli olarak uyarı vericek sonra kullanıcı işlemlerini yapıcak..

saygı ve sevgilerimle..  (TA5AAT) 
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 13 Nisan 2012, 10:49:25
Ses kayıt entegreleri yada devreleri diyelim zaten bu tür işler için yapılmıştır.
İyice incelersen entegreye hakim olduğun anda istediğini yapabilirsin.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: hkalaycioglu - 18 Nisan 2012, 18:13:07
ete hocam bu dtmf devresınde arama yapıyorum role de cekıyor ayarladıgım çagrı sayısında fakat devrenın açıldıgını bır turlu arayan telefon anlamıyor hat trafosunu fax modem kartından soktum ama nerede sorun olabilir bir turlu bulamadım sızce nereye bakmalıyım
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Nisan 2012, 18:17:07
Arayan telefon hattın açıldığını anlamaz zaten. Hat açıldığına dair gelen ses (biraz zayıf gelebilir) mesajlarından anlaman gerekir.
Bana kalırsa devre yanında iken deneme yapmaya çalış. O zaman anlayacaksın.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: hkalaycioglu - 18 Nisan 2012, 18:20:51
devre zaten yanımda denıyorum role cekıyor hattı devreye sokuyor gıbı  fakat arayan telefon caldırmaya devam edıyor optodan calma sınyalını ledden takıp edıyorum hat acılmıyor gıbı yanı telefon calmaya devam edıyor
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Nisan 2012, 19:46:53
Zil çalmaya devam ediuyor ise hat açılmıyordur. Bu durumda şunu sorayım. Bu sistem normal kablolu telefon hattınamı bağlıdır?
Öyle ise aşağıdakileri kontrol etmen gerek;

- Telefon hattının bir ucu direk Köprü diyota girmekte diğer ise hat rölesi çektiği zaman köprü diyota bağlanmaktadır. Öncelikle hat rölesi çekiyormu onu kontrol etmen gerek. Bir röle çekiyor diyorsun ama sanırım ya hat rölesi değil yada röle çekmesine rağmen hattın diğer ucu röle kontakları üzerinden köprü diyota ulaşmıyor. Bu hat ucunun rölenin dpğru bacaklarına bağlandığından emin olman gerek.

- Diyot uçları doğrumu bağlıdır kontrol et.

- Hat trafosundan önce BC serisinden transistörler vardır. Bunlar doğru bağlanmışmı kontrol et. Hat trafosunda sorun olacağını sanmıyorum. Sorun telefon hattı girişlerinin hat trafsouna ulaşamamış olmasından kaynaklanıyor. Bu aralığı kontrol etmelisin.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: hkalaycioglu - 18 Nisan 2012, 20:11:13
ete hocam tesekkurler dedıklerınıze yarın bakıcam kontrol edıcem devrenızı bır arkadasım yaptı calısıyor çalıstıgını gordum ama benım yaptıgımda neden boylr bır sorun yasadım anlamadım
her tarafınıda kontrol ettım ama sorunu bır turlu cozemedım
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Nisan 2012, 20:12:57
Çalıştığı kesin çünki ben dahil yüzlerce kişi yaptı.
Seninkinde mutlaka bir terslik vardır. Dediklerimi iyice kontrol et.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 06 Mayıs 2012, 23:05:40
hocam tekrar iyi çalışmalar.
sizin dtmf projenizi cep telefonu için yapmıştım.o zaman şimdi yazacağım hataların farkına varmamışım.bu hataları düzeltmek için yaptığım çalışmalarda her seferinde pic'e proğram yüklemek  zahmetli olduğundan isisde yapmak istedim.fakat burdada simülasyon imkanı olmadığından kendimce bir yöntem yaptım ve denemeleri burda yaptım.iki adet sorunum var bir türlü onların üstesinden gelemedim hocam.lcd yide değişkenlerin aldığı değerleri görebilmek,proğrama hakim olabilmek için ekledim.
1-doğru şifre girmeden başka şifre girilir ve arkasından doğru şifre girilirse doğru şifreyi kabul etmiyor taki zaman aşımı meydana gelinceye kadar.(örnek:şifre:1111 olsun, önce 4512 girilir arkasından 1111 girilirse şifre doğru ledi yanmıyor.zaman aşımını bekleyip ondan sonra 1111 doğru şifre girilirse şifre doğru ledi yanıyor.)
2-hiç bir şekilde roleyi kontrol edemiyorum.(burda roleyi led temsil ediyor.)
kodlar aşağıda
'****************************************************************
'*  Name    : DTMF.BAS                                          *
'*  Author  : [E.T.E]                                           *
'*  Notice  : Copyright (c) 2005 Ete]                           *
'*          : All Rights Reserved                               *
'*  Date    : 02.06.2005                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
PORTA=0
PORTB=0
TRISB=%00000000   'PortB.0 giriş diğerleri çıkış yapıldı.
TRISA=%00011111   'A portu 0-4 arası girişi,6digerleri çıkış yapıldı.
@ DEVICE pic16F88               'işlemci 16F88
@ DEVICE pic16F88, WDT_OFF      'Watch Dog timer kapalı
@ DEVICE pic16F88, PWRT_ON      'Power on timer açık
@ DEVICE pic16F88, MCLR_OFF      'mclr on
@ DEVICE pic16F88, LVP_OFF      'Low voltage off
@ DEVICE pic16F88, PROTECT_OFF  'Kod Protek kapalı
@ DEVICE pic16F88, INTRC_OSC_NOCLKOUT
''-----------------------------------------------------------------
Define  LCD_DREG    PORTB   'LCD BAĞLANTILARININ TANIMI       
Define  LCD_DBIT    4 
Define  LCD_RSREG   PORTB
Define  LCD_RSBIT   3
Define  LCD_EREG    PORTB
Define  LCD_EBIT    2
'-------------------------------------------------------------------------------
CMCON=7         '16F628 de komparatör pinleri iptal hepsi giriş çıkış
ANSEL=%11100000 '0-dijital,1-analog
ADCON1=%10000000 'analog pinleri kullanıma aç ???????
DEFINE OSC 4
OSCCON=%01100000 '4 MHz ayarlandı.
'-------------------------------------------------------------------------------
SIFRE  VAR WORD
RAKAM  var WORD
TEMP   VAR WORD
SURE   VAR word
SAYI   VAR BYTE
DURUM  VAR BYTE
BIRLER VAR BYTE
ONLAR  VAR BYTE
YUZLER VAR BYTE
BINLER VAR BYTE 
X      VAR BYTE
CIK    VAR BIT
YAZ    var BIT

SYMBOL LED1=PORTB.0
SYMBOL ROLE=PORTB.1
SYMBOL LED3=PORTA.7
SYMBOL VALDAT=PORTA.0
SYMBOL TEL_AC=PORTA.5


''DATA @ 0,1,2,3,4
''data @ 0,255,255,255,255,255
DATA @ 16,5
PAUSE 200
CLEAR
read 0,SAYI
PAUSE 10
IF SAYI=$FF THEN
   SIFRE=1111
   GOSUB SIFREYAZ
endIF
READ 0,BINLER
READ 1,YUZLER
READ 2,ONLAR
READ 3,BIRLER
SIFRE=BINLER*1000+YUZLER*100+ONLAR*10+BIRLER
read 10,durum
IF DURUM=255 then
DURUM=0
GOSUB ROLEYAZ
ENDIF
PORTB=durum 

HIGH TEL_AC'şebeke elektriği kesilip tekrar geldiği zaman telefonun tekrar açılması sağlandı
PAUSE 1000
LOW TEL_AC
             
BASLA:   
       lcdout $FE,$80,"RAKAM:  ",dec4 RAKAM
       lcdout $FE,$C0,"SIFRE:  ",DEC4 SIFRE
'       lcdout $FE,$C0,"SAYI :  ",DEC4 SAYI
'       lcdout $FE,$C0,"SURE :  ",DEC5 SURE
         
          RAKAM=0
    GOSUB SIFREAL
           IF CIK=1 THEN BITIR 'süre aşımı olmuş ise
           IF RAKAM=2006 THEN  'yedek şifre olan 2006 buradan değiştirilecek.
              SIFRE=1234       'şifre değiştirilirken buradaki 1234 yerine yenisi yazılacak.
              GOSUB SIFREYAZ
              GOTO  ROLEKONTROL
           ENDIF   
'''------------------------------------------------------------------------------
              IF RAKAM=SIFRE THEN
              LED1=1
              PAUSE 1000
              LED1=0               
              ELSE
              GOTO ROLEKONTROL
            ENDIF
     GOTO BASLA           
'------------------------------ROLE KONTROL-------------------------------------
ROLEKONTROL:   
   IF YAZ=1 then gosub ROLEYAZ
     GOSUB ALBILGI
    IF CIK=1 THEN BITIR
      IF SAYI=12 THEN ACMA      '#  12
        IF SAYI=11 THEN KAPAT   '*  11
           GOTO ROLEKONTROL
'------------------------------ROLE AÇMA BÖLÜMÜ---------------------------------
ACMA:     
   ROLE=1
   GOSUB ALBILGI       'önce # tuşuna basılmış ise program buraya gelir
IF CIk=1 THEN BITIR
   DURUM=PORTB 
      IF SAYI=3 THEN
         IF durum.3=0 THEN
               FOR X=1 TO 3
               NEXT
               YAZ=1
               ROLE=1
             goto ROLEKONTROL
         ENDIF   
      ENDIF
'-------------------------------ŞİFRE DEĞİŞTİRME--------------------------------
'           IF SAYI=9 THEN        '#9 şifre değiştirme
'              GOSUB SIFREAL
'              IF CIK=1 THEN BITIR
'                IF RAKAM=SIFRE THEN
'                  GOSUB SIFREAL
'                  IF CIK=1 THEN BITIR
'                  SIFRE=RAKAM
'                  gosub SIFREYAZ
'                ENDIF
'           ENDIF
'        GOTO ROLEKONTROL   
'------------------------------ROLE KAPATMA BÖLÜMÜ------------------------------
KAPAT:   
   GOSUB ALBILGI        'önce * tuşuna basılmış ise program buraya gelir
IF CIK=1 THEN BITIR
   durum=PORTB
      IF SAYI=1 THEN                 
         IF durum.1=1 THEN
               FOR X=1 TO 3
               NEXT         
               YAZ=1 
               ROLE=0
             goto ROLEKONTROL
         ENDIF
      ENDIF                                     
  GOTO ROLEKONTROL   
'-------------------------------------------------------------------------------
SIFREAL:
    GOSUB ALBILGI
    IF CIK=1 THEN RETURN
    RAKAM=SAYI*1000
    GOSUB ALBILGI
    IF CIK=1 THEN RETURN
    RAKAM=RAKAM+SAYI*100
    GOSUB ALBILGI
    IF CIK=1 THEN RETURN
    RAKAM=RAKAM+SAYI*10
    GOSUB ALBILGI
    IF CIK=1 THEN RETURN
    RAKAM=RAKAM+SAYI
    RETURN     
   
ALBILGI:
    SURE=0
  WHILE VALDAT=0
    SURE=SURE+1
    PAUSEus 270
  IF SURE=65000 THEN
    CIK=1              'zaman aşımı iptali
    HIGH LED3
    RETURN
  ENDIF
  WEND       
'-------------------------------------------------------------------------------
SAYIAL:
    SAYI=0
    WHILE VALDAT=1
    SAYI.0=PORTA.4
    SAYI.1=PORTA.3
    SAYI.2=PORTA.2
    SAYI.3=PORTA.1
       LOW LED3 
    WEND
    IF SAYI=10 THEN SAYI=0
       RETURN
'-------------------------------------------------------------------------------
SIFREYAZ:
    TEMP=SIFRE         
    BINLER=TEMP DIG 3
    YUZLER=TEMP DIG 2
    ONLAR =TEMP DIG 1
    BIRLER=TEMP DIG 0
    WRITE 0,BINLER
    PAUSE 10
    WRITE 1,YUZLER
    PAUSE 10
    WRITE 2,ONLAR
    PAUSE 10
    WRITE 3,BIRLER
    PAUSE 10
    RETURN
ROLEYAZ:
    DURUM=PORTB & %01111110
    WRITE 10,durum
    YAZ=0
    return         
BITIR:
    GOSUB EXIT
    GOTO BASLA
    RETURN         
EXIT:
    SURE=0
    CIK=0
    RAKAM=0
     RETURN     
   
END
                   
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 07 Mayıs 2012, 10:26:22
Programın nasıl çalıştığını iyi anlamayınca böyle hatalar yapılması doğal.
Uzun uzadıya nerelerde hata var anlatmayacağım. Yalnızca düzeltilmiş satırları vereceğim hatalrı sen bul.

Başlangıç kısmında yanlış şifre girildiğinde program ELSE komutunun yönlendirmesi ile başka satıra gidiyordu. Onu iptal ettim.
BASLA:   
       
       lcdout $FE,$80,"RAKAM:  ",dec4 RAKAM
       lcdout $FE,$C0,"SIFRE:  ",DEC4 SIFRE
         
       RAKAM=0:CIK=0   
       GOSUB SIFREAL
           IF CIK=1 THEN BITIR 'süre aşımı olmuş ise
           IF RAKAM=2006 THEN  'yedek şifre olan 2006 buradan değiştirilecek.
              SIFRE=1234       'şifre değiştirilirken buradaki 1234 yerine yenisi yazılacak.
              GOSUB SIFREYAZ
              GOTO  ROLEKONTROL
           ENDIF   
'''------------------------------------------------------------------------------
            IF RAKAM=SIFRE THEN
              LED1=1
              PAUSE 1000
              LED1=0               
              GOTO ROLEKONTROL
            ENDIF
     GOTO BASLA


Röle kontrolünde de bazı anlamsız satırlar yer almış. Sanki rastgele yazılmışlar.
Önceki programda bir anlamları vardır elbette ama programda sadeleştirme yapılınca havada kalmışlar.
Dolayısıyla programın ACMA ve KAPATMA kısımlarınıda aşağıdaki şekilde düzelttim.
ACMA:     
   GOSUB ALBILGI       'önce # tuşuna basılmış ise program buraya gelir
IF CIk=1 THEN BITIR
   DURUM=PORTB 
      IF SAYI=1 THEN
         durum.3=1
         LED1=1
         ROLE=1
         yaz=1
         GOTO ROLEKONTROL
      ENDIF
      GOTO ROLEKONTROL
KAPAT:   
   GOSUB ALBILGI        'önce * tuşuna basılmış ise program buraya gelir
IF CIK=1 THEN BITIR
   durum=PORTB
      IF SAYI=1 THEN                 
         durum.3=0
         LED1=0               
         YAZ=1 
         ROLE=0
         goto ROLEKONTROL
      ENDIF                                     
      GOTO ROLEKONTROL

Bu hali ile istediğin gibi çalışmaktadır.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 07 Mayıs 2012, 12:32:22
Merhaba:   hocam bu sistem evde 2 aydır kurulu ev telefonu ile otomasyon hatasız çalışmakta
klimayı lambaları kontrol ediyorum elinize saglık.

Hocam bu yazılımdan hafızayı yani eproma kayıt iptal edebilirmiyiz  sistemi çalıştıralım elektrik kesildiginde sistem kapanacak tekrar elektrik geldiginde çalışmıyacak kısa bilgi verirseniz uygulamak istiyorum TEŞEKKÜRLER..SAYGILAR..

VEYA :    elektrik kesilip geldiginde sistem kendini 1 dakika sonra açsa..

bu şunun için gerekli gördüm. bizim buralar elektrik kesilip geldiginde ilk 10 20 30 saniye YÜKSEK
geliyor..sonrasında elektrik 220 volt normale düşüyor
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 07 Mayıs 2012, 13:00:29
Programı aç ve ne kadar WRITE ile başlayan komut varsa sil.
Ayrıca ne kadar READ ile başlayan komut varsa da sil. Böylece eprom iptal edilmiş olur.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 07 Mayıs 2012, 13:33:28
Yapıyorum hocam teşekkürler. Birde aklıma gelmişken sanırım sizin diger eski versiyon DTMF devrenizdeki yazılım sanırırm  (sesli fakat hafıza özelligi yoktu) yanılıyormuyum hocam saygılar..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 07 Mayıs 2012, 13:34:39
Hafıza özelliği başından beri var. Ses kısmını ise hatırlayamadım.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 09 Mayıs 2012, 23:29:22
hocam;
uzun denemeler sonucunda zaman zaman bazı tutarsızlıkların olduğunu farkettim.sorun şu.kolay anlaşılsın diye örnek vererek açıklayacağım.
1-proğram ilk çalıştırıldığında hiç bir tuşa basmadan direkt doğru şifre girilirse(şifre:1111) problem yok.fakat proğram ilk çalıştırıldığında misal,önce 2-4 tuşlarına basılır arkasından da 1111  doğru şifre girilirse bunu doğru şifre olarak algılamıyor.dolayısıyla ilk 4 basamakta doğru şifrenin girilmiş olması gerekiyor aksi takdirde zaman aşımının meydana gelmesini beklemek gerekiyor.buda doğru şifre girilerek roleyi kontrol etmede sıkıntılara yol açıyor.dosyalırı deneme gereksinimi duyarsanız kolaylık olsun diye yüklüyorum.
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 10 Mayıs 2012, 14:03:08
Soruna bir soru ile cevap vereyim. Diyelimki şifren 1234 bende sifre girmeye 23 ile başladım hemen yanlis oldugun anladım ve pesinden 1234 rakamlarını girdim. Simdi soruyorum program senin iki digiti yanlis yazdığını ve sonradan gelenlerin dogru oldugunu nasil anlasın. O yalnizca 4 hane girilmesini bekliyor ve alınca da hafizadaki sifre ile karşılaştırıyor.
Bu tür hatalar oldugunda ya yanlışda olsa 4 hane rakam girip sonra dogrularını girmek yada bekleyip zaman aşımına ulaşmak gerekir. Yada programa bir özellik ilave edip hata oldugunda bir Tus ile  girilen leri sifirlamak gerekir.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 10 Mayıs 2012, 20:52:13
evet hocam haklısınız.o zaman,4 haneli şifre girildikten sonra # tuşuyla şifreyi okeyleme mantığını kullansak daha iyi olacak diye düşünüyorum.girilen şifreyi doğru şifreyle # tuşuna basıldıktan sonra karşılaştıracak doğru yada yanlış olmasına göre hareket edecek.bunu yapmaya çalışacağım inşallah başarılı olurum
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 11 Mayıs 2012, 08:38:04
Bence bu hali ile kullansan daha doğru olur. Zira yapman gereken yalnızca 4 haneli bir rakam girmek. Yanlışta olsa onu 4 hane yaptıktan sonra dorusunu girebilirsin. Ayrıca bir onay rakamıda gireceksen sen bilirsin tabiiki.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: medes - 21 Mayıs 2012, 12:56:07
power
DTMF devresinin zaman aşımını bekleme yerine sen DTMF kodlarını ne kadar zamanda girebileceğin konusunda işlem yapar isen sorun çözülür  aksi halde karşına farklı problemler çıkar bende aynı sorunu yaşadım şifre yanlış girdiysen vay haline mecburen süre bitimini bekliyeceksin burada yapman gereken PAUSE 275 =100'e  sayı değişkeninin süresini=65000 =yerine 20000 olarak ayarladım gayet güzel çalışıyor yanlış şifre girdin ise 4sn beliyorsun tabiki dahada düşürebilirsin süreyi çünki bu süre her tuş için yeniden sıfırlandığı için
burada önemli olan senin tuşlara ne kadar sürede bastığındır. ben böyle bir yöntem kullandım tabiki ete hocamızın sayesinde hocamızın fikirlerine her zaman ihtiyac duyuyoruz sağ olsunlar saygılarımla
medes
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 21 Mayıs 2012, 13:47:39
sağolasın,söyediğin yöntemin aynısını yaptım zaten.bunu devreyi  kullanacak kişinin durumunu gözönünde bulundurarak 8 sn seçtim.bi sonraki aşamada şifre girildikten sonra # tuşuyla okeylenmesi yöntemi olacak inşallah.en mantıklısıda bu bence.
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 18 Nisan 2013, 18:36:40
Merhaba:
sevgili hocam bu telefonla röle kontrol devresini uzun zaman önce yaptım çok güzel çalışmakta
elinize yüreginize saglık. Devre evde kurulu şu ana kadar çalışmakta burası kasaba elektrik akımılarının düzensiz oldugu bir yer şu sıralar elektrik kablolarını yerin altına alıyolar ve sık sık elektrik kesintisi olmakta. röle kontaklarına baglı bulunan bazı cihazlar mevcut örnegin lamba motor v.s geçen hafta elektrik kesildi tekrar geldi ve akım yüklü geldi 220 volt degilde 245 250 volt civarı mahlde nekadar tv buzdolabı çamaşır makinası varsa hasar gördü buna baglı olarak röle kontagına bagladıgım cihazımda hasar gördü bunun neticesinde aklıma gelen şu oldu sizizn örnek olarak yayınladıgınız yazılm var en son versiyon pic işlemcide onu kullanıyorum bu yazılımda elektrik kesilip geldiginde 10 saniye geç gelmesi için neyapmalıyım yazılma hangi komudu eklemeliyim..
ortalama 3 5 saniye içerisinde akım normal degerlere geliyor ben 10 saniye gecikmeli yapabilirmiyim saygılarımla teşekkürler...
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Nisan 2013, 19:10:08
Program elektrik kesildiğini anlamaz. Ama başlangıç satırından evvel 10 sn lik bir gecikme koyarsan sistem 10 sn sonra çalışmaya başlar. Bu durumda sana ne faydası olacakmanlamadım.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 18 Nisan 2013, 21:00:40
sevgili hocam:
dediğiniz üzere gerekli satıra gecikme ekledim 10 saniye şeklinde ayarladım çok güzel oldu devre çalışıyor deneme amaçlı elektrik bağlantısını kesiyorum bir mütdet sonra akımı veriyorum röle kaldığı yerden 10 saniye sonra çalışıyor 10 saniye gecikmeli çalışıyor..
şöyle bir durum oldu devrede devre normal şekilde ilk akım uygulandığında devre 10 saniye sonra çalışmakta yani devreye dtmf tonları giricem hemen algılamıyor..
kısacası istediğimiz oldu  fakat devre busefer ne olrsa olsun 10 saniye gecikmeli çalışıyor
pause şeklindeki bu gecikmeyi başka satıra sanırırm yazamayız gibi görünüyor hocam..siz nedersiniz..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Nisan 2013, 22:42:36
Başka bir satıra yazılmaz da kesmeye bağlanabilir. Ancak uzun bir program tadilatı gerektirir.
Kendin yapabilirsen kesme ile (TMR0 kesmesi kullanarak) saniye saydırıp 10 sn dolunca sistemi açtırabilirsin.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 29 Nisan 2013, 17:02:12
Merhaba Hocam..

Hocam DTMF sinyali üretebilirmiyiz derken böyle bir uygulama başlattım devre hazır konumda masamda deneme devresini hazırladım ütü baskısı ile işlemciye proogramdan gerekli komutları ve gerekli H.P çıkışını gösterdim.. Örnek aşagıda oldugu gibi..

DTMFOUT PORTB.2 (2,1,2)  Şeklinde komut uyguladım şu an için akım uygulandıgında gerekli DTMF sinyali vermekte fakat ses çok farklı çıkmakta örnegin sanki ses frekansı kayıkmış şeklinde.
.............
fiziksel uygulamaları gözden geçirdim ses çıkışına filitre v.s uyguladım..
xtal kullandım 4-20  mhz şeklinde olmadı yazılımla alakalı sanırırm sesin frekansı oturmadı sanırırm

burdan ürettigim sinyalii CM 8870 DTMF decoder devresine uyguladım buna baglı olan LED yanmamakta fakat cep telefonu kulaklıgı verdigimde bu LED çok güzel bir şekilde yanmakta..

şimdiden teşekkürler hocam...
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 29 Nisan 2013, 17:03:56
İşlemci:  16F628A
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 29 Nisan 2013, 17:17:26
Bir çok yerde okuduğuma göre ve özelliklede PBP help açıklamasında belirtildiği üzere bu komut 20 Mhz kristal ile iyi çalışmaktaymış. Bana kalırsa sende 20 Mhz ile dene.
Daha önce hiç DMFOUT komutu denemedim. Bu nedenle deneme tecrübem yok.
Sen dene de bizde fikir edinelim en iyisi.
Aslında yine help açıklamalarında sinyale filtre uygulayıp biraz daha yuvarlatılması lazım geldiğide belirtilmiş.
En güzeli skop ile telefondan gelen sinyale bakıp pic den geleni ona benzetmeye çalışmak gerekir.
Benzetmeye çalışmak demekle sinyale uygulanacak filtre açısından olaya bakmayı kast ediyorum.
Yoksa komut sinyali mutlaka çıkartıyordur.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 29 Nisan 2013, 17:25:46
Hocam denedim 20 mhz xtal ses hızlanıyormu diyim inceliyormu diyeyim var degişiklik fakat ses düzeni yine farklı tabi evet ARGE yaptım genelde 20 mhz den bahsediliyor bu tür konular..
xtal olarak   frekansı girmeyi denicem khz cinsinden buseferde.. teşekkürler hocam..
Başlık: Ynt: DTMF Projeleri
Gönderen: Hattuşa - 05 Temmuz 2013, 11:27:29
slm bu projeyi yapan arkadaşlara bir sorum olacaktı, cep telefonunun kulaklığından alınan DTMF bilgiyi MT8870 e verirken illa ki hat trafosumu olması gerekiyor? ben direk deneme yaptım ama başarısız oldum. trafosuz bağlantı şekli varmıdır? gerçi bir tane hat trafosu edindim deneme yapacağım ama varsa başka türlü bağlantı şekli öğrenmek isterim.
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 05 Temmuz 2013, 12:09:49
hayır cep telefonu ile yaparken hat trafosuna gerek yok.
Başlık: Ynt: DTMF Projeleri
Gönderen: Hattuşa - 05 Temmuz 2013, 13:23:04
Alıntı yapılan: POWER - 05 Temmuz 2013, 12:09:49
hayır cep telefonu ile yaparken hat trafosuna gerek yok.

peki usta ben direnc.netten HT9170 almıştım, MC8870 ile aynı olduğunu düşündüğümden, yanılıyormuyum?
ayrıca cep tel. ile bu entegrenin bağlantı şekli hakkında örnek bir şema verebilirmisiniz? yani cep telefonunun kulaklığında 2 uc var ve her ikiside GND değil, her ikisi ile de denedim, hatta birisini gnd ye ilişkilendirdim vs. ama çıkış alamadım, bağlantı şekli ise aşağııdaki gibi, bağlantıda bir problem varmı sizce? ayrıca yazılım hatasının olup olmadığını anlamak için DV çıkışına 39R + led bağladım ama çıkışta bir tepki yakalayamadım
acaba nerede hata yapıyorum?
Başlık: Ynt: DTMF Projeleri
Gönderen: fantom1951 - 05 Temmuz 2013, 13:26:17
Sayın Ete hocam ben yeni üyeniz fantom1951.
13.5 volt  5A  kapasiteli ve kısa devre korumalı bir güc kaynagım var. Bana 3 ve 6 voltta 2A sabit çıkış verecek bir devre lazım idi . Çıkışına bağladıgım yük 2 Ohm -5 ohm arası yükler . 2 Ohm luk yuku bağladıgımda 3voltluk pilden1.35 amp çekiyor ama 1.35 Amp çekilirken pil voltajı 2.5 volt civarına düşüyor  ve 6v da 1.70 amp cekerken pil voltajı 4 volt civarına düşüyor ki bende 3 volt  veya 6 volt sabit kalsın istiyorum. Bunun  için L200 entegresi 2A i desteklediği için L200 lü voltaj ve akım ayarlı  devreyi yaptım ancak girişine güc kaynagından 13.5 volt verince boşta ancak  5.68 volt maximum görüyorum yükü bağlayınca ise 0 volt civarı görünüyor ve tabii ki akım cekemiyorum.L200 lü dverede 1 . pin giriş + sı 3.pin ortak şase 4.pin 1k la şaseye ve 10k potla + çıkışa yani 2. pine gidiyor 5. pin 1k potla + cıkışa bağlı. Potların tüm pozisyonlarında boşta voltaj maximum 5.68 volt oluyor ki aslında 13.5 volta kadar ayarlanabilmesi gerekiyor diye düşünüyorum ancak olmuyor ve yükü bağlayınca potların tüm pozisyonlarında çıkış voltajı = ve amper çekilemiyor.Hocam sebebi ne olabilir veya ben nerede hata yapıyorum?L200 de kısa devre koruması varsa sebeb yük omajının küçüklüğü olabilir mi ?Lütfen yardımcı olabilirmisiniz?
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 05 Temmuz 2013, 14:16:23
Güç kaynağı 3 volt veriyor iken çıkışına 2 ohm luk yük bağlarsan;
I=3/2=1,5 amper akım çeker ve voltaj 3 volt olarak sabit kalır yada kalması gerekir.
Güç kaynağı 6 volt veriyor iken çıkışa 2 ohm luk yük bağlarsan ;
I=6/2=3 amper akım çekilir ve akım kapasitesi. 2 amper olduğundan güç kaynağı voltajı sıfırlanır yada 2 amper verecek şekilde voltaj 4 volta düşer.

Bunun başka yolu yok. Üstelik L200 de kısa devre koruması var ise maksimum akımı geçen akım çekilmelerinde çıkışını sıfırlayacaktır.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 05 Temmuz 2013, 16:27:19
ben bu entegreden kullanmadım.kabaca baktığımda cm8870 ile biraz fark var gibi ama farketmez bu entegrede bu iş için yapıldığına göre devrede hata yoksa çalışır.cep.telefonunda stereo olduğu için 4 uç var.sen bunlardan ikisini kullanacaksın.dikkat edeceğin noktalar:kristal yanlış olmasın benim başıma geldi çünkü.ikincisi dtmf sinyalin gerçekten telefondan çıkıp devreye gittiğinden emin ol.kulaklığı tel.taktıkdan sonra tuşlara bas çıkan seleri telefondan değilde kulaklıktan duymalısın. kulaklık kısmını kes ve direk devreye uygula.çalışır muhakkak bir hata vardır.ayrıca çıkışı ledlerle takip edebilirsin tabiki.
Başlık: Ynt: DTMF Projeleri
Gönderen: Hattuşa - 06 Temmuz 2013, 01:11:54
Alıntı yapılan: POWER - 05 Temmuz 2013, 16:27:19
ben bu entegreden kullanmadım.kabaca baktığımda cm8870 ile biraz fark var gibi ama farketmez bu entegrede bu iş için yapıldığına göre devrede hata yoksa çalışır.cep.telefonunda stereo olduğu için 4 uç var.sen bunlardan ikisini kullanacaksın.dikkat edeceğin noktalar:kristal yanlış olmasın benim başıma geldi çünkü.ikincisi dtmf sinyalin gerçekten telefondan çıkıp devreye gittiğinden emin ol.kulaklığı tel.taktıkdan sonra tuşlara bas çıkan seleri telefondan değilde kulaklıktan duymalısın. kulaklık kısmını kes ve direk devreye uygula.çalışır muhakkak bir hata vardır.ayrıca çıkışı ledlerle takip edebilirsin tabiki.

slm usta;
elimdeki entegre cm8870 imiş, ancak ben hala çıkış alamadım, elimdeki cep telefonunun kulaklığından giriş yaptım, dediğin gibi 4 uc var 2 si gnd kalan 2 uc ise kulaklık hoparlörüne gidiyor, ben kulaklık hop. birisini koparıp denedim, diğeri ile tonları gayet net duyabiliyorum, cep telefonundan dtmf fonuna alıyorum zira 2-3 seçeneği var telefonda, çıkış alamayınca çıkışı skoba bağladım ama skopta da bir değişim yakalayamadım, cm8870 in datasheetinde rakamların karşılığı olan frekansı görebilirmiyim diye düşündüm ama göremedim, bir püf noktası var sanırım ama çözemedim gitti, acaba çıkış çok mu zayıf kalıyor? bir opampla güçlendirmek vs mi gerekiyor?


@EDİT

arkadaşlar hop. çıkışını LM386 (200 kat gain) ile verdim CM8870 e sonunda çıkışı almayı başardım, sanırım bazı cep tellerinde gelen sinyal zayıf geldiğinden güçlendirmek gerekiyor, ben bu şekilde aştım sorunumu umarım bu tip bir çalışma yapan arkadaş yazdığım bu yazıyı okuyarak faydalanır
Başlık: Ynt: DTMF Projeleri
Gönderen: mg1980 - 06 Temmuz 2013, 07:01:41
Ben de küçük trafo ile sonuç almıştım. Cep telefonu kulaklığı çıkışına sinyal seviyesini ayarlayacak şekilde bir trimpot koyup arada trafo ve çıkışı 8870'e bağlı olarak.Saygılar.mg1980
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 06 Temmuz 2013, 10:19:49
ben bu uygulamayı çok yaptım fakat böyle bir sorunla karşılaşmamıştım.
Başlık: Ynt: DTMF Projeleri
Gönderen: Hattuşa - 06 Temmuz 2013, 12:05:09
Alıntı yapılan: mg1980 - 06 Temmuz 2013, 07:01:41
Ben de küçük trafo ile sonuç almıştım. Cep telefonu kulaklığı çıkışına sinyal seviyesini ayarlayacak şekilde bir trimpot koyup arada trafo ve çıkışı 8870'e bağlı olarak.Saygılar.mg1980

Alıntı yapılan: POWER - 06 Temmuz 2013, 10:19:49
ben bu uygulamayı çok yaptım fakat böyle bir sorunla karşılaşmamıştım.

arkadaşlar 3 gün uğraştım ama direk cep telefonundan MC8870 i çalıştıramadım, elektroniğin en sevdiğim yönü çözümün çok olması, ben bu şekilde aştım sorunu. elbette ki farklı yöntemlerle de aşılabilir belki ben bir yerlerde hata yaptığım için sonucu alamadım ama önemli olan sorunu çözmek değil mi?
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 06 Temmuz 2013, 22:40:16
peki yukarıda verdiğin devreyi mi yaptın?cm8870 devresi birazcık farklı çünkü.
Başlık: Ynt: DTMF Projeleri
Gönderen: Hattuşa - 08 Temmuz 2013, 00:42:27
Alıntı yapılan: POWER - 06 Temmuz 2013, 22:40:16
peki yukarıda verdiğin devreyi mi yaptın?cm8870 devresi birazcık farklı çünkü.

usta MC8870 devresi değil mi bu, elimdeki entegrede MC8870 (direnc netten almıştım)

yukarıda verdiğim devreyi yaptım ama sonradan farkettim ki osc. ye ait cond. olmasada oluyor, sonuc olarak direk datasheetteki uygulamayı da yaptım, devre kısmen çalışıyor. kısmen dedim şöyleki tuş takımından 1-4-7-*-# ler çalışmıyor, diğer rakamlar çalışıyor, 100K lık trimpotla çıkışı yakalayabiliyorum, hatta 16-17, pin arasındaki 330K ya paralel 4148+100k takınca biraz daha iyi oldu, benim anlayamadığım neden bazı tuşların çalışmadığı, skoptan sinyali görebiliyorum ama sağlıklı değil, bu arada çalışan kısım aslında bana yeter ama çalışmamasına taktım ben.
ayrıca kendi cep. telim ve 2 adet eski model tellerle denedim, kendi telefonumda hepsi sorunsuz çalışıyor, birisinde LM386 olmayınca hiç çalışmıyor, diğer cep telefonu (ki devreyi bununla kurmayı planlıyorum) kısmen çalışıyor.
yaw bu sorun yazılımla olsaydı şimdiye ete hocanın kafasını şişirirdik ama analog yapıya mecbur kendimiz tırmalayacağız.
bu arada ete hocam mailinizi aldım, balık için teşekkür ederim. derdim kendimizi geliştirelim.
hazırcı olsaydık ete hocamda çaldığım ve 2 senedir kullandığım ısı ayarlı havya gibi yapardık  ;D
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 08 Temmuz 2013, 14:31:41
senin isis şemasını verdiğin devre, cm8870 nin devresi değil.sen en iyisi cm8870 datasheed bilgisini indir.ordaki uygulama devresini yap kesinlikle çalışır.ben bu uygulamadan defalarca yaptım problem çıkmadı.
Başlık: Ynt: DTMF Projeleri
Gönderen: Hattuşa - 08 Temmuz 2013, 21:02:50
Alıntı yapılan: POWER - 08 Temmuz 2013, 14:31:41
senin isis şemasını verdiğin devre, cm8870 nin devresi değil.sen en iyisi cm8870 datasheed bilgisini indir.ordaki uygulama devresini yap kesinlikle çalışır.ben bu uygulamadan defalarca yaptım problem çıkmadı.

usta verdiğim şema ile CM8870 datasheetindeki uygulama aynı değil mi? sadece benim hatam kristale bağlı cond. fazlalık ayrıca girişte sinyalin parazitini ve biasını yapmak için ilave trimpot ve direnç atılmış, yanlışmıyım?

BU arada herkese hayırlı ramazanlar diliyorum.
Başlık: Ynt: DTMF Projeleri
Gönderen: POWER - 08 Temmuz 2013, 21:15:49
bakıldığı zaman farklı yerleri var söylediğin gibi.bu sonucu nasıl etkiler bilemiyorum.ben hep cm8870 uygulama devresinden yaptım.sorunla karşılaşmadım.birde bu verdiğin devreyi uygula bakalım ne olacak?
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 05 Ağustos 2013, 20:51:58
Hocam merhabalar:
hocam dtmf demişken dtmf kodlarını lcd ekranda görebilirmiyiz CM 8870 PİC16F628A kulanarak lcd ekranda telefon tuşlarına dokundukca ekranda (1 2 3 4 5 6 7 8 9 0 # * A B C D ) Teşakkürler hocam....
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 05 Ağustos 2013, 22:51:57
Böyle soruları garip buluyorum. Madem 8870 bu kodları zaten sayı olsrak veriyor ise , 628 de bu kodu oradan okuyorsa geriye lcd ye yaz demek kalmazmı. O halde sorunun cevabı görebilirsin değilmi.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: yellow_tiger - 18 Aralık 2013, 15:06:32
ete hocam mrb ht9200a ile bi cihaz yaptım dtmf cıkısını hoparlerden duyabiliyorum ancak telefon santrali hicbişekilde tepki vermiyor daha önce ugrasmıssınız .Ht9200 cıkısını hatta vermede sıkıntı yasıyorum sanırım örnek olabilecek bi şeme verebilirmisin varsa hocam :(
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Aralık 2013, 15:13:38
Google'a HT9200A yazınca sana bir sürü örnek şema veriyor zaten. İncele ve aklına yatan birisini uygula.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: yellow_tiger - 18 Aralık 2013, 15:18:27
hocam bu devreyi kullanıyorum suan ama sonuç alamadım cok araştırdım ancak işime yarar bişey bulamadım genelde herkez aynı sıkıntıyı yasamıs ptt santrali dtmf tonları algılamıyor sorun nerde olabilir
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Aralık 2013, 15:23:25
HP den ses duyabilirsin ancak DTMF kodları istenilen frekansta çıkmıyordur mutlaka.
PBP manuali derki DTMF kodları üretecekseniz işlemci frekansınız en az 20 MHz olmalı aksi halde sorun yaşarsınız der.

KOdlarını görmedim. Devrende kristal falanda gözükmüyor muhtemelen sebep budur.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: yellow_tiger - 18 Aralık 2013, 15:28:56
hocam bu semadaki ht9200a bolumunun cıkısını kullanıyorum benim işlemcim 18f2520 LCD vs var devremde yazılım olarakta ccs kullanıyorum yalnız kristal frekansım 4mhz ,ama anlamadığım nokta dataları seri olarak ht9200 a basıyorum datashetende belirttikleri şekilde işlemci kristal frekansı hangi konuda etkiler sistemi ht9200a ilk datayı aldıktan sonra dtmf üretmeye baslıyor
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 18 Aralık 2013, 15:44:38
Ben karıştırdım sanırım. Kodu zaten entegre üretiyor. Bu nedenle 4 Mhz de de çalışması gerekir.
Başka bir sorunun var demekki ama maalesef hiç bir yorum yapamıyorum çünki bu konuda hemen hemen hiç tecrübem yok.
Gelen DTMF kodlarını çözdürme konsunda çok çalıştımda DTMF kod üretmeyi hiç yapmadım desem yalan olmaz.
Sorun olabilecek şeylerden biriside hat trafosu da denilen arada kullanılan trafodur. Bu trafo 1:1 oranında sarıma sahip olmalıdır. Ama her bir taraf sargısı 600 ohm olmalıdır. Bu empedans hat ta sinyalin kaybolmaması için gereklidir. Trafon uygun değil ise sorun buradan da kaynaklanabilir. Eski modemlerde bu trafonun çok kalitelilerini bulmak mümkün. Onlardan birisini kullanmaya çalış bence.

Verdiğin şema edaboard sitesinde verilmiş. Orada yapanlarda aynı sorunu yaşamışlar. Ama bir çözüm üretilmemeiş maalesef.

Ete

Başlık: Ynt: DTMF Projeleri
Gönderen: yellow_tiger - 18 Aralık 2013, 15:46:47
anladım hocam cok sagolun
Başlık: Ynt: DTMF Projeleri
Gönderen: Hattuşa - 19 Aralık 2013, 09:02:33
s.a.
bu projede ete hocamızın bir çalışması vardı, onu geliştirmek için bundan 7-8 ay önce bir çalışma yapmıştım, entegre olarak CM8870 kullandım sorunum şu idi, 8870 çıkışından 4-6-7-8-9 rakamlarını alıyor ancak 1-2-3-5-0 ları alamıyordum, bunun sebebini bulamadım.
Başlık: Ynt: DTMF Projeleri
Gönderen: medes - 19 Aralık 2013, 16:36:48
pro-TR  DTF okuyucusu olan 8870 ent'sinin bazı kodları okuyup bazılarını okumama gibi bir lüx'ü yoktur ben bu entegreyi yaklaşık
10 yıldır kullanıyorum böyle bir durumla karşılaşmadım . yalnız bu entegrenin devresini yaparken dikkat edilmesi gereken pdf'sinde veya daha önceden denenmiş bir devre ile dizayn edilir ise herhangi bir problem çıkmaz . devrede hata yok ise seninde
anlattığına bakılır ise vede benim anladığım kadarıyla 8870 ent'sinin ton girişine uygulanan ton ses yüksekliği fazla ise bu gibi
dengesizlik yapabilmektedir onun için bu devreyi ilk olarak kulanılacak devrelerde ton girişine bir adet ayarlı direnç konarak
kodların en güzel okunduğu yerde bırakılmalıdır. ve ton girişine konması gereken direnç böylece seçilmelidir.
Başlık: Ynt: DTMF Projeleri
Gönderen: yellow_tiger - 24 Aralık 2013, 14:04:02
arkadaşlar ben dtmf kod çözme değil kod gönderme devresi yaptım alarm panellerine bağlanan alarm durumunda kayıtlı numaraları arayan devre ancak sorunum su numarayı aratıyorum karsı tarafın tepkisini anlayamıyorum yani karsı taraf telefonu acmısmı yada hat mesgulmu yada cevap verilmiyormu.Burda tıkandım kaldım piyasada satılan hazır modelullerde optocuplerlı bi devre var devre aşağıdaki gibi buna ekstra olarak herhangi bi kod çözücü entegre vs yok sadece dtmf kod uretme entegresi ht9200a var,yardımlarınızı bekliyorum devreyi denedim ama hiçbir sonuç alamadım.Yapmak istediğim numara arandıktan sonra karsı taraf telefonu açtığında apr içindeki sesi dinletmek...
Başlık: Ynt: DTMF Projeleri
Gönderen: onurinci - 24 Aralık 2013, 16:57:52
hattı kontrol etmek zor iştir ,ülkemizde çevir sesi ile ve ilçelere göre değişiklik gösteriyor.genelde Istanbul tonları 450hz sinus sinyal. bunu çözecek bir PLL kurman gerekir.klasik olarak LM567 entegresi ile yapılıyor.PLL öyle ayarlanıyorki ,450hz varken çıkışı logic 1 olyor.tabi meşgul çalar ise türk telekom ton standartlarını araştırıp ton aralıklarını ve peryotlarını iyice öğrenip bunları işlemcinle algılamak gerekiyor.kısacası gözünü korkutmak istemem ,fakat basit bir işlemde değil.
Başlık: Ynt: DTMF Projeleri
Gönderen: mg1980 - 24 Aralık 2013, 19:44:02
Ben şöyle bir çözüm bulmuştum:Bir süre sonra ahizenin kaldırılacağını var sayıp anonsu başlatmış, bir süre bir kaç kez anonsu tekrarlatmıştım.Telefonun belli bir sürede açılmama ihtimaline karşı ahizeyi tekrar kapatıp bir süre sonra tekrarlatmıştım.Beş numarayı
sırayla aratıyordum.Belki çok mantıklı değil ama sonuçta iş görüyordu.Bir keresinde evdeki hareket sensörünün yanlış çalışması sonucu
ANKARA'da polisler hırsız alarmı uyarısıyla adrese gitmişlerdi.
Başlık: Ynt: DTMF Projeleri
Gönderen: Hattuşa - 24 Aralık 2013, 20:27:05
Alıntı yapılan: medes - 19 Aralık 2013, 16:36:48
pro-TR  DTF okuyucusu olan 8870 ent'sinin bazı kodları okuyup bazılarını okumama gibi bir lüx'ü yoktur ben bu entegreyi yaklaşık
10 yıldır kullanıyorum böyle bir durumla karşılaşmadım . yalnız bu entegrenin devresini yaparken dikkat edilmesi gereken pdf'sinde veya daha önceden denenmiş bir devre ile dizayn edilir ise herhangi bir problem çıkmaz . devrede hata yok ise seninde
anlattığına bakılır ise vede benim anladığım kadarıyla 8870 ent'sinin ton girişine uygulanan ton ses yüksekliği fazla ise bu gibi
dengesizlik yapabilmektedir onun için bu devreyi ilk olarak kulanılacak devrelerde ton girişine bir adet ayarlı direnç konarak
kodların en güzel okunduğu yerde bırakılmalıdır. ve ton girişine konması gereken direnç böylece seçilmelidir.

hmm ustam hiç dikkat etmedim ama mantıklı geliyor. nasip olursa bunu bir deneyeceğim. yalnız ben hat trafosu eklememiştim. bundan kaynaklanabilir diye düşünmüştüm
Başlık: Ynt: DTMF Projeleri
Gönderen: KAYALARLI - 20 Mayıs 2014, 16:12:38
Hocam hayırlı günler dtmf projesinde pic tafafında üretilen sound notaları buzzer e değilde telefon hattına nasıl veririz.
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 20 Mayıs 2014, 16:29:41
RAR dosyası içinde yer alan Telefon_Kon628.DSN devresinde buzzer çıkışından ayrıca bir uç alınarak bir kondansatör üzerinden hatta bağlanmıştır.
Bu şekilde buzzere verilen sesin aynısı hatta da bir miktar verilmektedir. Ses kimisine göre yeterli kimisine göre yetersiz geldi.
Bu sistem hiç olmazsa bir miktar sesi hattan iletmektedir. Sesi artırmak için değişik metodlar var ama hepside komplike ilaveler gerektiriyor. Bunlardan en kolayı ses çıkışı ile hat arasında bir başka hat trafosu kullanmak tır.
Ne yazıkki aklımda yada elimde çi,zilmiş bir şema yok. Denemeler yaparak uygun bir çözüm bulunabilir.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: Starvays - 04 Haziran 2014, 12:47:19
İyi günler. Paylaşmış olduğunuz dökümanlardan yararlanarak bende bu devreyi yapmaya çalıştım.Sizin tasarladığınız devreden farklı olarak piyasada bulamadığım için  TIL-111 yerine 4N25,HT9170 yerinede HT9170B kullanmak durumunda kaldım.Ayrıca 12V AC güç kaynağım olmadığı için ordaki köprüdiyot 'u iptal edip direk 12V DC bağladım.
Sonuç olarak devre çalışmadı. :) Açıkcası nerde veya nerelerde hata yaptığımı bulabilicek bilgiye sahip değilim. Devreyi tekrar malzeme alıp en baştan kurmayı düşünüyorum ama bundan önce size danışmak istedim. Teşekkürler.

(https://etepic.com/proxy.php?request=http%3A%2F%2Fi.hizliresim.com%2F0VaBNR.jpg&hash=a80f4a2d7fc7dd05b444c6465e4fda418a679246)
(https://etepic.com/proxy.php?request=http%3A%2F%2Fi.hizliresim.com%2FW2yQ1P.jpg&hash=c37f7f94b38c704a8bb69aa1638708f9df23f169)
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 04 Haziran 2014, 18:04:45
Yapmış olduğun tadilatlar yada değişiklikler sistemin çalışmasını etkileyecek şeyler değil. Özellikle HT9170 zaten DIP kılıf için 9170B olarak alınması gerekiyor idi.
Bu durumda devrende başka bir kusur var demek oluyor.
Bunu gerçekten bulacak durumda değil isen ya benim yada bir başka arkadaşının kartı kontrol etmesi gerekir.
Bir yenisini yapsan bile aynı sonucu alman kuvvetle muhtemel.
Hangi şehirde oturuyorsun.?  Yada devreyi kargo ile yolayabilecek durumdamısın. Yollaması en azından 5-7 TL geri almasıda bir o kadar tutacak nerdeyse yenisinin maliyeti kadar.
En iyisi adım adım gidip sorunu bulmak aslınd.a Öncelike işlemciye doğru program atabiliyormusun test etmek gerek.
Bu test sonucunda işlemcininde yerinde çalışıp çalışmadığını anlamak mümkün olur. Aslında bunu anlamanın bir yoluda telefondan arama yapmak olur. Şayet sistem çalışıyor ise arama LED i yanması gerekir.
Sen en iyisi biraz daha detay ver ne oluyor ne olmuyor bilelim.

Ete

Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 11 Nisan 2015, 15:58:41
Hocam merhaba nasılsınız iyisinizdir umarım hocam bu devrede röle sayısıs artırsak örnegin 10 röle bu yazılımı 18f4550 ye uyum saglarmı bu yazılım teşekkürler..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 11 Nisan 2015, 19:28:11
Bu soru bana pek mantıklı gelmedi ya neyse yinede cevaplayayım. Röle sayısı tamamen röleyi sürecek olan boş port pini ile alakalı. Bunu sende biliyor olmalısın. Pin varsa röle sayısında sorun yok demektir .

İşlemci uyumu ise tamamen farklı bir konu. Her işlemcinin kendine has özellikleri var o özellikleride data sheetten bulup çıkarmak gerek. Yapabiliyorsan uyumsuzluk diye bir sorun oluşmaz. Özellikler neden lazım onuda belirteyim. İşlemcide kullanmadığın özellikleri kapatman gerekiyor. Neler olduğuna bakıp nasıl kapatıldıklarını öğrenip uygulaman gerekiyor.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: TA5AAT - 12 Nisan 2015, 10:03:44
hocam cevap için teşşekürler yüreginize saglık..

1 haftadır ugraşıyorum 18f4550 ile yapamadım 877 çalışmakta devre 877 ile 4550 aynı bacak baglantıları var dataşeet baktıgımızda 4550 ile ugraşmamaın sebebii ise usb port eklemek devrefye farklı bir özellik için çalışma yapmaktayım pc üzerinden kontrol örnegin fakat şimdi pc biyana 4550 ile ne yaptıysam olmadı ayaklar aynı 877 ile..
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 12 Nisan 2015, 17:32:40
Program koymadığın için üzerinde inceleme yapamıyorum. Data sheet den gördüğüm kadarı ile yalnızca ADC ayarlamasında bir fark var. ADC modülünü iptal etmek için 877 de,
Adcon1=%00000111   Komutunu veriyoruz, 4550 de ise Adcon1=%00001111
komutunu vermek gerekiyor. Onun dışındakiler hepsi aynı olarak gözüküyor.
Ancak sigorta ayarları tamamen farklı olacaktır.

Etel

Başlık: Ynt: DTMF Projeleri
Gönderen: Mahmut Eşit - 29 Nisan 2016, 09:23:01
Selam hocam bn yenyım sız 4roleli dtmf cep telefon buzzerli varmı elinizde varsa verebılırmısıniz
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 29 Nisan 2016, 09:26:27
Normal telefonlu olanı var ve projeler kısmında yayınlanmış durumda. Bazı ufak değişikliklerle aynı sistem cep telefonu ilede çalışır.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: temha43 - 06 Haziran 2017, 09:39:47
selamun aleyküm hayırlı ramazanlar.
Saygı değer ete hocam öncelikle yardımlarınız için teşekkürler ALLAH RAZI OLSUN

Merkezi ezan sisteminin kodlarını okumak için önceleri  bir pic li bir devre yapmıştım. onunla okuyabiliyordum. bu devreyi kaybettim. Yenisini yaparken de fazla uğraşmayayım diye dtmf entegresinin çıkışına direk led bağladım. fm alıcıda bu devre kodları göstermedi. bilgisayarın ses çıkışını kullanarak bilgisayardan dtmf enkoder programı ile denedim. kod gönderdiğim zaman ledlerin bazıları yanık kalıyor. beslemeyi kapatıp açtığım zaman sönüyor. Ama tekrar kod gönderdiğim zaman yanık kalıyor. dtmf enregresinin gücü led yakmaya yetmiyor. mu acaba.

daha öncede bu merkezi ezan sistemi alıcısının kod çözücü kısmı çalışmıyor du. 3,58 mhz kristali 6 mhz yaptım çalıştı. Vericideki kristal le alıcıdaki kristal aynı mhz olması gerekiyor diye bir kanıya vardım. doğru mu bilmiyorum.
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 06 Haziran 2017, 09:51:08
Bu sorduğun soruların bütün cevapları encoder entegresinin data sheetinde yazıyor olması gerek.
Açıkçası bu amaçla ne kullandım nede olabilirmi diye düşündüm.
Hangi decoder entegresini kullanıyor isen onun data sheetine bakıp cevaplarını kendin bulabilirsin.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: onurinci - 06 Haziran 2017, 15:18:59
8870 kod çözücü ve türevleri Streering Logic komparatorü olduğu için çıkış portları Latch'tir,aynen dediğiniz gibi en son gelen 4 bitlik data çıkışlarda kalır ve gerilimi kesmedende gitmezler. 8870 Switched Capacitor Filter yani SCF donanımına sahiptir kristal'den elde ettiği Clock sinyali ile dijital filtreleme yapar. her ikisininde Clock frekansının aynı olması şarttır. uluslar arası ton standartı için kristalin 3.579.545 olması gerekmektedir. bu cami belediye anons sistemlerinde elinde telsizi olanlar müdahele edemesinler diye karşılıklı kristal frekanslarını standardın dışında kullanılıyor.ayrıca çipin birde DV Data Valid yani geçerli bir çift ton sinyali ayağı vardır.bu ayak sadece DTMF sinyali aldığında tepki verir,sinyalin durması esnasında eski durumuna geri döner..
Başlık: Ynt: DTMF Projeleri
Gönderen: temha43 - 06 Haziran 2017, 18:50:09

kardeşim ALLAH senden de razı olsun. Çok açıklayıcı bilgiler vermişsin. dv dediğin uç 15 nolu uç dimi std yazan
Başlık: Ynt: DTMF Projeleri
Gönderen: onurinci - 06 Haziran 2017, 19:53:51
rica ederim evet SDT pini..
Başlık: Ynt: DTMF Projeleri
Gönderen: temha43 - 16 Haziran 2017, 10:13:13
selamun aleyküm arkadaşlar

dtmf üzerine biraz çalışma yaptım. sizinle paylaşmak istedim.
İlmiz kütahyada merkezi ezan sistemi ve dtmf ile ezan aç kapa uygulaması yapılmaktadır. Bir gün bizim caminin ezan açma dtmf kartı arızalandı. Yapan firmayla görüştüm. belirbir müddet sönra alıcının arızalandığını dtmf ködlarını ökuyamadığını yenisinin alınmasını söyledi. Bizde şiparış verdik. yenisi geldi ö da çalışmadı. Firmaya tekrar geri gönderdik. adamlar yapıp tekrer geri gönderdiler. Baktım üzerinde 3.57 lik kristaller sökülmüş 6 mhz lik kristaller takılmış. 8870 ve pice ben de eski alıcının kristallerini de değiştridim. aynı şekilde 6 mhz yaptım eskisi de çalıştı. adamlar zaten eski arızlanan kiristallerin üzerine 3.57 yazmışlar kalemle ama gerçekte 6 mhz imiş. Neyse aradan birkaç sene geçti. Bizim menzin bizim yedekteki cihazı alıyör meslektaşının birinin arızalı cihazının yerine takıyör bizim cihaz yine çalışmıyör Bana cihazı geri getirdi çalışmıyör diye. Biraz araştırma yaptım. herkezin cihazı arızalanmış yaptırıyörlramış. yaptıranlara baktım 8870 in kristali 4 mhz ye dönmüş bizim eski cihaza direk 4 mhz kristale döndürdüm çalıştı. fakat yeni cihazı 4 mhz ye çevirdim çalışmadı. bu iş beni baya uğraştırdı. ezan dtmf ködlarını kaydettim. bilgisayardan ses çıkışı ile ezan sisteminin dtmf kartına ses girişi yapıp sesi bilgisayardan gönderiyörum bilgisayardan açıp kapatıyör ama alıcıya bağlıyörum çalışmıyör.
çalıştıramadığım cihazın pic i arızalanmıştı. cöde prötek yapılmamış prögramı ökuyup yeni pice yükledim fakat epröm dösyasını kaydetmiyör bunun zararı ölabilr mi acaba. yalnız bahsettiğim gibi dtmf ködlarını biligisayarın ses çıkışından gönderdiğim zaman açıp kapatıyör.
fm alıcıdan gelen sesi 8870 çözemiyör mu diye çıkışına led bağladım önlar da yanıp sönüyör
8870 iİLE YENİ BİR  KÖD ÇÖZÜCÜ DEVRESİ YAPTIM BİLGİSAYARIN SES ÇIKIŞINDAN BAĞLANTI YAPTIM VE BİNARY KÖDLARI ökudum media playeri yavaşlararak. KÜTAHYA DTMF EZAN açma ködu 1100,0011,0110,0100 kapama ködu 1100,0011,0110,0101
pic e kendim prögram yazayım dedim prögramlama könusunda da iyi ölduğumu zannediyördum ama böyle basit bir prögram dahi beni baya uğraştırdı. ilk yazdığım pröğram çalışmadı. önlarıda inceleyip hatalarımı söylerseniz sevinirim.
TRISB=%11110001
   TRISA=%00000000
   
   portA = 0
   
    high porta.4
    pause 1000
    low porta.4
    basla:
   
    if portb = %01000001 then  'en düşşük bit rb4
    high porta.4
    endif
    goto basla
   
   
   
    if portb= %01010001 then
    low  porta.4
    endif
    pause 10
    goto basla
    end

bu prögram çalışmadı rb0 std ucu yani dtmf öluştuğunda 1 ölan uc pört b nin sön 4 biti de data uçlarımız

TRISB=%11110001
   TRISA=%00000000
   
   portA = 0
   
    high porta.4
    pause 1000
    low porta.4
    basla:
   
    if portb.6 = 1 and portb.0 = 1 then
    'en düşşük bit rb4
     high porta.4
    endif 
   if portb.0 = 1 and portb.6 = 1 and portb.4 = 1 then  'en düşşük bit rb4
    low porta.4
   
    endif
    pause 10
    goto basla   
   
    end
bu pröğram bilgisayardan çalıştı bu gün öğlen namazında fm den de deneyeceğim. yalnız kapattıktan sönra 1 saniye kadar açıp tekrar kapatıyör  hım bu arada dtmf ködlarının sadece birisiyle açıp kapama yaptırıyörum sön ködlarla yani 0100 ile açma 0101 ile kapama yaptırıyörum. biraz uzun öldu vaktinizi aldım. hakkınızı helal edin.
ALLAHA EMANET ÖLUN . ve namazlarınızı aksatmayın.
Başlık: Ynt: DTMF Projeleri
Gönderen: temha43 - 16 Haziran 2017, 15:32:54
بِسْــــــــــــــــــــــمِ اﷲِارَّحْمَنِ ارَّحِيم
son yazdığım program bugun cuma namazında çalıştı.
hepinizden ALLAH razı olsun
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 27 Eylül 2018, 14:24:28
dtmf kontrol ıle sıfre bolumunde sıfreyı yazılımdan degıstırdım.ama kabul etmıyor.
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 27 Eylül 2018, 14:25:47

BASLA:
SAYAC=0
GoSub SES1
GoSub SES2
YINE:    RAKAM=0:GoSub SIFREAL
           If CIK=1 Then BITIR  'süre aşımı olmuş ise
           If RAKAM=2006 Then 'yedek şifre olan 2006 buradan değiştirilecek.
              SIFRE=1234     'şifre değiştirilirken buradaki 2580 yerine yenisi yazılacak.
              GoSub SES2
              GoSub SES1
              GoSub SES2
              GoSub SES1
              GoSub SIFREYAZ
              GoTo  ROLEKONTROL

Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 27 Eylül 2018, 16:20:04
Ne yaptığın pek anlaşılmıyor. Zira olması gereken kısmı buraya koymayıp yedek şifre ile ilgili bölümü koymuşsun. Anlayamıyorum hatayı.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 27 Eylül 2018, 23:11:37
 SIFRE=1234     'şifre değiştirilirken buradaki 2580 yerine yenisi yazılacak.

bu bolumde 2580 olan sıfreyı ben yazılımla 1234 olarak degıstırdım.ama kabul etmedı.
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 27 Eylül 2018, 23:14:18
SIFREYAZ:;TEMP=SIFRE         
         ;BINLER=TEMP ;Dig 3
         ;YUZLER=TEMP; Dig 2
         ;ONLAR =TEMP ;Dig 1
         ;BIRLER=TEMP; Dig 0
         EWrite 0,[BINLER]:DelayMS 10
         EWrite 1,[YUZLER]:DelayMS 10
         EWrite 2,[ONLAR] :DelayMS 10
         EWrite 3,[BIRLER]:DelayMS 10
         Return
         


proton ıle degıstırdıgım ıcın sıfre al bolumundekı templerde hata verdıgınden dolayı kapatmıstım.şifre degıstıremem burdan kaynaklı olabılır mı ete usta
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 28 Eylül 2018, 08:13:12
Programa bakınca iki yerde yeni şifrenin yazılması gerektiğini görüyorum.
Birinci yer;
PAUSE 200
CLEAR
read 0,SAYI:PAUSE 10
IF SAYI=$FF THEN
   SIFRE=2580        'şifre değişirken buradaki şifre yerine yenisi yazılacak
   GOSUB SIFREYAZ
endIF

Burada yer alan SIFRE=2580 yerine yeni şifre yazılacak.

İkinci yer;
YINE:    RAKAM=0:GOSUB SIFREAL
           IF CIK=1 THEN BITIR  'süre aşımı olmuş ise
           IF RAKAM=2006 THEN 'yedek şifre olan 2006 buradan değiştirilecek.
              SIFRE=2580      'şifre değiştirilirken buradaki 2580 yerine yenisi yazılacak.

Burada da aynı işlem yapılmalı.
Diğer taraftan şifre rakamlarını teker teker çıkartıp eproma yazdıran o verdiğin bölümde Proton TEMP isimli değişken adına itiraz ediyor ise adını değiştirmen gerekirdi. TEMP yerine KAMP yaz yada başka bir isim ver. Ama o verdiğin ismi nerede TEMP görüyorsan orada da TEMP yerine kullanman gerekir.
Sen o satırları kapatarak Sifreyi bir yerde alamaz hale geliyorsun tabiiki çalışmaz o program.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 29 Eylül 2018, 17:21:30
If SAYI=5 Then        '#5
              GoSub SIFREAL      '5 rakamı girilirse
              GoSub SES1:GoSub SES2:GoSub SES3
              If CIK=1 Then BITIR
                If RAKAM=SIFRE Then  'önce eski şifreyi gir
                  GoSub SES1:GoSub SES1:GoSub SES2
                  GoSub SIFREAL    'sonra yeni şifreyi gir
                  If CIK=1 Then BITIR
                  SIFRE=RAKAM
                  GoSub SES1:GoSub SES2
                  GoSub SIFREYAZ   'yeni şifreyi eproma kayıt et.
                EndIf
           EndIf
        GoTo ROLEKONTROL   [code]


usta bu bolumde normalde sıfrenın degıstırılecegı bolum degılmı
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 29 Eylül 2018, 17:22:56
ustte gondermıs oldugum kısımda telefondan sıfreyın degıstırebılmemız gereklı degılmı.#9 yerıne ben onu #5 ıle degıstırdım ama sıfreyı degıstıremıyorum
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 29 Eylül 2018, 17:25:13
SIFREYAZ:
TEMP=SIFRE         
         BINLER=TEMP Dig 3
         YUZLER=TEMP Dig 2
         ONLAR =TEMP Dig 1
         BIRLER=TEMP Dig 0
       
EWrite 0,[BINLER]:DelayMS 10
EWrite 1,[YUZLER]:DelayMS 10
EWrite 2,[ONLAR] :DelayMS 10
EWrite 3,[BIRLER]:DelayMS 10
Return
[code]


Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 29 Eylül 2018, 17:26:18
dig 3
dig 2
dig 1
dgi 0

bu satırlarda hata verıyor protonda  degısıklık yapınca usta
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 29 Eylül 2018, 18:05:21
SIFREAL:  GoSub ALBILGI
          If CIK=1 Then Return
          RAKAM=SAYI*1000
          GoSub ALBILGI
          If CIK=1 Then Return
          RAKAM=RAKAM+SAYI*100
          GoSub ALBILGI
          If CIK=1 Then Return
          RAKAM=RAKAM+SAYI*10
          GoSub ALBILGI
          If CIK=1 Then Return
          RAKAM=RAKAM+SAYI
          Return     
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 29 Eylül 2018, 18:06:39
bu kısımda sıfre degısıklıgının oldugu bolummu usta

burda kafam karıstı proton da dahamı farklı

yıne corba gıbı sordum ama

kusuruma bakma usta
Başlık: Ynt: DTMF Projeleri
Gönderen: fofo - 29 Eylül 2018, 20:34:04
         
BINLER=Dig TEMP,3
         YUZLER=Dig  TEMP,2
         ONLAR=Dig TEMP,1
         BIRLER=Dig  TEMP ,0


şeklinde değiştirin.
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 17 Mayıs 2020, 01:02:51
sukru abının devre kartını yapıp ete hocamızın yazılımını kullanarak cep telefonu ıle calısır duruma getırdım.soyle bır sıkıntı mevcut.roleler kodları gırınce acılıyor.burda sıkıntı yok.mesela #1 dedıgımde 1 nolu role acılıyor.ama role sanıyeler ıcerısınde bu sure cok kısa role ac kapa yapıyor sureklı role degıstırdım olmadı.ters dıyot 1n 4007 kullanıyorum.role enerjı uclarına 100 nf taktım olmadı.roleye baglı olan led yanıyor.ondada sıkıntı yok.ama sankı role enerjısı kesılırmıs gıbı anlık tık tık diye calısıyor yazılımı eklıyorum konu ıle ılgılı yardımcı olabılırmısınız
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 17 Mayıs 2020, 01:06:03
 Device = 16F628A
@ CONFIG_REQ 
@ __config CP_OFF & DATA_CP_OFF & WDT_OFF &  XT_OSC & MCLRE_OFF & LVP_OFF & BODEN_OFF & PWRTE_OFF 

Xtal 4
CMCON=7

PORTA=0:PORTB=0
TRISB=%01011111   
TRISA=%11110000   


Dim SIFRE  As Word 
Dim RAKAM  As Word 
Dim TEMP   As Word 
Dim BASKA  As Word 
Dim ZAMAN  As Word 
Dim SURE   As Word 
Dim SAYAC  As Byte 
Dim  SAYI   As Byte
Dim  DURUM  As Byte
Dim  BIRLER As Byte
Dim ONLAR  As Byte
Dim YUZLER As Byte
Dim BINLER As Byte  
Dim ZIL    As Byte    'ÇALACAK ZİL ADEDİ
Dim X      As Byte
Dim CIK    As Bit
Dim YAZ    As Bit
Dim sayı As Word

Symbol CIKIS1=PORTA.0
Symbol CIKIS2=PORTA.1
Symbol CIKIS3=PORTA.2
Symbol CIKIS4=PORTA.3


Symbol ROLE  =PORTB.6
Symbol VALDAT=PORTB.0
Symbol BUZZER=PORTB.7

PORTA=0:PORTB=0
DelayMS 200
Clear
SAYI=ERead 0:DelayMS 10
If SAYI=$FF Then
   SIFRE=1234       'şifre değişirken buradaki şifre yerine yenisi yazılacak
   GoSub SIFREYAZ
EndIf 

BINLER=ERead 0 :DelayMS 10
YUZLER=ERead 1 :DelayMS 10
ONLAR =ERead 2 :DelayMS 10
BIRLER=ERead 3 :DelayMS 10
SIFRE=BINLER*1000+YUZLER*100+ONLAR*10+BIRLER
;ZIL=ERead 16
;If ZIL=255 Then
  ; ZIL=5
   ;EWrite 16,[ZIL]
;EndIf   
;DURUM=ERead 10
;If DURUM=255 Then
; DURUM=0
 ;GoSub ROLEYAZ
;EndIf 
;PORTA=DURUM
'--------------------------------------ANA--------------------------------------
 
                                                                   
BASLA:
SAYAC=0
GoSub SES1
YINE:  RAKAM=0  : GoSub SIFREAL   
         ;  If CIK=1 Then BITIR  'süre aşımı olmuş ise
           If RAKAM=3232 Then 'yedek şifre olan 2006 buradan değiştirilecek.
              SIFRE=1234     'şifre değiştirilirken buradaki 2580 yerine yenisi yazılacak.
              GoSub SES2
              ;GoSub SES1
              ;GoSub SES2
              ;GoSub SES1
              GoSub SIFREYAZ
              GoTo  ROLEKONTROL
           EndIf   
           If RAKAM=SIFRE Then
            GoSub SES4:DelayMS 50
            GoTo ROLEKONTROL
          EndIf 
           SAYAC=SAYAC+1
           If SAYAC=3 Then  '3 defa yanlış şifre girilebilir fazlasında bloke olur
 ATLA:           
        GoSub CIKIS
             ; Sleep 600   '600 sn bloke olacak.
              GoTo BASLA
           EndIf   
         GoSub SES2
           GoSub SES1
           GoSub SES3  
           GoTo YINE

ROLEKONTROL:    If YAZ=1 Then GoSub ROLEYAZ
                GoSub ALBILGI
                If CIK=1 Then BITIR 'süre aşımı olmuş ise
                If SAYI=12 Then ACMA  '#  '# tuşuna basılmış ise açma ya git
                If SAYI=11 Then KAPAT '*  '* tuşuna basılmış ise kapatmaya git.
                GoSub SES2:GoSub SES3
                
               GoTo ROLEKONTROL
ACMA:     
          GoSub ALBILGI
          If CIK=1 Then BITIR
           If SAYI=0 Then      'sıfır tuşuna basılmış ise çık ve tekrar başa git
              GoSub SES3
              GoSub CIKIS
              GoTo BASLA
           EndIf 
   
           
           
           If SAYI=1 Then
              If DURUM.1=0 Then 
                GoSub SES1:YAZ=1 
                PORTA=DURUM | %00000001  ;%00000010 '1 tuşuna basılınca 1 nolu çıkışı aç
             ; High  PORTA.0 
                GoTo ROLEKONTROL
              EndIf
           EndIf
           
          If SAYI=2 Then
              If DURUM.2=0 Then
                GoSub SES1:GoSub SES1:YAZ=1
                PORTA=DURUM | %00000010    '%00000100  2 tuşuna basılınca 2. ci çıkışı aç
           ;High    PORTA.1 
                DelayMS  2000
         ;  Low     PORTA.1 
                PORTA=DURUM & %11111101
                GoTo ROLEKONTROL
              EndIf  
           EndIf           
                 
           If SAYI=3 Then
              If DURUM.3=0 Then
                 For X=1 To 3:GoSub SES1:Next
                 YAZ=1
                 PORTA=DURUM | %00000100   '3 %00001000 tuşuna basılınca 3. çıkışı aç
             ; High PORTA.2
                 GoTo ROLEKONTROL
              EndIf   
           EndIf
          
           If SAYI=4 Then
              If DURUM.4=0 Then
                 For X=1 To 4:GoSub SES1:Next
                 YAZ=1
                 PORTA=DURUM | %00001000  '4  %00010000 tuşuna basılınca 4. çıkışı aç
              ; High PORTA.3
                 GoTo ROLEKONTROL
              EndIf   
           EndIf
                                   
 If SAYI=5 Then        '#5
              GoSub SIFREAL      '5 rakamı girilirse 
              GoSub SES4 :GoSub SES1
              If CIK=1 Then BITIR
                If RAKAM=SIFRE Then  'önce eski şifreyi gir
                  GoSub SES2:GoSub SES4
                  GoSub SIFREAL    'sonra yeni şifreyi gir
                 If CIK=1 Then BITIR
                  SIFRE=RAKAM
                  GoSub SES4
                  GoSub SIFREYAZ   'yeni şifreyi eproma kayıt et.
                EndIf
           EndIf
        GoTo ROLEKONTROL    
             
        
                  
KAPAT:     GoSub ALBILGI         'önce * tuşuna basılmış ise program buraya gelir
           If CIK=1 Then BITIR
           
           DURUM=PORTA
           
           If SAYI=0 Then     'sıfır tuşuna basılmış ise her şeyi kapat
              GoSub SES3
           Low   PORTA  '*0   %10000001
           EndIf   
 
           If SAYI=1 Then     '1 tuşuna basılmış ise 1. çıkışı kapat
              If DURUM.1=1 Then
                 GoSub SES2:YAZ=1
                 PORTA=DURUM & %11111110      ;%11111101
        ; Low    PORTA.0 
                 GoTo ROLEKONTROL
              EndIf
           EndIf   
              
        ;   If SAYI=2 Then          '2 tuşuna basılmış ise 2. çıkışı kapat
 ;            If DURUM.2=1 Then
             ;   GoSub SES2:GoSub SES2
            ;    YAZ=1
    ;            PORTA=DURUM & %11111101
             ;   GoTo ROLEKONTROL
            ; EndIf
       ;    EndIf  
 
           If SAYI=3 Then       '3 tuşuna basılmış ise 3. çıkışı kapat
              If DURUM.3=1 Then
                 For X=1 To 3:GoSub SES2:Next
                 YAZ=1
                 PORTA=DURUM & %11111011    ;%11110111
            ;      Low PORTA.2
                 GoTo ROLEKONTROL
              EndIf   
           EndIf

           If SAYI=4 Then    '4 tuşuna basılmış ise 4. çıkışı kapat
             If DURUM.4=1 Then
                For X=1 To 4:GoSub SES2:Next
                 YAZ=1
                PORTA=DURUM & %11110111    ;%11101111
               ;   Low PORTA.3
                GoTo ROLEKONTROL
              EndIf   
          EndIf
           
SIFREAL:  GoSub ALBILGI
          If CIK=1 Then Return
          RAKAM=SAYI*1000 
          GoSub ALBILGI
          If CIK=1 Then Return
          RAKAM=RAKAM+SAYI*100 
          GoSub ALBILGI
          If CIK=1 Then Return
          RAKAM=RAKAM+SAYI*10    
          GoSub ALBILGI
          If CIK=1 Then Return
          RAKAM=RAKAM+SAYI        
          Return      

ALBILGI: 
         SURE=0:ZAMAN=0
           While VALDAT=0
             SURE=SURE+1
             DelayUS 900
               If SURE=22000 Then
                GoSub CALIS
             EndIf
           Wend        
               
SAYIAL: 
        SAYI=0
        While VALDAT=1       ;STD
        SAYI.0=PORTB.4      ;Q1
        SAYI.1=PORTB.3      ;Q2
        SAYI.2=PORTB.2      ;Q3
        SAYI.3=PORTB.1      ;Q4
        Wend
        If SAYI=10 Then SAYI=0
        Return

SIFREYAZ:
TEMP=SIFRE          
       BINLER=Dig TEMP,3
         YUZLER=Dig  TEMP,2 
         ONLAR=Dig TEMP,1
         BIRLER=Dig  TEMP ,0
         
EWrite 0,[BINLER]:DelayMS 10 
EWrite 1,[YUZLER]:DelayMS 10
EWrite 2,[ONLAR] :DelayMS 10
EWrite 3,[BIRLER]:DelayMS 10
Return
         
ROLEYAZ:
        DURUM=PORTA & %11110000  ; %01111110
        EWrite 10,[DURUM]
        YAZ=0
        Return         
          
SES1: Sound BUZZER,[110,12]:DelayMS 130:Return
SES2: Sound BUZZER,[95,12] :DelayMS 130:Return
SES3: Sound BUZZER,[85,25] :DelayMS 130:Return         
SES4: Sound BUZZER,[50,25]  :DelayMS 130:Return
BITIR:
GoSub CIKIS  
GoTo BASLA
Return 
         
CIKIS:  
        SURE=0
        CIK=0 
        SAYAC=0
        RAKAM=0
        GoSub SES2
        GoSub SES2
        GoSub SES3
        GoSub SES3
        Return
              
CALIS:
    
      If ROLE=0 Then
      ; While ROLE=1 :Wend
        ;PORTA=DURUM & %00000000
        Low PORTA
        Else
      GoTo ROLEKONTROL
     EndIf
    Return                       
;End             
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 17 Mayıs 2020, 08:01:58
Program üzerinde çok oynanmış ve denemeler yapılmış gözüküyor.
Sorunun röle açma kısmında olduğunu düşünüyorum. Bu nedenle önceden nasıl yazmışım hatırlamıyorum ama bugün yazsam aşağıdaki şekilde yazardım.
Aşağıda 4 adet rölenin açma şekli yer alıyor eskisi ile değiştir bunları.
Temel düşünce bir röle açık ise yeniden açmaya çalışmanın anlamı yoktur hatta zararlıda olabilir. Sürekli aç kapa yaptırabilir bu işlem. Açıksa dokunmuyoruz çünki gelen emir açma yönünde aynı şeyi kapatma içinde yapmak lazım.
Programda bir sürü şu anda kafama yatmayan olumsuzluklar mevcut ama bütün programı düzeltmeye kalkışmak da hata olur. Aksayan yerleri düzeltmek daha uygun olacak.
ACMA:    
          GoSub ALBILGI
          If CIK=1 Then BITIR
          If SAYI=0 Then      'sıfır tuşuna basılmış ise çık ve tekrar başa git
              GoSub SES3
              GoSub CIKIS
              GoTo BASLA
          EndIf    
          
          If SAYI=1 and CIKIS1=0 Then
              CIKIS1=1
              DURUM=PORTA & %00001111
                GoSub SES1:YAZ=1 
                GoTo ROLEKONTROL
              EndIf
          EndIf
          
          If SAYI=2 and CIKIS2=0 Then
                CIKIS2=1    
                GoSub SES1:GoSub SES1:YAZ=1
                DURUM=PORTA & %00001111
                DelayMS  2000
                CIKIS2=0
                DURUM=PORTA & %00001111
                GoTo ROLEKONTROL
              EndIf  
          EndIf          
                
          If SAYI=3 AND CIKIS3=0 Then
                For X=1 To 3:GoSub SES1:Next
                YAZ=1
                CIKIS3=1
                DURUM=PORTA & %00001111
                GoTo ROLEKONTROL
          EndIf

          If SAYI=4 AND CIKIS4=0 Then
                For X=1 To 4:GoSub SES1:Next
                YAZ=1
                CIKIS4=1
                DURUM=PORTA & %00001111
                GoTo ROLEKONTROL
              EndIf  
          EndIf

Bu arada unutmayın, Eproma yazma işlemi 10 ms gecikme iseter. Ama okuma işleminde bir gecikme koyma ihtiyacı yoktur. Her türlü bilgi ard arda okunabilir gecikmesiz oarak.
Yazma işlemi zor olandır. Fiziksel olarak voltaj ve akım uygulanıyor eproma ve bu işlemin gerçekleşmesi en az 10 ms sürüyor. Yazma işinde gecikme olmadan ikinci bri yazma emri gelirse ilkini yazamaz. Bu nedenle gecikme koyuyoruz.
Bir eprom adresine ardışık bilgi yazılabilir ve her bilgi yerine tüm bilgi (diyelimki 5-6 byte) için tek bir 10ms gecikmede yeterli olacaktır.
Mesela,
Write 10, Veri1:pause 10
Write 11, Veri2:pause 10
Write 12, Veri3:pause 10
yerine
Write 10, Veri1, Veri2, Veri3:pause 10
şeklinde bir komut kullanmanız halinde 20 ms lik tasarruf etmiş olursunuz. Her iki örnektede veriler güvenli şekilde eproma yazılmış olur.

Aşağıdaki kodları farklı yazardım;
SAYIAL: 
        SAYI=0
        While VALDAT=1      ;STD
        SAYI.0=PORTB.4      ;Q1
        SAYI.1=PORTB.3      ;Q2
        SAYI.2=PORTB.2      ;Q3
        SAYI.3=PORTB.1      ;Q4
        Wend
        If SAYI=10 Then SAYI=0
        Return
yerine
SAYIAL: 
        SAYI=0
        IF VALDAT=1 THEN
          SAYI.0=PORTB.4      ;Q1
          SAYI.1=PORTB.3      ;Q2
          SAYI.2=PORTB.2      ;Q3
          SAYI.3=PORTB.1      ;Q4
          While VALDAT=1:Wend
          If SAYI=10 Then SAYI=0
        ENDIF
        Return
şeklinde yazmak daha doğru olurdu.
Bana kalırsa bu yazılımın iyice kontrol edilmesi gerek. Çünki stack problemide olabilir. Stack taşıyorsa işlemci reset atar röle bırakır çeker (muhtemelen). Nerden çıkartıyorum ? kodu incelediğimde diyelimki program ALBILGI etiketine geldi. Buraya GOSUB ile geliniyor. Return ile dönülmesi gerek. ALbilgi içinde süre aşımı olursa GoSub CALIS komutu çalışıyor program bu sefer oraya gidiyor iki adet return gerekecek şimdi. Orada röle çekili değil ise LOW PORTA denilmiş. Buda yanlış PORTA=0 desen daha doğru olurdu. Ama röle zaten çekili durumda ise GOTO ROLEKONTROL denilerek stack işi çuvallamış oluyor. Şayet Rolekontrol dan GOTO BITIR yada THEN BITIR komutları ile çıkarsa program GOTO BASLA ile başa dönecek ve bir müddet sonra bu stack taşacaktır.
Programı inceledikçe sürekli bu mesajda ekleme yapıyorum.
En baş kısımda BASLA etiketinden sonra GOSUB SIFREAL diye bir komut var. Bu DTMF den gelen sayıları alan kısım. Her zaman sayı gelecek diye beklemek yanlış olacağı için oraya gidip belirli bir süre bekleyim sayı gelmedi ise geri dönmek gerekirdi. Sayı alan kısım ise ALBILGI etiketi altındaki kodlar. Burada VALDAT pininin 1 olması beklenior ama aynı zamanda bir sayaç da çalışıp zamanı sayıyor. Zaman yeterince geçti ise CIK=1 yapılıp geri dönülmesi gerekirken kodu değiştirip oraya GOSUB CALIS eklenmiş. Orada da GOTO ROLEKONTROL komutu olunca işler sarpa sarıyor. Diyeceğim odurki kod orjinal halinden çıkmış artık. Bilmeden yada düşünmeden yapılan değişiklikler program için sorun oluyorki olmuş burada görüldüğü gibi.
Orada GOSUB CALIS komutu yerine CIK=1:RETURN komutu olması gerkirdi. Zira süre bitmiş ve sayı gelmemiş demek oluyor. Boşuna sayı gelmeden CALIS etiketine gitmenin bir anlamıda yok.
Dediğim gibi program baştan aşağı yeniden kontrol edilmeli yada orjinal yazılımı kullanmak gerek.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 18 Mayıs 2020, 23:12:54
denıycem hocam tesekkur ederım
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 18 Mayıs 2020, 23:34:52
gosub calıs etıketını eklememın sebebı picin 12 nolu bacagına + sınyal geldıgınde roleler sureklı calıssın.bu bacaktakı sınyal kesildiginde sistem basa donsun ıstemıstım.soylekı bu kontrolu arac kontrol olarak kullanmak ıcın dusunmustum.CALIS komutunu o yuzden oraya ekledım.süre sonunda sınyal gelmedı ıse roleler kapanıyor.orda bır problem olmadıgını dusunmustum ben.uzaktan aracı calıstırdım.ama arabaya gıtmekten vazgectım.belırlenen sure sonunda calıs komutuna bakacak sınyal olmadıgını gördugunden basa donecek sekılde olmasını ıstedıgımden gosub calıs etıketıne dallanıp ordanda goto rolekontrol ıle basa donduruyordum.yanlısmı yapmıs oluyorum hocam o zaman ben?
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 18 Mayıs 2020, 23:40:23
orjınal yazılımınızı cep telefonu ıle kontrol edılebılır hale getırdıgımden kaynaklı sıkıntılar hocam bunlar.acma ve kapatma da cep telefonu ıle sıkıntım sadece acma bolumunde roleler acılınca sankı besleme cokermıs gıbı sanıyenın altındakı hızda roleler ac kapa yapıyor.bagladıgım sıstemın enerjısı kesılmıyor ama rolelerın mekanık ac kapa omurlerı hızla tukenmıs olmazmı bu sekılde
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 19 Mayıs 2020, 00:01:07
Başlangıç kısmını aşağıdaki şekilde yap.


Bunun dışında başka bir şey gerekmiyor.
Gerekmiyor derken hattın alınması telefon hoparlöründen yapılıyor. Bu bağlantıları yapman gerek.
Programda bir zaman sayacı var. Belirli süre içinde şayet herhangi bir komut girilmez ise sistem kendini otomatik kapatır.
Buda 18-20 sn olması gerek ama biraz daha az olabilir. Sen 16 sn diyorsun demekki sende 16 sn olarak çalışıyor otomatik kapanma. Bunu iptal etmek istersen aşağıdaki komut satırlarını bul;
ALBILGI:
         SURE=0:ZAMAN=0
         WHILE VALDAT=0
          SURE=SURE+1
          PAUSEus 270
            IF SURE=65500 THEN
              CIK=1:RETURN
            ENDIF
          WEND
Buradan " IF SURE=65500 then CIK=1:RETURN" komutunu sil yada kapat. Böylece otomatik kapanma iptal edilmiş olacaktır.

otomatık kapanma yı ıptal edıp gosub CALIS komutunu bu yuzden koymustum hocam
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 19 Mayıs 2020, 09:15:33
Önceden yazılmış programlarda değişiklik yaparken stack  kontrolüne dikkat etmek gerekiyor.
Rastgele yerler gosub vs eklemek kapsamlı projelerde (sinucunu direk göremediğiniz) ekstra dikkat gerektirir. Stack denilen şeyin ne olduğunu tekrar açıklamak ve kriterlerini ortaya koymak istiyorum.
Stack işlemcinin kendisinin kullandığı (ama programcının ulaşamadığı) bir ara hafızadır. Geçici tampon hafıza gibi düşünün. Temel kaidesi şudur hafızaya en son giren mutlaka ilk çıkar.
BU hafıza genellikle GOSUB komutlarında kullanılıyor. Program GOSUB komutunu görünce hemen o komutun fiziksel RAM adresini stack hafızasına atar. Ataratmaz stack boş yer göstergeci hafızaya yerleşen byte sayısı kadar artırılır. Örnek vereyim göstergeç 00 gösteriyor iken 2 bytelık bir adres oraya yazıldı diyelim göstergeç hemen 02 adresini gösterir. Bir sonraki gelen bilgi bu adrese yazılır. Bu şekilde adres göstergeci sürekli artar. Bu ara hafıza sınırsız değildir. 20-30 aralığında bir hafıza gibi düşünün.Program ilk gördüğü return komutu ile hemen gidip Stack den en son kayıtlı olan adresi alır ve o adrese geri döner. Stack göstergeci 2 adres eksilir.
Bu şekilde şayet program düzenli ise stack hiç bir zaman taşmaz. Taşmanın da ne demek olduğunu açıklayayım. Diyelimki 20 stack adresi var ve sürekli stack'a bilgi ekleniyor. Sonunda adres limitinin sonuna gelinir ve daha yazılacak adres kalmayınca stack taşması meydana gelir ve program reset atar yada kilitlenir.
Şimdi gelelim kriterlere. Basic derleyicisi şöyle diyor. İç içe geçmiş olarak ortalama 5 adet GOSUB dan fazlasını kullanmayın. Bu özellik işlemci hafızası ile bağlantılı olsada söylenen şey genel kaidedir ve bazı işlemcilerde bu 6-7-8 adet olabilir.
Bir alt programa GOSUB ile gittin. Oradan RETURN ile dönmeden başak bir GOSUB ile başka bir yere gittin bu iş içe iki gosub demek oluyor. Bir üçüncüsünü orada da uygularsan stack den 6 adres kullanmış olursun. SOnunda oradan GOTO ile programın başına dönersen o kayıtlı olan adresler stack da ilelebet kalır ve stack kapasiten 3 adres eksilmiş olur. Doğrusu, gittiğin yerlerden önce RETURN ile döneceksin ve ilk GOSUB ile ayrıldığın yere geleceksin orada gerekirse GOTO basla diyebilirsin artık. 
Umarım artık gereksiz yere GOSUB ve GOTO komutlarını kulanmazsınız. Yada kontrollü olarak kullanırsınız. İç içe geçmiş 5 GOSUB kaidesini unutmayın. GOSUB ile gittiğiniz yerden mutlaka RETURN ile dönün ve gerekirse işaret biti kullanın ve dönüşte o biti kullanarak nereye gidecekseniz gidin.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 19 Mayıs 2020, 21:36:25
o zaman programda yanlıslık yok hocam.ALBILGI dekı zamanı gosub CALIS etıketıne gore rolenın kontrolu ıcın kullanmıstım.sure sonunda rolede sınyal var ıse devam eder sure bıtımınde rolede sınyal yok ıse role kontrol etıketıne gıder.
Başlık: Ynt: DTMF Projeleri
Gönderen: dedim - 20 Mayıs 2020, 01:10:17
hocam role acma komutlarını verdıgınız gıbı duzelttım.ama sorun yıne devam edıyor.kulaklık kablosu telefona takılı kaldıgı surecede sıkıntı aynı ama ne zamankı kulaklıgı cekersem roleler tıkırdamıyor.belkıde hata bende ?
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 20 Mayıs 2020, 19:09:34
Hatanın sende olduğu kesin. BU programda yalnızca bir sorun yok bir çok sorun var.
Sen birini düzelttin belki ama detaylı inceleme yapmak gerekiyor.
Bu iş de konsantre olan tarafından yapılabilir yani oda sen oluyorsun.
Ara biraz daha . Bir rölenin çekmesi için gerekli olan adımları takip et.
Bulursun sorunu.
Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: jun - 01 Mart 2022, 10:54:11
merhaba ete hocam bu projenizin buzzer olmayan baskı devresini yaptım.telefon araken çalma ledi titreşim vaziyetinde yanıp sönüyor 8 çalmadan sonra 5v röle açmasına rağmen otomatik hat açılmıyor.bunun sebebi ne olabilir
Başlık: Ynt: DTMF Projeleri
Gönderen: ete - 01 Mart 2022, 12:04:26
DTMF projesini bizzat kartını yaparak denemiştim. Aradan çok zaman geçti. Şu anda o programa hiç hakim değilim. Ancak yinede programa baktım. Başlangıç aşamasında hat=1 ise beklemede kalıyor. Hattın LOW olması anladığım kadarı ile gelen arama ile oluyor. Bu durumda program gelen zilleri sayıyor. Programda default zil sayısı 5 gözüküyor sen 8 diyorsun burada bir uyuşmazlık var. Her neyse değiştirilmiş olabilir.
Sistem hatta arama geldiğini algılayabiliyor ve zilleri sayabiliyor ise doğru yolda olduğunu gösteriyor. Ardından Röle yi aktif edip hattı açması gerekir. Dikkat edersen röle çekinceye kadar sistemin doğru çalışıyor. O halde rölenin çektiği konumda hangi kontağın birleşip hangisinin ayrıldığına tekrardan bakman gerekir. O rölenin NO kontaklarına hat bağlı olması lazım ki röle çektiğinde hat açılsın. Muhtemel sebeplerden birisi PCB de sorun olması başka bir şey olamaz. Bence devreyi karşına alıp PCB de doğruluk kontrolü yapman lazım.

Ete
Başlık: Ynt: DTMF Projeleri
Gönderen: jun - 01 Mart 2022, 12:19:30
Hocam cevabınız için teşekkürler çalmada ve röle açmada problem yok lakin röle açtığında telefon açılmıyor rölede problem olabilirmi diye uçları cımbızla kısa devre yapmama rağmen hat açılmıyor devreyi defalarca kontrol ettim problem hat trafosundan kaynaklanabilir mi hat trafosunu adsl splitteri içinden söküp kullandım.problem sistemin çalışmasında değil çalma sayısından sonra rölenin devreye girmesine rağmen hattın açılmaması.
Başlık: Ynt: DTMF Projeleri
Gönderen: gogoce - 20 Mart 2023, 21:34:22
Role ile hatta 560 ohm direnc eklerseniz hat acilacaktir. Direnc degeri den tam emin degilim mobilden yaziyorum. Dogru direnc degerini bulunca yazarim