Bu devre bana ait değil, ben asm yazıyorum, yıldızelektronik arkadaşımıza ait, kısa zamanda size cevap yazacaktır.
arkadaslar elimde duray arkadasımızın yapmıs oldugu rf alıcı vericiyi yaptm.fakat devrenın alıcı kısmı ledler anahtar gibi calısıyor.yani vericiden butona basıldıgı zmn alıcı cıkısındaki led calısıyor tekrar basasıya kadar yanık kalıyor.
bu devredede öyle calısıyor fakat ben bı devrede 3 cıkıstan 2 sinin buton gibi birinin anahtar gibi calısmasını istiyorum programda değiştirecegim yerleri gosterirseniz ben yapmak isterim.programıda eklim buraya yardımcı olursanız sevinirim arkadaslar..
'****************************************************************
'* name : verıcı.bas *
'* author : [tuna yıldız] *
'* notice : copyright (c) 2007 [yıldız elektronik] *
'* : all rights reserved *
'* date : 01.01.2008 *
'* version : 1.0 *
'* notes : *
'* : *
'****************************************************************
trısa=%01110
trısb=0
porta=0
portb=0
verıcı var byte
verıcı=0
pause 500
basla:
ıf porta.1=0 then
verıcı=10
gosub gonder
pause 100
endıf
ıf porta.2=0 then
verıcı=20
gosub gonder
pause 100
endıf
ıf porta.3=0 then
verıcı=30
gosub gonder
pause 100
endıf
goto basla
gonder:
serout2 porta.0,396,["t","u","n","a",verıcı]
serout2 porta.0,396,["t","u","n","a",verıcı]
serout2 porta.0,396,["t","u","n","a",verıcı]
return
end
'****************************************************************
'* name : alıcı.bas *
'* author : [tuna yıldız] *
'* notice : copyright (c) 2007 [yıldız elektronik] *
'* : all rights reserved *
'* date : 01.01.2008 *
'* version : 1.0 *
'* notes : *
'* : *
'****************************************************************
trısa=255
trısb=0
porta=0
portb=0
alıcı var byte
alıcı=0
pause 500
basla:
serın2 porta.0,396,[waıt("tuna"),alıcı]
ıf alıcı=10 then
toggle portb.0
endıf
ıf alıcı=20 then
toggle portb.1
endıf
ıf alıcı=30 then
toggle portb.2
endıf
goto basla
end
buda devrenin resmi:
[img=http://img399.imageshack.us/img399/1490/29459783kc0.th.png]
Bu devre bana ait değil, ben asm yazıyorum, yıldızelektronik arkadaşımıza ait, kısa zamanda size cevap yazacaktır.
İşte istediğin yazılım :
'****************************************************************
'* Name : VERICI.BAS *
'* Author : [TUNA YILDIZ] *
'* Notice : Copyright (c) 2008 [YILDIZ ELEKTRONİK] *
'* : All Rights Reserved *
'* Date : 28.5.2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
TRISA=%01110
TRISB=0
PORTA=0
PORTB=0
VERICI VAR BYTE
VERICI=0
PAUSE 500
BASLA:
IF PORTA.1=1 THEN
VERICI=10
GOSUB GONDER
PAUSE 100
ENDIF
IF PORTA.1=0 THEN
VERICI=20
GOSUB GONDER
PAUSE 100
ENDIF
IF PORTA.2=1 THEN
VERICI=30
GOSUB GONDER
PAUSE 100
ENDIF
IF PORTA.2=0 THEN
VERICI=40
GOSUB GONDER
PAUSE 100
ENDIF
IF PORTA.3=0 THEN
VERICI=50
GOSUB GONDER
PAUSE 100
ENDIF
GOTO BASLA
GONDER:
SEROUT2 PORTA.0,396,["T","U","N","A",VERICI]
SEROUT2 PORTA.0,396,["T","U","N","A",VERICI]
SEROUT2 PORTA.0,396,["T","U","N","A",VERICI]
RETURN
END
'****************************************************************
'* Name : ALICI.BAS *
'* Author : [TUNA YILDIZ] *
'* Notice : Copyright (c) 2008 [YILDIZ ELEKTRONİK] *
'* : All Rights Reserved *
'* Date : 28.5.2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
TRISA=255
TRISB=0
PORTA=0
PORTB=0
ALICI VAR BYTE
ALICI=0
PAUSE 500
BASLA:
SERIN2 PORTA.0,396,[WAIT("TUNA"),ALICI]
IF ALICI=10 THEN
LOW PORTB.0
ENDIF
IF ALICI=20 THEN
HIGH PORTB.0
ENDIF
IF ALICI=30 THEN
LOW PORTB.1
ENDIF
IF ALICI=40 THEN
HIGH PORTB.1
ENDIF
IF ALICI=30 THEN
TOGGLE PORTB.2
ENDIF
GOTO BASLA
END
tşkler hocam...
hocam mrba bi sorum olacaktı, sorum yine bu yazılımla alakalı olduğundan yeni bi başlık açma gereği duymadm ben basic öğreniyorm baya da öğrendim ama şu haberleşme konusunu pek anlayamıyorm bu hazırladığınız projeler benm içn çok yararlı oldu öncelikle tşk. ediyorm ama ben nasıl haberleştiklerini anlamak istiyorm yani bunu sağlayan komutları öğrenmek istiyorm ileride başka program yazdığımda yardımcı olması için sorum şu;
SEROUT2 PORTA.0,396,["T","U","N","A",VERICI] dediğimizde VERICI deki sayıyı porta.0 dan gönder mi dmek eğer öyleyse 396 neyi ifade ediyor ve burdaki şifreleme , ["T","U","N","A", bölümümü şifreyi değiştirmek için bu harflerimi değiştirmem gerekir bide;
SERIN2 PORTA.0,396,[WAIT("TUNA"),ALICI] komutunda WAIT neyi ifade ediyor
hocam bide bu komutlar nedn alt alta 3 defa yazılmış bunları anlatırsanız çok sevinirim şimdiden tşk. ler
Konu SnowMan tarafından (10.Haziran.2008 Saat 14:06 ) değiştirilmiştir.
Şöyle açıklayayim:
SEROUT2 PORTA.0,396,["T","U","N","A",VERICI] komutu porta.0 dan bilgiyi gönderir.396 ya gelince 396 haberleşme hızıdır peki bu haberleşme hızını nasıl hesaplıyoruz.Öncelikle standart haberleşme hızları vardır.Bunlar 9600-2400-1200 ve 900 baudrate olarak sıralanır.900 en düşük haberleşme hızı 9600 ise en yüksek haberleşme hızıdır.Elbette direkt 9600 yada 2400 yazmıyoruz.Bununda bir formulü var Hız=(1.000.000/Baud rate)-20 Mesela örnek vermek gerekirse diyelimki haberleşme hızımızı 2400 baud rate seçtik, formülden hesaplayacak olursak Hız=(1.000.000/2400)-20=396.666 diye devam eder biz düz hesap olarak 396 yazıyoruz yani bu 396 oradan geliyor.
Diğer soruya gelince ["T","U","N","A",VERICI] şifreyi belirliyor yani alıcıya göndereceğimiz kodu belirliyor ki başka alıcılar ile karışmasın.Ayrıca devre içerisinde if verici=30 yada if verici=20 gibi kodlar kullandım bunlarda bir şifredir.Yani Türkçe açıklayacak olursak vericiye diyoruz ki a butonuna basılırsa vericiden 20 rakamını gönder alıcıya da diyoruz ki sana 20 rakamı gelirse git şu işi yap gibi.
SERIN2 PORTA.0,396,[WAIT("TUNA"),ALICI] komutuna gelince burdaki wait in anlamı vericiden gönderilen kodları ilk önce bekle kodlar uyuyorsa ona göre işlem yap yani kod gelmeden işlem yapmasını önlemek için wait komutunu kullanıyoruz.Birde bu komutları alt alta 3 defa yazdım bunlar 1 defada yazılabilir 5 defa da yazılabilir.Amacına gelince 1. satırı alıcıyı uyarmak için gönderiyoruz yani sadece uyarı amaçlı 2. satırı da veri bozulursa yada gönderilirken herhangi bir problem olursa diye önlem amaçlı gönderiyoruz.3. satırda direk veriyi gönderiyoruz.İstersen 5 defa da yazabilirsin sana kalmış ne kadar fazla yazarsan verinin güvenli şekilde gitmesi o kadar iyi olur.
Benden bu kadar anlamadığın yerler olursa tekrardan sorabilirsin.Her zaman yardımcı olurum.
hocam size ne kadr tşk. etsem azdır o kadr güsel anlatmışsınız ki anlamamak mümkün değil daha önce bu konuyu kitaplardan araştırmıştım ama bişey anlamamıştım yazdıklarınızı aynen döküman haline getircem ilerde de lasım olr die tekrar tşk. ederm çok yardımcı oldunuz...
yıldızelektronik gerçekten başarılı bir çalışma gerçekleştirmişsin açıkcası kıskananlar çatlasın demenin tam zamanıdırforumda en aktif kullanıcı sensin ve gerektiği zaman da en alçak gönüllü her zmana sen oluyorsun başarılarının devamını diliyorum kal sağlıcakla..
![]()
Ayrıca haberleşme hızlarınında bazı püf noktalarını belirtmek istiyorum.Dediğimiz gibi haberleşme hızları 9600 dan başlayıp 900e kadar gidiyor.Peki biz neden 2400 seçiyoruz diyelimki 9600 seçtik,bu hız ile veriyi gönderirsek veride bozulmalar olabilir çünkü aşırı hızlı bir iletişim sağlıyor yada 900 seçtik bu seferde veri iletişiminde yavaşlama söz konusu oluyor.Yani hız gerektiren uygulamalarda kullanamayız.Bunun için en iyi seçim 2400 baud rate olucaktır tabi seçim yine size kalmış.Ayrıca şunu da belirteyim iletişimi rf modüller ile sağlıyorsanız 9600 baud rate hızı seçtiğiniz zaman eğer alıcı verici size yakın mesafede duruyorsa çok başınızı ağrıtır.Ama 2400 de fazla etkilenmiyorsunuz.
ewt bu da aklıma takılmıştı aslında ama yine yine sormamak içn es geçtim çok saolun tekrar tşk. ler...
ustalar bu devrenin asm kodları var mı
Arkadaşlar ben bu devreyi yaptım 2 pici kablo ile sorunsuz haberleştiriyorum ancak rf modülünü bağlayınca çalıştıramıyorum keymark ile de udea ile de denedim malesef sonuç aynı yardımcı olabilir misiniz?
Şu anda 1 kullanıcı bu konuyu görüntülüyor. (0 kayıtlı ve 1 misafir)