avatar_ete

DTMF Projeleri

Başlatan ete, 04 Eylül 2011, 19:05:04

onurinci

rica ederim evet SDT pini..

temha43

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.

temha43

بِسْــــــــــــــــــــــمِ اﷲِارَّحْمَنِ ارَّحِيم
son yazdığım program bugun cuma namazında çalıştı.
hepinizden ALLAH razı olsun

dedim

dtmf kontrol ıle sıfre bolumunde sıfreyı yazılımdan degıstırdım.ama kabul etmıyor.

dedim


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


ete

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

dedim

 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ı.

dedim

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

ete

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

dedim

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ı

dedim

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

dedim

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]



dedim

dig 3
dig 2
dig 1
dgi 0

bu satırlarda hata verıyor protonda  degısıklık yapınca usta

dedim

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     

dedim

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

Powered by EzPortal