PİC İLE RF ALICI VERİCİ SORUNU

Başlatan yvzsmsk, 12 Mayıs 2016, 10:42:53

yvzsmsk

Pic16F627 ile yapmaya çalıştığım RF alıcı verici devresinde simulasyonda iki pic'i doğrudan bağladım çalıştı. Fakat FS1000A RF alıcı verici üzerinde çalışmıyor. RF alıcının data ucuna bir Led bağladım başka kumandadan bilgi okuyor fakat RF vericide gönderemiyor.
Yunus Emre Meslek Lisesi
Elektronik Bölümü
Yavuz Şimşek.


Edit (ete) : Büyük harflerle mesaj yazmak bu sitede hoş karşılanmıyor. Sebebi ise büyük harfin Forum lügatında bağırmak kızgınlık ifade etmek anlamına gelmesi. Muhtemelen bilmediğin için ikaz ediyorum. Bir daha yazmazsın umarım.

yvzsmsk

#1
uyardığınız için teşekkürler. sisteme proteus ve ccs c kodlarını yükleyemedim fakat kodları aşağı ekliyorum
#include <16F627A.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz)
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOMCLR                   //Master Clear pin used for I/O
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection

#use delay(clock=4000000)
#use rs232(baud=300, uart1,)
int32 sure=0;
int a=0,c=0,d=0,j=0,sonuc;

/*#int_TBE
void  TBE_isr(void)
{
putc(a);

}

*/
#int_RDA
void  RDA_isr(void)
{disable_interrupts(INT_RDA);
a=getc();
c=~a;
putc(a);
if(a=='a'||c=='a')
sure=0;
#int_TIMER1
void  TIMER1_isr(void)
{disable_interrupts(INT_TIMER1);

if(sure<100){
sure++;
delay_ms(1);
output_high(pin_b3);
}
if(sure>=100)
output_low(pin_b3);set_timer1(0);
enable_interrupts(INT_TIMER1);
}

*/

void main()
{




   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
   setup_timer_2(T2_DISABLED,0,1);
  enable_interrupts(INT_RDA);
  enable_interrupts(GLOBAL);
     setup_comparator(A0_VR_A1_VR);
   setup_vref(VREF_LOW|12);
while(1){
if(sure<1000){
sure++;
delay_ms(1);
output_high(pin_b3);
}
if(sure>=1000)
output_low(pin_b3);
if(C2OUT==0){
disable_interrupts(INT_RDA);
putc('a');sure=0;
delay_ms(100);
enable_interrupts(INT_RDA);
}
}
}


Edit (ete) : Kod verirken Kod Tag kullanmanız gerekiyor. Hem okunma kolaylığı hemde kapladığı alanı küçültmek adına bu gerekli. Mesaj yazma ekranında üzerinde # olan butona tıklarsanız size bir kod tag açacaktır. Kodları araya yerleştireceksiniz.

Ben sizinkini düzelttim.


ete

Bu mesajda bir soru sorulmuyor ama mesajdan anlam çıkarmamız isteniyor. Her zaman söylerim ne istediğinizi iyi ifade edin diye. Şimdi soruna bakacak olursak muhtemelen Verici modül çalışmıyor yada çalıştırılamıyor. Sorunu anlamak için modülleri elime almam yada kurulan devreye bakmam gerekiyor. Uzaktan bunu yapmam mümkün değil. Anlayacağın sorunu yine sen bulacaksın. Takip edilecek yol şöyle olmalı;
- Öncelikle bu RF alıcı ve Vericinin bir biri ile uyumlu olduğundan emin olmalısın. RF sistemlerde bir taşıyıcı frekans vardır. Müsaade edilen bant genelde 433 Mhz dir. 305 Mhz yada 815 Mhz yada 2400 Mhz gibi bantlarda kullanılıyor. Senin modüllerin her ikiside aynı frekansta çalıştığından emin olman gerek.
433 Mhz de bile 433,92 433,0 gibi ara değerlerde mevcut olup bu iki değer bir biri ile zor haberleşir yada hiç haberleşmez. İkisininde frekans değeri aynı olmalıdır.

- Verici devreler üzerinde PT serisi veya bir başka seriden bir şifreleme entegresi olabilir. Modüller hakkında detay vermediğin için olası hataları vermeye çalışıyorum ve aklıma bu geliyor. Böyle bir şey var ise alıcıda da karşılığı olması gerekir. Yok ise bu iki modül haberleşemez.

- Her iki sisteminde besleme voltajlarının gelip gelmediğine bakmak veya geldiğinden emin olmak gerekir.

- Haberleşme RS232 formatında yapılıyor ise her iki modülünde aynı baud rate içinde haberleştiklerinden emin olmak gerekir.
   Simulasyonda çalışması bunun doğru olduğunu gösterir.

- devreyi simule edebildiğine göre bir işlemci yardımı ile bu haberleşme yapılıyor diye düşünebiliriz. Bu durumda işlemcinin çalışıp çalışmadığını kontrol etmek lazım. Bunun için aşağıdaki linkte verilen makaleyi okumanda yarar var. Bu makale simulasyonda çalışıp da gerçekte çalışmayan devrelerdeki kusurları açıklamaktadır. Sende de benzer sorunlar olabilir.
http://etepic.com/index.php/topic,1670.0.html

Bundan fazlasını istiyor isen modül resimleri , devre şeması ve varsa program gibi  şeyleri buraya eklemen gerekiyor. Onlar olmadan yorum yapmak zor.

Ete

Powered by EzPortal