Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

rf iletişim

Başlatan bbs2006, 18 Mart 2014, 11:43:16

bbs2006



merhaba
rf alıcı verici devresi yapıyorum. ama iletişim kuramadım. yardımcı olursanız sevinirim.

alıcı yazılımı

#include <16F628a.h>
#use delay(clock=4000000)
#fuses intrc,NOWDT,PUT, NOPROTECT
#use rs232(baud=9600,xmit=PIN_A2,rcv=PIN_A0)

int a,mm,t;
void main()
{

setup_ccp1(ccp_pwm);
setup_timer_2(T2_DIV_BY_16,255,1);
while(true)
{
a=getc();
switch(a){
case 77:
output_high(pin_b0);
for(a=0;a<10;a++){
delay_ms(100);}
output_low(pin_b1);
output_low(pin_b2);
break;

case 55:

output_high(pin_b1);
for(mm=0;mm<10;mm++){
delay_ms(100);}
output_low(pin_b0);
output_low(pin_b2);

break;
case 44:
output_high(pin_b2);
for(t=0;t<10;t++){
delay_ms(100);}
output_low(pin_b0);
output_low(pin_b1);
break;
default: break;

}
}}

verici yazılımı


#include <16F628a.h>
#use delay(clock=4000000)
#fuses intrc,NOWDT,PUT, NOPROTECT
#use rs232(baud=9600,xmit=PIN_b0,rcv=PIN_b1)

int a,data;
int k,m,n,b,r,y;
void kirmizi(){
m=Output_a(0x01);
k=bit_test(m,0);
if(k==1){
for(a=0;a<10;a++){
delay_ms(100);
putc(77);
}}
return; }
void sari(){
n=Output_a(0x02);
b=bit_test(n,1);
if(b==1){
for(a=0;a<10;a++){
delay_ms(100);
putc(55);}}return;}

void yesil(){
r=Output_a(0x04);
y=bit_test(r,2);
if(y==1){
for(a=0;a<10;a++){
delay_ms(100);
putc(44);}}return;}
void main(){
while(1){
kirmizi();
sari();
yesil();}
}




baran123

#1
#use rs232(baud=600,parity=N,rcv=pin_c7,bits=8,stop=1,invert)
devreyi normalde calıstırırken invert ekle satırın sonuna ama ısıde bunu yapma calısmaz

mesaj birleştirme:: 18 Mart 2014, 22:17:03

Kodlarını tam incelemedim ama bir bilgi göndermeden önce uyandırma komutu göndermen lazım putc(0b01010101); ben böyle kullanıyorum ama modülüne göre değişebilir.