Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

RF iletişim yardım

Başlatan silivrili, 09 Ocak 2012, 21:55:31

silivrili

Arkadaşlar merhaba. Eml de elektrik öğretmeniyim okul için tasarladığım bir projede yardımınıza ihtiyacım var.  Sorun şu: Verici modül sürekli data yollayacak, alıcı modül vericinin kapsama alanına girdiğinde led yansın istiyorum kapsama alanından çıktığında ise sönsün istiyorum. 877 ile uğraştım fakat başaramadım Data geldiğinde led yanıyor fakat data kesildiğinde sönmüyor. RS232 Kesmesi ile yapayım dedim data gelince yansın ana program söndürsün onu da sağlıklı olarak çalıştıramadım. Çalışmam ektedir. Yardımlarınız ve fikirleriniz için şimdiden teşekkürler.
https://rapidshare.com/#!download|423l3|3668773838|rf_alıcı_verici.rar

ferdem

RS232 kesmesiyle daha sağlıklı olur. Bu modüllerle haberleşirken data gönderme aralarında boşluk olmamalı, verici.c datayı en azından şöyle göndersin:
while(1){
delay_ms(300);
putc('A');
putc('A');
putc('A');
putc('A');
putc('A');
}

Alıcı tarafta da arka arkaya gelen en az iki 'A'  bizim için verici den geliyor demektir.  Alıcı tarafta arka arkaya gelen iki 'A' yı şu şekilde kontrol edip bu durumda 1sn süresince ledi yakabilirsiniz:
void main(){

enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);

while(1){

if(received==1){
   output_high(pin_a1);
   delay_ms(1000); //1 sn suresince yak
   received=0; output_low(pin_a1);
}
}

}


#INT_RDA
void seri_data(){
prev_data=data;
data=getc();

if(data==prev_data && data=='A'){ //arka arkaya gelen iki karakterimiz yakalandı
   received=1; //received
   return;
}

}


Sorunuzu ilk okuduğumda aklıma PT2272 nin valid transmission göstergesi geldi. PT2262-2272 kodlayıcı-kod çözücü ikilisinde kod çözücü taraf adresiyle uyuşan data aldığında valid transmission ledi yakıyor. PIC leri kullanmadan direkt PT ler ve modüllerle istediğiniz olayı yapabilirsiniz. İyi çalışmalar.

Kabil ATICI

Program alıcı devrenizde sürekli olarak veri geldiğinde yanması bölümünü başarmışsınız. Tamam yapmanız gereken sadece ek bir timer kullanacaksınız. süre olarak garanti olması açısından 3-4 veri geliş süresi olarak atayın.  Ve her veri geldiğinde timer sayacını sıfırlayın.

Böylece veri her geldiğinde timer sayacı sıfırlanır ve saymaya başlar.  LED yakılır.
Eğer 3-4 kez veri alınmadığında led söndürülür.

umarım mantık olarak işinize yarar...

Gerçi bunun için işlemciye gerek yok. tabi burada amaç başka bir projede kullanılacak bir araştırma olması mümkün...
ambar7

ferdem

Kontrol işlemi
      
if(a=='A')
         output_high(pin_a1);
        else output_low(pin_a1);
şeklinde yapılmış. Bu durumda verici hiçbir şey göndermese bile led yanar-söner... Havadan gelen bilgiden A verisinin algılanması mümkündür. Şu bağlantıdaki resim kendi vericimi çalıştırmadan rf alıcı modülü seri porta bağlayıp gözlediğimde gelen dataları gösteriyor. Dolayısıyla bu modüllerle 1/0 kontrol işleminin en azından 2 byte derinlikli bir hafıza(arka arkaya gelen iki veri) ile yapılması gerekiyor. İyi çalışmalar.

silivrili

Arkadaşlar çok teşekkür ederim. Özellikle de ferdem arkadaşıma. Yazdığınız ledi gecikmeli söndüren program işimi görecektir. Çok makbule geçti. Çok sağolun.