Tek kanal RF uygulama

Başlatan mcn, 14 Ocak 2010, 10:34:23

mcn

CCS C ile bir 4 kanal rf kumanda yapmak istiyordum.Ancak daha tek kanalda bile çalıştıramadım  :cry:

Sorunum nedir?Yardımcı olabilir misiniz?

DEVRE:


Gönderici kodu:

#include<16F628A.h> 
#fuses XT,NOWDT,NOPROTECT 
#use delay(clock=4000000) 
#use rs232(baud=9600,xmit=PIN_a0) 

#define buton1 pin_b0

void main() 
{ 
int mcn=0;

while(true)
{
while(input(buton1))
{
mcn=0x01;
putc(mcn);
}
}
}





Alıcı kodu:
#include<16F84A.h> 
#fuses XT,NOWDT,NOPROTECT 
#use delay(clock=4000000) 
#use rs232(baud=9600,rcv=PIN_a1) 

#define uc1 pin_b0



void main()
{
int8 mcn=0;


while(true){

mcn = getc();

switch(mcn)
{
   case 0x01:{
   output_high(uc1);
   
   }
}
}}


Butona bastığımda sanki kodu gönderiyor ama led yanmıyor.
HAtam nerde,neyi düzeltmem gerek?Şimdiden teşekkürler...
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

M_B

Gonderici kodunda   0x01 gönderiyorsun.
Alıcı kısımda ise gelen veri 0x55 ise led yak diyorsun. Sence yanlışlık yok mu ?. yoksa benmi yanlış yorumladım.

kolay gelsin.
M_B
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

mcn

Kodları buraya koyarken yanlışlık olmuş,pardon.Düzelttim şimdi.
Başka hata yok mu peki?Çalışması mı gerek bu şekilde.
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

M_B

#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_A0,rcv=PIN_A1,bits=8)


gonderici kısmını yukardaki gibi alıcı kısmınıda aşağıdaki gibi dene  bakalım ne olacak.

#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B1,rcv=PIN_B0,bits=8)
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

ferdem

RF modüllerde veriyi arka arkaya göndermelisiniz, bir defa göndermek yetmiyor. Baudrate 1200 ü geçmesin, 600 normal bir baud.
Buralara bakınız:
Arama kısmına rf AND modül yazıp arayınız.

http://dergi.picproje.org/433mhz-rf-haberlesme-sistemleri

http://www.fatiherdem.net/tag/rf-modul/

Bir de eğer 4 kanal ON-OFF haberleşmesi olacaksa, yani kumanda ile bir bitlik elemanları kontrol edecekseniz PIC ler yerine PT 2262-2272 leri kullanmanızı tavsiye ederim. İyi çalışmalar.

zaferortatepe

alıcı kodları=
#include<16F84A.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use rs232(baud=600,xmit=PIN_a0,rcv=PIN_a1)
int deger=0;
void main()
{
while(1)
{
deger=getc();
if(deger==0x01)
output_high(pin_b0);
if(deger==0x00)
output_low(pin_b0);
}
}
verici kodları=
#include<16F628A.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use rs232(baud=600,xmit=PIN_a0,rcv=PIN_a1)
void main()
{
while(1)
{
while(input(pin_b0))
{  
putc(0x01);
}
putc(0x00);
}
}

birde bu kodları derleyip aynı devrede dene.butona bastığın sürece led yanacaktır.kolay gelsin.

mcn

zafer hocam,
ilginiz için teşekkürler,dediğiniz gibi yaptım,ama kahrolası led,gene yanmıyor :(
anlamıyorum neden??????

devreyi buraya ekliyorum...

http://www.dosyaupload.net/download.php?file=675devreee.DSN
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

zaferortatepe

senin proteus dosyandaki piclerin ikisininde içini açıp kristal değerlerini 4MHz yaptım.seninkinde 1Mhz olarak kayıtlıymış.birde fazla olarak 16f628'in b_1 pinine bir tane daha buton,16f84'ün b_1 pinine bir tane led ekledim.yani iki buton iki led olmuş oldu.ben çalıştırdım.sendede çalışması gerekir artık

mcn

hocam,dediklerini yaptım ama gene olmadı :(

Sendeki çalışan dosyaları bana bi gönderebilir misin bi zahmet.
www.teknikyazi.com --üşenme,erteleme,vazgeçme...