T

tek buton aç-kapa

Başlatan theadnanusta, 06 Ağustos 2012, 17:04:17

theadnanusta

erol hocam kumanda butonuna bir bas çıkış aktif basılı tutulduğu sürece aktif.butonu bırakınca sıfır olacak.başka projelerden buldum ama realize edemedim.sanal olarak çalışsada.
yazılıma bir bakarsanız hocam.teşekkür ederim

ete

Kusura bakmayın ama artık başkalarınının yazdığı programları incelemek değişiklik yapmak istemiyorum.
Kendiniz çözün ve takıldığınız yer olursa sorun.
Sorduğun sorunun mantığı şudur.
-RF den bilgi al.
- İstenen bilgi gelmiş ise ve o işle ilgili set değişkeni set edilmemiş ise Çıkışı=1 yap. Bir set değişkeni set et. Mesela YAP=1 oldu. Tekrar başa git ve yendien RF bak.
- İstenen bilgi gelmemiş ise Çıkışı=0 yap ve YAP=0 yapki yendien bilgi geldiğinde sistem doğru çalışsın.
Kısaca istenen bilgi geldiği müddetçe çıkış1 olacak ama gelmez ise çıkış sıfır olacak.
Hepsi bu.

Ete

theadnanusta

hocam çok istirham ediyorum siz bir profosyonelsiniz size göre kolay.inanın bugün sabahtan akşama kadar uğraştım onunla bir araca korna devresi yapacağım lütfen hocam

0nur

#3
Bu gibi işlemlerde gelen verinin 2 ye göre modunu alarak tek mi çift mi olduğunu ayırt ettikten sonra durum değerlendirmesi yapmak en pratik ve mantıklı yöntem.

Örneğin gelen veriyi X diye bir değişken içerisine kaydettikten sonra

Y=X//2

yazarsanız

Y=1 yada Y=0 olacaktır.

Y=0 ise şunu yap 1 ise şunu yap diyerek istediğiniz işlemi gerçekleştirebilirsiniz.

iyi çalışmalar,

theadnanusta

onur kardeş alakana çok teşekkür ederim.ben bu basit komuta iki gün uğraştım yapamadım.başka bir proje elimde var isiste çok güzel çalışıyor ama onu realize edemedim sanal ortamda güzel gerçekte anormal çalışıyor.bu devreyi çalıştıracak bir arkadaş varsa iyi olur.çünkü denemediğim yol kalmadı işin içinden çıkamadım.teşekkür ederim

ete

Vericiye ait program aşağıdadır;
@   device intrc_osc,protect_off,wdt_on,pwrt_on,mclr_off  
   
DEFINE OSCCAL_1K 1                   
DEFINE OSC 4
OPTION_REG.7=1      'PULL UP AKTİF     
CMCON=7                               
ANSEL=0                                 
TRISIO=%00000110                               
but_ac      var gpio.2   
so          var gpio.0
veri  var byte

    pause 300
   
Start:
    if but_ac=1 then
    veri=10
    SEROUT2 so,813,["ETE",veri]
    goto start
    endif                           
   veri=0

    SEROUT2 so,813,["ETE",veri]
    pause 10
    goto Start   


Alıcıya ait program aşağıdadır.
@   device xt_osc,wdt_off,pwrt_off,protect_on,bod_off,mclr_off
DEFINE OSCCAL_1K 1
DEFINE OSC 4
CMCON = 7
ANSEL=0
TRISIO=%00000000
GPIO=0

rx      var GPIO.0
acma    var GPIO.2

veri    var byte

pause 300

Main:
   serin2 rx,813,[wait("ETE"),veri]
   
   if veri=10 then
      acma=1
      veri=0
      goto main
   endif
     
   if veri=0 then acma=0
   goto main
end


ete

theadnanusta

hocam yine ilgilendiniz şükranlarımı sunarım.yalnız devreyi isiste bile çalıştıramadım,

ete

#7
Bak bakalım senin yolladığın devrede vericide buton nereye bağlanmış.
Programdan anlamayabilirsiniz. Ama en azından devreyi iyi takip edebilir yada programa bakıp  buton hangi pine bağlı anlayabilirsiniz.
Kısaca butonu yanlış pine bağlamışsın.GPIO.2 ye bağlı olacaktır. GPIO.1 e bağlanacak ise programdan değiştirmen gerekir.

Bu arada ALıcı da TRIS ayarında bir eksiklik gördüm. Düzeltilse iyi olur ama düzeltmez isen zaten SERIN komutu pini giriş olarak değiştirmektedir.
TRISIO=%00000001 şeklinde programdaki değeri değiştirirsen iyi olacaktır.

Ete

nurim

Devrede PIC' e ait pullup' ları kullarak bağlantıyı daha da basit kullansak nasıl olur?


Kolay Gelsin
nurim

ete

Bu özelliği söylemekten dilimde tüy bitti.
Adamlar işlemcinin içine pullup direnci koymuşlar birde istendiği zaman aktif edebilme özelliği katmışlar.
Bakıyorum bir çok kişi bu özelliği görmezden geliyor. Sanki zorla fazladan mazleme kullanmak ister gibiler.

Bu özelliği kullanmak için buton sisteminizin pullup lı olarak çalışması gerekir. Zaten pull-down lı buton sistemi bana kalırsa yanlış uygulama. Bir devrede GND yi her yere kolaylıkla taşıyabilirsiniz ama pull-down için birde + beseleme taşımak zorundasınız.
Kısaca butonlar mutlaka pullup lı olarak çalıştırılmalı, ve genelde PortB ye verilmiş bu dahili pullup kullanma özelliğide paralelinde kullanılmalı.

Ete

theadnanusta

ete hocam çok teşekkürler yüce yaratıcı "hiç bilenlerle bilmeyenler bir olur mu?"diye buyuruyor bizde bu yaşa kadar pek çok müderrisin tedrisatından geçtik.belki tedip edildik ama her zaman duacı olduk.
   hocam ilişikte x1-x2-x3 adlarında 3 dosya var.x1 sizin en son şekil verdiğiniz isiste çok güzel çalışıyor ama gerçekte kumanda mükemmel yalnız alıcı kumandaya bir basışta çıkş veriyor veriş o veriş.artık kumandayı kırsanızda çıkışa dakikalarca devam ediyor.x2 bu dosyayı ben çalıştım while-wend komutlarını kullanarak buda isiste çok güzel reelde aynen yukardaki gibi.x3 isite ve reelde aynı güzel çalışıyor.x1 i reelde nasıl düzeltiriz yardım istiyorum.güzellikler sizinle olsun

ete

#11
Devre şemalarını göremem gerekir. İsiste çalışan sistem gerçekte de çalışması gerekir Çalışmıyorse devrede unutulan bir şey vardır mutlaka.

Sistemin sağlıklı çalışması için alıcı tarafında kesinlikle USART kesmesi kullanmak gerekir. Bu nedenle işlemci olarak 12F675 yerine 16F628 kullanmanı öneririm.
Sorun alıcı kısımda bence. Zira senkron yakalamakta zorlanıyor anlaşılan sistem.
Ancak kafamı kurcalayan başka bir husus varki oda , tuşa basılmadığı müddetçe vericinin sıfır verisi yollaması ve alıcınında bunu bir kere olsun alması gerekirdi.
Bu olay gerçekleşmiyor sebebini bilemiyorum.
Elbette sebep, RF modüllerin çok gürültülü çalışmalarından kaynaklanabilir.
Birde bazen yollanan verinin ASCII karekter yerine direk rakam olması işleri kolaylaştırmaktadır. Bu nedenle birde ilişikteki dosyaları dene bakalım.

Ete


theadnanusta

#12
sağolun hocam dosya bozuk veya boş.bir daha yükleseniz


dosyayı yeniledim.
ete

Powered by EzPortal