16f877 ile kablosuz haberleşme nasıl yapılır

Katılım
3 May 2008
Mesajlar
38
Puanları
1
Yaş
39
kablosuz yangın alarm sistemi yapıyorum....16f877 nin pa0 ve pa1 uçları lojik 1 olunca verici devresinden bilgi çıkışı vererek alıcıda yangın old. gösteren buzzer veya led yakacam...
alıcıdaki led pb0 pine bağlı...
ben alıcı ve verici için bir program yazdım fakat veri alıcıya gitmiyor...pic konusunda acemiyim biraz...
yardımcı olabilirmisiniz????
veri seri olarak gönderilecek
 
arkadaşım alıcı-verici olarak ne kullanıyorsun.
 
udea marka alıcı verici kullancam....
program olarak yardıma ihtiyacım var
 
verici devresinde pina0 ve pina1 lojik 1 olunca verici ile alıcıya bir veri gönderecem ve alıcıdaki pic bu veriyi doğrularsa ledler ve buzzer çalışcak...
ben bi kod yazdım ccs c++ de çalışmadı...program olarak yardım istiyorum
 
kardeş vericiyle göndereceğin bilgi seri olacak diyosun peki veri olarak ne göndereceksin
bide başka bilgi gönderecek misin
algoritmayı biraz açar mısın
 
\\********************************verici**************************\\
#include <16f877.h>
#use delay(clock=4000000)
#use rs232(baud=300, xmit=PIN_c6, rcv=PIN_c7)
#use fast_io(a)
#use fast_io(b)
int sicaklik,duman;
char kripto;
int i,j,k;

void data_gonder()
{
for(i=0;i<5;i++)
{
putc(0b01010101);
}
for(j=0;j<5;j++)
{
putc('A');
}
for(k=0;k<5;k++)
{
putc(kripto);
}

}

void main()
{
set_tris_a(0xFF);
set_tris_b(0x00);
output_b(0x00);
while(true)
{

sicaklik=input(pin_a0);
duman=input(pin_a1);

if(sicaklik==1 && duman==1)
{
output_b(0xFF);
kripto='B';
data_gonder();
}
else
{
output_b(0x00);
;
}

}
}
\\****************************alıcı****************************\\

#include <16F877.h>


#use delay(clock=4000000)
#use rs232(baud=300,xmit=PIN_c6,rcv=PIN_c7)

#use fast_io(c)
#define use_portd_lcd TRUE
#include <lcd.c>

char veri_al;

void main()
{

lcd_init();
while(true)
{
veri_al=getc();
if(veri_al==0b01010101)
{
veri_al=getc();
if(veri_al=='A')
{
veri_al==getc();
if(veri_al=='B')
{
printf(lcd_putc,"TAMAM");
}
}
}
}
}
 
böyle bir program yazdım
verici devreden alıcı devreye önce 01010101 göndererek alıcıyı uyarıcam....
eğer alıcıdaki pice 01010101 gelmişse örneğin A karakteri göndererek(verici pic deki pina0 ve pina1 lojik 1 old.zaman)alıcı devresindeki ledleri yakmak istiyorum
 
yok mu yardımda bulunacak
 
Konu baslıgı biraz eski ama neyse :) dostum oncelikle bu devre icin neden 16f877 kullanmak istediğini merak ettim zira 16f84 veya 16f628 gibi piclerle yazpılmıs bir cok rf alıcı verici devreleri internette mevcut bunlardan birini yapmayı denesen sana daha ucuza mal olur.Ustelik programla falan ugrasmassın.Verici cıkıslarına uygun transistor ve role baglayıp istedigin lamba veya sesli uyarı sistemini surebilirsin...Kolay gelsin...
 
Selam kardeş bu konu çok basit bi konu ya eğer halen daha ihtiyacın var ise ben sana en basit yoldan rf alıcı verici programı yazar yollarım ama tekniğini istiyorsan biraz kafa ütüleyicidir :)
şimdi kardeş ben sana bi örnek program yazayım istersen sen onu çok basit olarak kendi isteğine çevirebilirsin ama deneyimin yoksa yada kolay olmadığına inanırsan **************** adresinden mail at ben sana daha detaylı olarak isteğine uygun bişey yazıp yollarım
alıcı için gerekli kodlar

INCLUDE "modedefs.bas"
CMCON=7
INPUT PORTB.1
OUTPUT PORTA.0
SIFRE1 VAR BYTE

SIFRE2 VAR BYTE

SIFRE3 VAR BYTE

SIFRE4 VAR BYTE

OKU VAR BYTE
SIFRE1=0

SIFRE2=0

SIFRE3=0

SIFRE4=0

OKU=0
LOW PORTA.0

BASLA:

SERIN PORTA.0,N2400,["1984"],OKU,SIFRE1,SIFRE2,SIFRE3,SIFRE4

IF SIFRE1=1 AND SIFRE2=9 AND SIFRE3=8 AND SIFRE4=4 THEN

GOTO ATLA

ELSE

LOW OKU

GOTO BASLA

ENDIF
ATLA:

IF OKU=10 THEN

HIGH PORTA.0

ENDIF

IF OKU=20 THEN

LOW PORTA.0

ENDIF
GOTO BASLA

END

verici için gerekli kodlar

INCLUDE "modedefs.bas"

CMCON=7

ANSEL=0



SIFRE1 VAR BYTE

SIFRE2 VAR BYTE

SIFRE3 VAR BYTE

SIFRE4 VAR BYTE



SIFRE1=1

SIFRE2=9

SIFRE3=8

SIFRE4=4



INPUT GPIO.0

INPUT GPIO.1

OUTPUT GPIO.5



LOW GPIO.5



AC VAR GPIO.0

KAPAT VAR GPIO.1

GON VAR BYTE

GON=0



BASLA:

IF AC=1 THEN

GON=10

SEROUT GPIO.5,N2400,[GON,SIFRE1,SIFRE2,SIFRE3,SIFRE4,"1984"]

ENDIF



IF KAPAT=1 THEN

GON=20

SEROUT GPIO.5,N2400,[GON,SIFRE1,SIFRE2,SIFRE3,SIFRE4,"1984"]

ENDIF



GOTO BASLA

END

not :
kardeş ben programda verici pic olarak pic12f675 kullandım programdaki gpio.5 pic12f675 in pinidir sen 877 kullanırsan ansel cmcon registerlerinin yerine adcon1 kullanırsın gpio.5 yerine ise portx.x olarak kullanman yeterli
bu programı ben devresi ile birlikde yaptım çalışdırdım bilgilerine
kolay gelsin...

________________________________________________________________________________________
Konu içinde msn adresi e posta site adresi vermek yasaktır .Birbirinizle özel mesaj pm yoluyla ulaşın

Bu mesaj 08 haziran 2008 tarihinde saat 23:06 itibariyle PIC_achu tarafından değiştirilmiştir
 

Forum istatistikleri

Konular
128,826
Mesajlar
920,799
Kullanıcılar
450,915
Son üye
snapthreads

Yeni konular

Çevrimiçi üyeler

Geri
Üst