Pic kablosuz haberleşme yardım lütfen...

Almatris

Üye
Katılım
14 Ağu 2014
Mesajlar
44
Puanları
1
Yaş
40
Herkese merhabalar,hobi amaçlı devreler yapıyorum ve bilgisayardan kontrollü 4 kanal alıcı verici devre yaptım.Verici devre bilgisayarda kendi yaptığım arayüz programından komut alıyor ve buna bağlı olarak alıcı devreye data yolluyor.Alıcı devrede gelen dataya bağlı olarak 4 röleden ilgili olanı açıyor ya da kapatıyor.pc den 1.röle aç butonuna bastığımda verici devre bunu okuyor ama alıcıya bazen iletiyor bazen iletmiyor.Eğer pcden 1.röle aç butonuna birkaç kez basarsam alıcı kesin datayı alıyor ben butona 1 kere bastığımda neden iletişim sağlanmıyor?İlgili devre şemasını ve pic yazılımını ekliyorum.Hatamı bulup bana bildirirseniz sevinirim şimdiden teşekkürler...

Verici devre yazılımı;
Kod:
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2015 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 30.12.2015                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************

@ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF

include "modedefs.bas"
TRISA=%0000000
TRISB=%00101010
CMCON=7
DEFINE OSC 4
OPTION_REG.7=0

PC VAR PORTB.1
BILGI VAR BYTE
CIKIS VAR PORTB.0
GIDEN VAR byte
D1 VAR BYTE
D2 VAR BYTE
D3 VAR BYTE
D4 VAR BYTE
L1 VAR PORTA.0
L2 VAR PORTA.1
L3 VAR PORTA.2
L4 VAR PORTA.3

OKU:
READ 0,D1
READ 1,D2
READ 2,D3
READ 3,D4
IF D1=100 THEN
L1=1
ENDIF
IF D2=100 THEN
L2=1
ENDIF
IF D3=100 THEN
L3=1
ENDIF
IF D4=100 THEN
L4=1
ENDIF

BASLA:
SERIN2 PC,84,[DEC BILGI]

IF BILGI = 10 THEN
GIDEN=11
L1=1
D1=100
WRITE 0,D1
GOTO GONDER
ENDIF

IF BILGI = 15 THEN
GIDEN=16
L1=0
D1=200
WRITE 0,D1
GOTO GONDER
ENDIF

IF BILGI = 20 THEN
GIDEN=21
L2=1
D2=100
WRITE 1,D2
GOTO GONDER
ENDIF

IF BILGI = 25 THEN
GIDEN=26
L2=0
D2=200
WRITE 1,D2
GOTO GONDER
ENDIF

IF BILGI = 30 THEN
GIDEN=31
L3=1
D3=100
WRITE 2,D3
GOTO GONDER
ENDIF

IF BILGI = 35 THEN
GIDEN=36
L3=0
D3=200
WRITE 2,D3
GOTO GONDER
ENDIF

IF BILGI = 40 THEN
GIDEN=41
L4=1
D4=100
WRITE 3,D4
GOTO GONDER
ENDIF

IF BILGI = 45 THEN
GIDEN=46
L4=0
D4=200
WRITE 3,D4
GOTO GONDER
ENDIF

GIDEN=111

GONDER:
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]
SEROUT2 CIKIS,396,["E","T","E",GIDEN]

BILGI=0

GOTO BASLA
END

Alıcı devre yazılımı;

Kod:
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2016 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 01.01.2016                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF
include "modedefs.bas"
TRISA=%11111111
TRISB=%00000000
CMCON=7
DEFINE OSC 4
OPTION_REG.7=0

GIRIS VAR PORTA.0
GELEN VAR byte
D1 VAR BYTE
D2 VAR BYTE
D3 VAR BYTE
D4 VAR BYTE
L1 VAR PORTB.0
L2 VAR PORTB.1
L3 VAR PORTB.2
L4 VAR PORTB.3
PORTB=%00000000

OKU:
READ 0,D1
READ 1,D2
READ 2,D3
READ 3,D4
IF D1=100 THEN
L1=1
ENDIF
IF D2=100 THEN
L2=1
ENDIF
IF D3=100 THEN
L3=1
ENDIF
IF D4=100 THEN
L4=1
ENDIF

BASLA:
SERIN2 GIRIS,396,[WAIT ("ETE"),GELEN]

IF GELEN=11 THEN
L1=1
D1=100
WRITE 0,D1
ENDIF

IF GELEN=21 THEN
L2=1
D2=100
WRITE 1,D2
ENDIF

IF GELEN=31 THEN
L3=1
D3=100
WRITE 2,D3
ENDIF

IF GELEN=41 THEN
L4=1
D4=100
WRITE 3,D4
ENDIF

IF GELEN=16 THEN
L1=0
D1=200
WRITE 0,D1
ENDIF 

IF GELEN=26 THEN
L2=0
D2=200
WRITE 1,D2
ENDIF  

IF GELEN=36 THEN
L3=0
D3=200
WRITE 2,D3
ENDIF  

IF GELEN=46 THEN
L4=0
D4=200
WRITE 3,D4
ENDIF


GOTO BASLA
END

şema.gif
 
kristal uçlarına şaseden kondansator bağli değıl sankı örnek 4 mhz kristal varsa .22 pfarad kondansator bağlı olması lazım
 
Dahili osilatör kullandım.O yüzden kristal yok devrede...Birde yeni bir ayrıntı farkettim data olarak 10 yollarsam bazen gidiyor bazen gitmiyor ama 15 yolladığımda hep gidiyor hiç gecikme olmuyor.
 
dahılı osilator stabil çalışmaz çok azda olsa frakans kayması datayı alıcı alması sıkıntı olur
 
Bundan önce 10-15 adet rf devre hazırladım.İlk defa böyle bişey başıma geliyor.17,2 cm anten de bağladım ama nafile verici sadece farklı data yolluyor. 10(röle 1 aç) ,15 (röle 1 kapat),20(röle 2 aç),25 (röle 2 kapat) bu şekilde gidiyor. bazı kapat komutları sorunsuz çalışıyor(15 ve 45 ) ama diğerleri hep 2-3 yollamadan sonra iletiliyor.
 
bir önerım var denersen sonuca gıdersın verıcı kartını saç kurutmayla sicaklığı değıştır bu arada iletışım yapar durumda olsun anlatmak istedığım rc osılator iç osılatorde aynıdır isiya gore değişir frakansı veya ölçebılıyorsan osilator u ölçu aletını bağla sicaklığı değıştır aradakı farkı goreceksın
 
Peki harici 4mhz kristal bağlasam alıcıya ve vericiye de mi takayım yoksa verici devreye taksam yeterli mi?
 
her iki tarafta kristal olsa daha mantıklı olur ama ılk olarak verıcıyı yapın alici genış bant benım bıldığım 433.92 ıle 315 mhz arası çalışıyor
 
maalesef sonuç aynı :( yazdığım kodlarda bir hata yada eksik
var mı sence?
 
Merhaba,
Verdiğiniz şemada bir terslik var gibi geldi bana.Madem PC'den PIC'e data yolluyorsunuz(ki bağlantı da yanlış TX ile RX bağlanacak)ikinci PIC'İ ne için kullanıyorsunuz?Aşağıdaki link, size yardımcı olur düşüncesindeyim.Ayrıca kablosuz haberleşmelerde uyandırma sinyali yollayıp yollamadığınızı yazmamışsınız.programınızın tamamını yazarsanız picbasic bilen arkadaşlar yardımcı olurlar.Kolay gelsin.

https://www.kontrolkalemi.com/forum/attachments/bcd_calsma-rar.24055/
https://www.kontrolkalemi.com/forum/attachments/etekno_pc_pic_on_off-rar.23917/
 

Forum istatistikleri

Konular
129,837
Mesajlar
930,649
Kullanıcılar
452,668
Son üye
asmaydın

Yeni konular

Geri
Üst