Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Rf alıcı verici uygulaması

Başlatan altugduranoglu, 08 Şubat 2013, 17:11:28

altugduranoglu

 
Merhabalar arkadaşlar , isiste kurdugum  rf alıcı verici  uygulamam çalışmıyor. Sitedeki örneklerden yola cıkarak birşeyler  yaptım.Belki ufak ufak hatalar var. pic16f628a'dan butona bastıgımda iletişim pini (ra4) pic16f877a'ya hiçbir tepki vermiyor.  Picler arası seri iletişim kuramadım. Yazılım yada kurdugum devredemi bir hata var nerede yanlış var ? Yardımlarınız için şimdiden teşekkür ederim.
Dosyalar ektedir.
http://www.dosya.tc/server/F0BzMl/RF_ALI_MAM.rar.html
ALICI KISMI
#include <16f877A.h>
#fuses XT, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
#use delay(clock=4000000)
#use rs232 (baud=600, rcv=pin_c2, parity=N, stop=1)

char veri=0;
void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

  set_tris_b(0x00);
  output_b(0x00);
  while(1)
  {
  if(getchar()==255)
   {
   veri=getchar();
   }
   if(veri=='a')output_b(0x1);
   if(veri=='b')output_b(0x2);
   if(veri=='c')output_b(0x4);
   if(veri=='d')output_b(0x00);
  }

}


VERİCİ KISMI
#include <16f628A.h>
#fuses XT, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP
#use delay(clock=4000000)
#use rs232 (baud=600, xmit=pin_a4, parity=N, stop=1)


void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   set_tris_a(0xf);
   output_a(0x00);
   while(1)
 
   
   while(input(pin_a0))
   {
   putc(0x55);
   putc(0x0f);
   putc(255);
   putc('a');
   delay_ms(10);
   }
   while(input(pin_a1))
   {

toprak0258

merhabalar...
verdigin linkleri acamadim onun icin cok fazla bir sey belirtemem....ama 16f628 in ra4 pini biraz farkli calisan bir pin onu onutma vaya degistir...yine verici ve alici bolumunu daha uygun bir sekilde gozden gecirip yeniden yazabilirsin...eger linkleri acabilirsem yada sana basit bir ornek program gonderebilirim...eger modul kulanacaksan elindeki modulude tanitirsan iyi olur...
selamlar....
Bilgi paylaşıldıkca değer kazanır.

yldzelektronik

O kadar pin varken neden ra4 tercih edilir ki?Data sheet karıştırırsan pull up gerekliliğini fark edeceksin.Tx pinini kullansan daha iyi edersin.İllede o pini kullanıcam dersen pull up olayına bakın biraz.
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

elektrorazor

kodlarda sıkıntı yok gibi.bende çalışan örnek var.sen MCLR den başka bacak kullan bence. :)

toyo

alıcı kısmındaki while döngüsüne dikkat!
while(1);

noktalı virgül olursa orda kalır program..
Gelirken ne getirilir ki giderken ne götürülür.

altugduranoglu

Arkadaşlar hepinize cevaplarınız için teşekkür ederim.
toprak0258, yldzelektronik
Kullanacagım  verici ve alıcı modül
http://www.altaskitap.com/modules/catalog/products/pr_01_156_max.jpg
http://www.altaskitap.com/433-Mhz-Kristalli-Alici-Hibrit,PR-155.html

link yenilendi en son durumunu buradan indirebilirsiniz.
http://www.dosya.tc/server/F0BzMl/RF_ALI_MAM.rar.html

elektrorazor
örnek kodları paylaşırsan sevinirim.

toyo
while döndüsündeki noktalı virgül nasıl bir hatadır  :) kaldırdım onu

son durum olarak
pic 628a Pini rb2 tx pini olarak değiştirdim.Devre şu an tepki veriyor  fakat sadece ra0 a bastıgımda rb0 daki led yanıyor. diğer pinler calısmıyor. program orada kilitleniyor. program içindeki diğer döngülere bakıcam yardımlarınızı bekliyrm.Nerede hatam var ?


toprak0258

merhabalar...
programina baktim verici bolumunde sorunlar var....ilkin birinci while nin prantezleri yok onun icin calismiyor ayrica o kadar while kulanmana gerek yok....ben while yerlerine if komutunu kulandim ve bas etigim parantezleri koydum ve program sorunsuz calisiyor ...sizde deneyin calistigini goreceksiniz...eger yine calismadiysa bendeki son halini gonderebilirim...en ufak katkimiz olabilmisse ne mutlu bize.....
selamlar...
Bilgi paylaşıldıkca değer kazanır.

altugduranoglu

Alıntı yapılan: toprak0258 - 09 Şubat 2013, 18:39:41
merhabalar...
programina baktim verici bolumunde sorunlar var....ilkin birinci while nin prantezleri yok onun icin calismiyor ayrica o kadar while kulanmana gerek yok....ben while yerlerine if komutunu kulandim ve bas etigim parantezleri koydum ve program sorunsuz calisiyor ...sizde deneyin calistigini goreceksiniz...eger yine calismadiysa bendeki son halini gonderebilirim...en ufak katkimiz olabilmisse ne mutlu bize.....
selamlar...
while parantezlerini koydum.yine aynı tepkiyi verdi. sizdeki programı gönferebilirmisiniz? hataları bende göreyim teşekkürler

toprak0258

merhabalar....
void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   set_tris_a(0xf);
   output_a(0x00);
   while(1)
   {
 
   
   if(input(pin_a0))
   {
   putc(0x55);
   putc(0x0f);
   putc(255);
   putc('a');
   delay_ms(10);
   }
   if(input(pin_a1))
   {
   putc(0x55);
   putc(0x0f);
   putc(255);
   putc('b');
   delay_ms(10);
   }
   if(input(pin_a2))
   {
   putc(0x55);
   putc(0x0f);
   putc(255);
   putc('c');
   delay_ms(10);
   }
   if(input(pin_a3))
   {
   putc(0x55);
   putc(0x0f);
   putc(255);
   putc('d');
   delay_ms(10);
   }
   }
}

istersen isiste deneyeceginde once kendi programini devreye bir tane osilaskop takarak dene ....ondan sonra verdigim halini derle ve yine osolaskop ile bak ...umarim sizin istediginiz gibi olmus ve isinizi gormustur....olmasa yine bilgi verin yinede bakabiliriz....bilgide mutluluk gibidir  paylasildikca anlam bulur....
selamlar....
Bilgi paylaşıldıkca değer kazanır.

altugduranoglu

#10
Alıntı yapılan: toprak0258 - 11 Şubat 2013, 10:52:04
merhabalar....
void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   set_tris_a(0xf);
   output_a(0x00);
   while(1)
   {
 
   
   if(input(pin_a0))
   {
   putc(0x55);
   putc(0x0f);
   putc(255);
   putc('a');
   delay_ms(10);
   }
   if(input(pin_a1))
   {
   putc(0x55);
   putc(0x0f);
   putc(255);
   putc('b');
   delay_ms(10);
   }
   if(input(pin_a2))
   {
   putc(0x55);
   putc(0x0f);
   putc(255);
   putc('c');
   delay_ms(10);
   }
   if(input(pin_a3))
   {
   putc(0x55);
   putc(0x0f);
   putc(255);
   putc('d');
   delay_ms(10);
   }
   }
}

istersen isiste deneyeceginde once kendi programini devreye bir tane osilaskop takarak dene ....ondan sonra verdigim halini derle ve yine osolaskop ile bak ...umarim sizin istediginiz gibi olmus ve isinizi gormustur....olmasa yine bilgi verin yinede bakabiliriz....bilgide mutluluk gibidir  paylasildikca anlam bulur....
selamlar....
Düzgün çalışıyor sonunda :D Şimdi paylaşacagım.Teşekkürler tüm herkeze


mesaj birleştirme:: 11 Şubat 2013, 12:17:52

http://www.dosya.tc/server/idEjmK/RF_ALI_MAM.rar.html dosya ektedir.

toyo

Bu devreyi pratikte kurmayı düşünüyomusunuz.?
Gelirken ne getirilir ki giderken ne götürülür.

altugduranoglu

Alıntı yapılan: toyo - 11 Şubat 2013, 18:59:19
Bu devreyi pratikte kurmayı düşünüyomusunuz.?
Evet düşünüyorum bu haliyle pratikte çalışmaz galiba yada çalışırmı?. Röle ekleyecegim ,buton sayısını artırıcam döngülerde değişiklik yapıcam.Amacım ögrenmek. rf alıcı verici kit aldım keymarkın.

toyo

Bilidiğim kadarıyla keymark modülleri 3.3V ile çalışıyor.pic ise 5V. aşağıdakiler gibi bir devre kullanmanızı tavsiye ederim.
yakın mesafeden sorun olmaz belki ama.uzun mesafeler için sıkıntı olur.her butona basıldıgında verileri 10 kez arka arkaya göndererek çözmüştüm ben mesafe sorununu. birde 'A' 'B' yerine 0x7A 0x5C gibi değerler göndermiştim.Belki daha iyi bilen bir arkadaşımız çıkabilir.ben böyle 90-100m. ye kadar çıkmıştım.Atx arx modulleriyle.

http://www.sparkfun.com/tutorials/65
http://www.udea.com.tr/dokumanlar/5V-3V-Level_Rev.2.pdf
http://creativeelectron.net/blog/wp-content/uploads/2009/10/11.jpg
Gelirken ne getirilir ki giderken ne götürülür.