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ı;
Alıcı devre yazılımı;
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