Tuş okuması ile ilgili bir sorun.

Başlatan erdogan2734, 20 Kasım 2012, 14:19:53

erdogan2734

   Arkadaşlar Merhaba
   Bir müşterimizin özel bir isteği üzerine 5 butonlu yeni bir rf çalışması yaptık. Alıcı ve vericiyi dijital olarak şifreliyorum. Bilgi gönderip alıyorum. Ancak bir buton okumasında sıkıntı yaşıyorum. Öncelikle vericimden bahsetmek istiyorum. Vericim bildiğiniz (12 volt kumanda pili ile çalışan) tuşa bastığımda tüm devre enerjilenip sinyali yolluyor çektiğimde kapanıyor. Alıcım ise sürekli açık konumda bilgi bekliyor.
 
   Verici Tuşta kullandığım komut şu şekilde

IF TUS1=1 THEN                 
VER=1
LP=1                       
GOSUB GONDER
WHILE TUS1=1:WENd
gosub delay_on
LP=0
ENDIF

Verici tuşa basıldıysa bilgiyi yolluyor. Tuştan elimizi çekene kadar bekliyor. Elimizi çektiğimizde komple devrenin akımı kesileceğinden
tüm sistem kapanıyor.

Alıcıda ise

IF AL=1  THEN
SES=0
WHILE AL=1 :WEND 
AL=0
AL2=0
endif
       
Buradaki amacım tuşa bastığında alıcıdan uyarı sesi almam ne kadar uzun basarsa bastığı süre kadar ses alacağım.
Tuştan elini çektiği anda ses kesilecek. Ancak verici picin tuştan elimizi çektiğimizde enerjisi kesilipde yeni bilgi yollayamadığı için alıcıda ki ses takılı kalıyor. Mantık hatası yapıyorum. Yardımcı olursanız sevinirim.

Ekte verici kısmın resmi bulunmaktadır...
     
Erdoğan
İmkansızın zaman aldığı bir dünya'da bana zorluktan bahsetme!

erdogan2734

BASLA:
IF AL=1 AND AL2=AL1 THEN
goto HORNM
else
gosub delay_on
endif
      .
      .
      .
      .
      .
      .
      .
      .

GOTO BASLA


HORNM:
Horn=0
gosub delay_ON
al=0
al2=0
GOSUB DELAY_ELLI

IF AL=1 AND AL2=AL1 THEN
goto HORNM
ELSE
HORN=1
GOTO BASLA
ENDIF

GOTO HORNM


BASLA dizini ile başlayan programımı başka bir alt programa yönlendirip şekildeki gibi bir yazılımla istediğim değişikliği yapabildim.
Şu anda sistem çalışıyor. Ama zamanlama çok önemli oradaki delay süreleriyle oynadığım zaman olmuyor. Bu haliyle sıkıntısız çalışıyor...

İlginiz için teşekkür ederim...
Erdoğan
İmkansızın zaman aldığı bir dünya'da bana zorluktan bahsetme!

ete

Bu şekilde bir sistemin düzgün çalışması imkansız.
İşlemci beslemesinin mutlaka kontrol altına alınması gerekir.
MAntıklı düşünür isen elini butondan çeker çekmez işlemci voltajı kesilecek ve sesi kesme işi yapılamayacaktır. Daha doğrusu butondan elimi çektim artık sesi kesebilirsin ikazını karşıya iletemeyecektir. O zaman karşıdaki sesi vermeye devam eder.
Çözüm şöyle,
Butonlardan birine bastığın zaman işlemci pinlerinden birisi sanki butona basılmış gibi bir transistörü sürerek 7805'e voltaj verir.
Sen elini butondan çeksen bile işlemci 7805 den besleme almaya devam eder taaki transistörü süren besleme ortadan kalkana kadar. Buna kilit sistemi deniyor. Kilidi sen butona basarak açıyorsun. Yani işlemciye voltaj vermiş oluyorsun. İşlemcide hemen transistörü sürüyor sen elini butondan çeksen bile işlemci voltaj almaya devam ediyor. İŞini bitirdikten sonra işlemci transistörü sürmeyi kesiyor böylece sistem voltajı yeniden kesildiği için sistem duruyor.
Bu ne işine yarar onuda açıklayayım.
Elini butona bastın karşıdaki devre gelen sinyali aldı ve sesi çalmaya başladı.
Sen elini butondan çektin işlemci voltaj almaya devam eder ancak buton bırakıldığı için karşıya sesi kes mesajını yollayıp sonra kendini kapatır. Anlık olarak yürütülen bu işlem sonucunda sistem tamda istediğin gibi çalışır.

Ete


erdogan2734

   Ete hocam anlattığınız devreye tamamen katılıyorum. Ben devreyi yukarıdaki resim mantığına göre yapıp 7805 değilde zener ile sürmüştüm. Bu şekilde devreyi yapıp baskısını falan almıştım. Ancak yine üstte yazdığım programla bu programı alıcı kısıma yazdım. Sorunu halletmiştim. Daha sonra devreyi sizin dediğiniz gibi 7805 ve transistör mantığı ile yaptım.
   Yine söylediğiniz gibi sistem butondan parmak çekmesiyle birlikte veriyi yolluyor ve üstte yazdığım programa gerek kalmadan işlem yapıyor. Devre tasarımı konusunda 7805'i elciğin içine sokamam diye böyle bir karar almıştım ancak gördümki zener diyot ile beslemeninde bazı dezavantajları oluyor. Bundan sonraki projelerimde ya 7805 kullanacağım yada elciğin enerjisini geç kesecek bir sistem ile transistör gibi farklı bir mantık yürüteceğim.
    İlginiz için teşekkür ederim.
Erdoğan
İmkansızın zaman aldığı bir dünya'da bana zorluktan bahsetme!

Powered by EzPortal