Pic Rf haberleşme problemi

Başlatan ironeyes, 27 Temmuz 2023, 19:21:38

ironeyes

Merhaba 2 picin birbiri ile haberleşmesini sağlamaya çalışıyorum. Haberleşiyorlar ancak kullandığım rf modülünden mi bilinez menzili aşırı kısa 3-5 metre arası.Ne kadar anteni büyütsemde fayda etmiyor. Kullandığım modül aşağıda. Verici kısmı için 7-8v civarı gerilim ile besliyorum. Vericinin 20-100m arası menzili olduğu yazıyor ancak bunun 10da 1ini bile alamıyorum. Ne tavsiye edersiniz.

kudretuzuner

Merhaba,
PIC to PIC haberleşmede, simulasyonda çalıştırabildiniz mi? tx-rx ve rx-tx bağlantıları ile sağlıklı çalışabiliyor mu? Şema ve yazılım verirseniz daha kolay yardım alırsınız düşüncesindeyim.
Amatör

sifirzero

Manyetik alan var ise dalganma ve sinyalde bozulma olur.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

ete

Hem alıcıya hemde vericiye 17,1cm lik kablo yani anten bağlaman gerek. Ne daha uzun nede daha kısa. Anten boyu frekansa göre hesaplanır ve sonuç kaç cm çıkmış ise o kadarlık anten takılır. Daha uzun daha güç üretmiyor maalesef.
Aslında resme bakınca satın alınabilecek en uyduruk RF çifti bunlar diyebilirim. İşin program tarafınada bakmak gerekirdi. RF sistemleri önden bir uyandırma sinyali ister. Bu sinyali vermez isen sinyal başını genelde kaçırırsın ve bu nedenle sıhhatli bir haberleşme gerçekleşmez. Yada arada bir sinyal yakalar sistemin ve haberleşebildiği kadar haberleşir ki sende de böyle oluyor herhalde.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

ironeyes

Alıntı yapılan: ete - 27 Temmuz 2023, 20:03:43Hem alıcıya hemde vericiye 17,1cm lik kablo yani anten bağlaman gerek. Ne daha uzun nede daha kısa. Anten boyu frekansa göre hesaplanır ve sonuç kaç cm çıkmış ise o kadarlık anten takılır. Daha uzun daha güç üretmiyor maalesef.
Aslında resme bakınca satın alınabilecek en uyduruk RF çifti bunlar diyebilirim. İşin program tarafınada bakmak gerekirdi. RF sistemleri önden bir uyandırma sinyali ister. Bu sinyali vermez isen sinyal başını genelde kaçırırsın ve bu nedenle sıhhatli bir haberleşme gerçekleşmez. Yada arada bir sinyal yakalar sistemin ve haberleşebildiği kadar haberleşir ki sende de böyle oluyor herhalde.

Ete

Anteni tam olarak o değerde de denenim ancak sonuç alamadım. Kullandığım kodu aşağıda paylaşıyorum tavsiyelerinize açığım.

Verici
#include <12f675.h>  // verici
#fuses NOWDT,HS,NOMCLR,PROTECT
#use delay(clock=4m)
#use rs232(baud = 250,xmit = pin_a2,PARITY = n,bits =8,stop =1)
#use fast_io(a)

#define GP0 PIN_a0 
#define GP1 PIN_a1 
#define GP2 PIN_a2 
#define GP3 PIN_a3 
#define GP4 PIN_a4 
#define GP5 PIN_a5 
#byte OSCCAL = 0x90

int buton1 = 1;
int buton2 = 1;

void main(void)
{
set_tris_a(0b001000);
output_low(0x00);
basla:
delay_ms(50);


output_high(pin_a1);
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(1);
putc('a');
delay_ms(1);
putc('a');
buton1 = 0;
delay_ms(10);
putc('a');
putc('a');
delay_ms(20);
putc('a');
buton1 = 0;
delay_ms(10);
putc('a');
putc('a');
delay_ms(10);
putc('a');
buton1 = 0;
delay_ms(10);
putc('a');
putc('a');
delay_ms(10);
putc('a');
buton1 = 0;
delay_ms(10);
putc('a');
putc('a');
delay_ms(20);
putc('a');
buton1 = 0;
delay_ms(10);
putc('a');
putc('a');
delay_ms(10);
putc('a');
buton1 = 0;
delay_ms(10);



while(true)

{


}
}

Alıcı
#include <12f675.h>  // alıcı  
#fuses HS,NOMCLR,PROTECT,NOWDT
#use delay(clock=4m)
#use rs232(baud = 250,rcv = pin_a3,PARITY = n,bits =8,stop =1)



#define GP0 PIN_a0 
#define GP1 PIN_a1 
#define GP2 PIN_a2 
#define GP3 PIN_a3 
#define GP4 PIN_a4 
#define GP5 PIN_a5 
#byte OSCCAL = 0x90

char harf;
void main(void)
{
set_tris_a(0x00);
output_low(0x00);
output_low(pin_a0);
basla:
while(1)
if(getch())
{
harf = getch();
delay_ms(20);
if(harf == 'a')
{
output_High(pin_a2);
output_High(pin_a1);
delay_ms(40000);
output_low(pin_a2);
output_low(pin_a1);

}

goto basla;
}
}

elektronikhobi

Arkadaş, anten konusunu izah etmiş.

Destekliyorsa verici gerilimini 12 volta çıkarmak düşünülebilir.

Bu işler Arduino ile daha kolay oluyor.

Daha dün bu konuda birisi yorum yazmış.
"Yirminci asrın akıllara hayret veren keşiflerinden birisi de hiç şüphesiz transistörlerdir."


ilyas KAYA

Bu moduller çok kötü. Bi ara 100 civarı aldım hepsinde frekans kayması var ve ne yaparsam yapayım mesafe uzamadi. Alici modülü değiştirip deneyin.

mehmet

Alıcı ve verici aynı frekansta mı?
433, 330 veya 315MHz olabilir. Ancak
Hem alıcı, hem verici aynı frekansta
olmalıdır.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

mustafa_cmbz

Senkrom tutturamıyorsun gibi geldi.

Kodunu pek incelemesi ama delaylar ile birşeyler yapılmış sanırım. Çok sağlıklı olacağını sanmıyorum bu şekilde.

Hazır serial kütüphanesi yokmu kullandığın dilin.


ironeyes

#9
Hocam arduinoya hakım değilim devem pic ile kurulu. Devre kartları vs hazır vaziyette. Benim bir şekilde menzili arttırmanın bir yolunu bulmam gerekiyor. 17.2 cmlik anteni denedim ancak sonuç alamadım. Modül üzerinde oynama yaparsak çözüm olur mu acaba. Tavsiyelere açığım.

mg1980

Hocam, mobilden hızlı inceleme yaparken bu  "Moderatöre rapor et" yazısı sıkça çıkıyor, yanlışlıkla ikinci kez basmışsak kusura bakmayın..

elektronikhobi

Alıntı yapılan: ironeyes - 28 Temmuz 2023, 10:52:43Benim bir şekilde menzili arttırmanın bir yolunu bulmam gerekiyor.

Eğer destekliyorsa vericinin besleme gerilimini arttırmak düşünülebilir.

Normal beklemede mikro denetleyici, gelen isteklere zamanında yanıt veremiyor.

Arduino örneğinde ise duruma göre bekleme yapılıyor.

Örnek olarak 500 ms aralıklarla ışığı yak söndür dedik. 150 ms sonra radyo paketi geldi.

Normal beklemede muhtemelen bu komut kaçırılacaktır.

Duruma göre beklemede ise 500 ms beklemeye başlıyor. Ancak, 10 ms aralıklarla radyo iletişiminin olup olmadığını kontrol ediyor.

Diyelim ki radyo iletişimi var. Döngüyü kırıyor ve gelen komutları işlemeye yöneliyor.

Burada bir tane PIC örneği varmış.

"Yirminci asrın akıllara hayret veren keşiflerinden birisi de hiç şüphesiz transistörlerdir."


mustafa_cmbz

Alıntı yapılan: ironeyes - 28 Temmuz 2023, 10:52:43Hocam arduinoya hakım değilim devem pic ile kurulu. Devre kartları vs hazır vaziyette. Benim bir şekilde menzili arttırmanın bir yolunu bulmam gerekiyor. 17.2 cmlik anteni denedim ancak sonuç alamadım. Modül üzerinde oynama yaparsak çözüm olur mu acaba. Tavsiyelere açığım.

Hocam senin sıkıntın kod kısmında emin olmak istiyorsan serial çalışan pll kristalli bir alıcı verici takımı al dene ama sonuç yine aynı olacaktır diye düşünüyorum.

Dediğim gibi kodunu oturup dört dörtlük incelemedim ama delaylar beklemeleri kullanılarak çalışan bir koda benziyor buda delaylar ile hassas bir zamanlama yapılamadığı için epey bir veri kaybı oluşuyor sanırım.

ilyas KAYA

Kısa mesafede kod sorunsuz çalışıyor mu ?

ironeyes

Alıntı yapılan: ilyas KAYA - 28 Temmuz 2023, 18:24:37Kısa mesafede kod sorunsuz çalışıyor mu ?

Evet çalışıyor sıkıntısız.

Alıntı yapılan: mustafa_cmbz - 28 Temmuz 2023, 17:57:09Hocam senin sıkıntın kod kısmında emin olmak istiyorsan serial çalışan pll kristalli bir alıcı verici takımı al dene ama sonuç yine aynı olacaktır diye düşünüyorum.

Dediğim gibi kodunu oturup dört dörtlük incelemedim ama delaylar beklemeleri kullanılarak çalışan bir koda benziyor buda delaylar ile hassas bir zamanlama yapılamadığı için epey bir veri kaybı oluşuyor sanırım.

Aslında o tarz bir verici takımı ile denemedim ancak elimde bir kaç tane bu modüllerden var ve incelerken bişey fark ettim modüllerin hepsinin devre yapısı ayını değil ve o 'değişik' devre yapılı modüllerin birini denemek için değiştirdim ve menzili 4-5 metre fazladan arttı. Ancak hala datashette yazan değerlerin yakınında bile değilim.