Rf haberleşme sorunu

Başlatan _MeRKeZ_, 01 Kasım 2013, 07:23:12

_MeRKeZ_

Merhaba arkadaşlar,

RF haberleşme konusuyla ilgili bir çalışma yapıyorum. Sistemin çalışmasını denemek için ilk olarak basit bir örnekle başlamak istedim. A0 ve A1 uçlarına bağlanan iki tuştan alınan bilgiler diğer mikroişlemciye bağlı LCD'ye aktarılacak. İnternette bulduğum örnekleri gözönünde bulundurarak kodları yazdım ancak nerede hata yaptım bir türlü bulamadım. Yardım ederseniz çok makbule geçer. Teşekkürler

https://hotfile.com/dl/253125221/bae9b17/proje.rar.html

MrDarK

Kaynak kodlarını buraya koyarsan daha kolay cevap alabilirsiniz :)
Picproje Eğitim Gönüllüleri ~ MrDarK

erpay

RF modülün ney ? Burada iki pici direk bağlamışsın ama RF modülle ney üzerinden haberleşeceksin mesela SPI ?

_MeRKeZ_

Udea'nın Rx ve Tx haberleşme modülleri hocam. Kaynak dosyaları da linkte ekli.

toyo

9600 baud hızı yüksek 2400 olarak ayarla.uzak mesafeden x,b,c,a gibi  bilgiler kaybolur gider.

Şöyle dene bak çalışacaktır.

1.butona basıldıı ise   
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma

putc(0x6C);//asıl veri


2.butona basıldı ise
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x7A);//asıl veri

--------------
Alıcıda alırken ise

if(getc()==0x6C) //0x6C geldimi?

geldi ise sayı=3;


Gelirken ne getirilir ki giderken ne götürülür.

_MeRKeZ_

Alıntı yapılan: toyo - 01 Kasım 2013, 18:06:15
9600 baud hızı yüksek 2400 olarak ayarla.uzak mesafeden x,b,c,a gibi  bilgiler kaybolur gider.

Şöyle dene bak çalışacaktır.

1.butona basıldıı ise   
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma

putc(0x6C);//asıl veri


2.butona basıldı ise
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x7A);//asıl veri

--------------
Alıcıda alırken ise

if(getc()==0x6C) //0x6C geldimi?

geldi ise sayı=3;


Hocam, asıl veri olarak verdiğiniz değerlerin özelliği nedir? Neden A, B gibi harfler kabul edilmiyor? Son olarak, 0xFF ve 0x00 gönderilerine neden ihtiyaç duyulmuyor?

toyo

Hocam ben pratikte deneyerek her yolu test ettiğim için uyandırma olarak 5 defa 0x55 göndermek yeterli.
diğer 0x00 0xFF tekrar tekrar gerek yok .
A,B gibi harfler kabul edilmiyor değil.!
Alıcımız her hangi bir yerden 'A' harfini alabilir ki ben gördüm bunu.Sagdece uyandırma gönderdiğim zaman durduk yere 'A' harfi geliyo ve pic normal sinyal gemiş gibi işlem yapıyor örnek veriyorum. Sağlam olması açısından 0x9C gibi veriler gönder alıcı ne alacağını iyi bilir en azından  :)
Daha tecrubeli olan arkadaşlar mutlaka vardır onlarda yardımcı olacaktır.
Gelirken ne getirilir ki giderken ne götürülür.

MrDarK

Tek karakter göndereceğinize göre daha fazla karakter gönderin örneğin "Butona basıldı" gibi sonunada checksum koyarsanız alınan verinin doğruluğunu kesinleştirebilirsiniz.
Picproje Eğitim Gönüllüleri ~ MrDarK

_MeRKeZ_

Alıntı yapılan: toyo - 02 Kasım 2013, 10:18:40
Hocam ben pratikte deneyerek her yolu test ettiğim için uyandırma olarak 5 defa 0x55 göndermek yeterli.
diğer 0x00 0xFF tekrar tekrar gerek yok .
A,B gibi harfler kabul edilmiyor değil.!
Alıcımız her hangi bir yerden 'A' harfini alabilir ki ben gördüm bunu.Sagdece uyandırma gönderdiğim zaman durduk yere 'A' harfi geliyo ve pic normal sinyal gemiş gibi işlem yapıyor örnek veriyorum. Sağlam olması açısından 0x9C gibi veriler gönder alıcı ne alacağını iyi bilir en azından  :)
Daha tecrubeli olan arkadaşlar mutlaka vardır onlarda yardımcı olacaktır.


Anladım hocam, teşekkür ederim. Deneyip sonucu yazacağım.


Alıntı yapılan: MrDarK - 02 Kasım 2013, 11:26:43
Tek karakter göndereceğinize göre daha fazla karakter gönderin örneğin "Butona basıldı" gibi sonunada checksum koyarsanız alınan verinin doğruluğunu kesinleştirebilirsiniz.

O işlemi yazılımsal olarak nasıl yapabiliriz hocam? Bir örneği var mı?

_MeRKeZ_

Alıntı yapılan: toyo - 01 Kasım 2013, 18:06:15
9600 baud hızı yüksek 2400 olarak ayarla.uzak mesafeden x,b,c,a gibi  bilgiler kaybolur gider.

Şöyle dene bak çalışacaktır.

1.butona basıldıı ise   
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma

putc(0x6C);//asıl veri


2.butona basıldı ise
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x55);//uyandırma
putc(0x7A);//asıl veri

--------------
Alıcıda alırken ise

if(getc()==0x6C) //0x6C geldimi?

geldi ise sayı=3;


Hocam ne yazık ki olmadı. Sürekli kesmedeymiş gibi C0 ledi yanık kalıyor ancak Lcd'de yazı çıkmıyor.


toyo

Vaktim azdı biraz acele ile yaptım varsa bi kusurumuz af ola.
http://s3.dosya.tc/server12/LjqcZi/proje.rar.html
Gelirken ne getirilir ki giderken ne götürülür.

_MeRKeZ_

#11
Alıntı yapılan: toyo - 02 Kasım 2013, 21:26:58
Vaktim azdı biraz acele ile yaptım varsa bi kusurumuz af ola.
http://s3.dosya.tc/server12/LjqcZi/proje.rar.html

Estağfirullah hocam, sağolasın ilgilendiğin için. Uyandırma komutlarının olmaması gerçek devre üzerinde sıkıntı yaratmaz mı hocam? Proteus'ta hata oluşmasına sebep olan bu komutlar mıydı acaba?

toyo

if(input(pin_a2) && input(pin_a3))  {
          putc(0x55); putc(0x55); putc(0x55); putc(0x55);
          putc(0x55);putc(0x6C);putc(0x6C);putc(0x6C);}
         
         if(input(Giris_2))                  {
          putc(0x55); putc(0x55); putc(0x55); putc(0x55);
          putc(0x55);putc(0x7A);putc(0x7A);putc(0x7A);}
         if(input(Giris_1))                  {
          putc(0x55); putc(0x55); putc(0x55); putc(0x55);
          putc(0x55);putc(0x3B);putc(0x3B);putc(0x3B);}


Vericiyi bu şekilde değiştirin.
Gelirken ne getirilir ki giderken ne götürülür.