Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: Emre MERMİ - 05 Temmuz 2015, 02:17:02

Başlık: rf parazit sorunu
Gönderen: Emre MERMİ - 05 Temmuz 2015, 02:17:02
merhaba hocalarım,

pic ile rf alıcı devre yaptım,  çözemediğim 2 sorunum var.

Birincisi pic sürekli rda kesmesine  giriyor kumandadan bilgi yollamasam bile ? parazitten mi etkileniyor ? hazır kumanda aldım,  kumandanın gönderdiği kodu bildeğim için kemeye girince işlemi yapmaya çalıştım ama sürekli kesmeye giriyor bunun nedeni ne olabilir ?

ikincisi ise aldığım hazır kumanda şu ;

http://www.robotistan.com/433-MHz-1-Kanal-RF-Elcik-Kumanda,PR-1792.html (http://www.robotistan.com/433-MHz-1-Kanal-RF-Elcik-Kumanda,PR-1792.html)

bunun gönderdiği kodu arduinoya bir rf alıcı bağlayıp seri monitöre yollayarak yapmaya çalıştım ama yine bulamadım. gönderdiği bilginin baud ratesi nedir ne değildir onu bile bilmiyorum.

bu konudaki fikirleriniz nedir ?

#include <16F877a.h>

#FUSES NOPUT                    //No Power Up Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOPROTECT                //Code not protected from reading

#use delay(crystal=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
int a=0, b=1;
const int digit[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};  //ortak katot display için port çıkışları
char c;

#INT_RDA
void  RDA_isr(void)
{
output_b(digit[a]);
delay_ms(1000);
a=a+1;
}
}

void main()
{
   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);
   set_tris_b(0x00);
   output_b(0x00);
   set_tris_c(0xFF);
   set_tris_a(0x00);
   set_tris_d(0x00);
   output_high(pin_a0);
   output_high(pin_a1);
   output_high(pin_d2);
   output_high(pin_d3);
   output_high(pin_d4);
   output_high(pin_d5);
   while(TRUE)
   {


   }
}


kod böyle olunca sayı sürekli artıyor.

#include <16F877a.h>

#FUSES NOPUT                    //No Power Up Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOPROTECT                //Code not protected from reading

#use delay(crystal=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
int a=0, b=1;
const int digit[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};  //ortak katot display için port çıkışları
char c;

#INT_RDA
void  RDA_isr(void)
{
c=getch();
if(c=="asasa"){
output_b(digit[a]);
delay_ms(1000);
a=a+1;
}
}

void main()
{
   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);
   set_tris_b(0x00);
   output_b(0x00);
   set_tris_c(0xFF);
   set_tris_a(0x00);
   set_tris_d(0x00);
   output_high(pin_a0);
   output_high(pin_a1);
   output_high(pin_d2);
   output_high(pin_d3);
   output_high(pin_d4);
   output_high(pin_d5);
   while(TRUE)
   {

   
   }
}


böyle olunca da hiçbir işlem yapmıyor.

kodlarda kesme içinde işlem yapmamam lazım biliyorum sadece uğraşmaktan yorulduğum ve kodları sürekli değiştirdiğim  için kesme içinde bekleme koydum veya işlem yaptım.
Başlık: Ynt: rf parazit sorunu
Gönderen: baran123 - 05 Temmuz 2015, 02:31:13
"gönderdiği bilginin baud ratesi nedir ne değildir onu bile bilmiyorum."
Bunu bilmeden olmaz.


char c;
c=getch();
if(c=="asasa")


CCS c help de getch() return değeri 8 bit diyor yani string ile karşılaştıramazsınız.
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 05 Temmuz 2015, 02:49:38
hocam tek karakter kullandım yine aynı.  nereden gidebilirim nasıl yapabilirim peki hocam ?
Başlık: Ynt: rf parazit sorunu
Gönderen: baran123 - 05 Temmuz 2015, 03:01:44
Tek karakterden ziyade "s" değil 's' olmalı.
Adım adım gitmek gerekli
C portunda RX ve TX bulunuyor.RX pini giriş olmalı TX çıkış olmalı.(sanırım @Tagli hocam demişti TX de giriş olabilir diye tam hatırlamıyorum)
Önce RX giriş TX çıkış ayarlayın.
Sonra kumandanın datasheetini - dökümanını bulun.Ne gönderiyor nasıl gönderiyor bunu anlayalım.
kodu basitleştirin.Elinizde var ise 628A kullanın teferruatı azdır.
Mesela kumanda 9600 8N1 de A göndersin.
//mesela
#INT_RDA
void RDA_ISR(void)
{
c=getch();
if(c== 'A')
{
//biraz bekle ve led yak
}

Kumandanın üzerindeki yazı-kodlardan dökümanını bulmaya çalışabilirsiniz.
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 05 Temmuz 2015, 03:45:48
hocam ilk olarak yaptığım devrede 6 tane 7 segment, 2 sensör, 2 tane de display kullandığım için pin sayısı yetmiyor.

zaten " kullanınca derleme hatası veriyor ccs c.

döküman olarak hiçbirşey bulamadım hocam. yarın robotistanı arayıp soracağım ama pek umudum yok.  kumandanın üstünde de hiçbirşey yazmıyor.

baskı devrede de bir sorun yok gibi pinler doğru duruyor. iletim var. sorun yok.

kullandığım alıcı ise ;

http://cdn.sparkfun.com/datasheets/Wireless/General/RWS-371-6_433.92MHz_ASK_RF_Receiver_Module_Data_Sheet.pdf (http://cdn.sparkfun.com/datasheets/Wireless/General/RWS-371-6_433.92MHz_ASK_RF_Receiver_Module_Data_Sheet.pdf)


mesaj birleştirme:: 05 Temmuz 2015, 03:49:25

anlamadığım bir soru ise pic neden sürekli kesmeye giriyor ?
bu arada kumandanın butonuna bastığımda ve elimi çektiğimde alıcı data bacağında gerilimde değişmeler oluyor (aynı şekilde bağlı olduğu pic rx bacağında da değişmeler oluyor). yani alıcıda da sorun yok gibi.

mesaj birleştirme:: 05 Temmuz 2015, 03:52:21

aklıma gelmişken yarın pazar robotistanı arayamam :D
Başlık: Ynt: rf parazit sorunu
Gönderen: mehmet - 05 Temmuz 2015, 03:54:15
Bu tip el kumandaları içerisinde PT2262 bulunur. Alıcı
için de PT2272 bulunan hibrid olması gerekir...
Sanki rf alıcı/verici yokmuş gibi yaptığınız sistem yerine
alıcıdaki çıkış uçlarını devrenize girmeniz yeterlidir.

http://www.google.com.tr/imgres?imgurl=http://www.satistronics.com/userfiles/image/Module%252520%2526%252520Kits/PT2272M4.jpg&imgrefurl=http://www.satistronics.com/4ch-superregenerative-decode-receiver-module-pt2272l4pt2272m4sc2272t4_p2893.html&h=567&w=992&tbnid=vxteFQx7MbPdxM:&zoom=1&docid=iFSrkOW5lRZSaM&ei=8n6YVZeXHIHvUoyJtqAO&tbm=isch&ved=0CBsQMygBMAE&biw=1104&bih=593 (http://www.google.com.tr/imgres?imgurl=http://www.satistronics.com/userfiles/image/Module%252520%2526%252520Kits/PT2272M4.jpg&imgrefurl=http://www.satistronics.com/4ch-superregenerative-decode-receiver-module-pt2272l4pt2272m4sc2272t4_p2893.html&h=567&w=992&tbnid=vxteFQx7MbPdxM:&zoom=1&docid=iFSrkOW5lRZSaM&ei=8n6YVZeXHIHvUoyJtqAO&tbm=isch&ved=0CBsQMygBMAE&biw=1104&bih=593)

http://www.google.com.tr/imgres?imgurl=http://www.digibay.in/image/cache/data/sachinelectronics/SE-ED01-09-0104-A-600x600.jpg&imgrefurl=http://www.digibay.in/wireless/rf-ism&h=600&w=600&tbnid=ZpqwMlUNcGvyzM:&zoom=1&docid=_gdGbxV44NJMwM&ei=8n6YVZeXHIHvUoyJtqAO&tbm=isch&ved=0CBoQMygAMAA&biw=1104&bih=593 (http://www.google.com.tr/imgres?imgurl=http://www.digibay.in/image/cache/data/sachinelectronics/SE-ED01-09-0104-A-600x600.jpg&imgrefurl=http://www.digibay.in/wireless/rf-ism&h=600&w=600&tbnid=ZpqwMlUNcGvyzM:&zoom=1&docid=_gdGbxV44NJMwM&ei=8n6YVZeXHIHvUoyJtqAO&tbm=isch&ved=0CBoQMygAMAA&biw=1104&bih=593)

Başlık: rf parazit sorunu
Gönderen: Emre MERMİ - 05 Temmuz 2015, 04:12:57
@mehmet hocam yanıtınız için çok teşekkür teşekkür ederim, baskı devreyi yaptım tekrardan baskı yapmam beni biraz zorlayacak gibi. Üstündeki modülü kullanarak bir şey yapamam mı ?

mesaj birleştirme:: 05 Temmuz 2015, 07:17:37

kumandanın içinde söylediğiniz entegre var hocam kartın üzerinde de au 401 - 1 rev 2010.12.31 yazıyor.
Başlık: Ynt: rf parazit sorunu
Gönderen: mehmet - 05 Temmuz 2015, 05:02:34
PT2262 ve PT2272 entegreleri işleri kolaylaştırmak
açısından kullanılır. El kumandasını kendiniz yaparsınız.
Buton, uC ve rf verici kullanmanız gereklidir.

Hazır el kumandası ve alıcısını kullanırsanız sadece
buton kullanıyormuşsunuz gibi işlem yaparsınız...
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 05 Temmuz 2015, 13:27:33
hocam bir konuda ete hocam şöyle birşey yazmış ;

Alıntı YapPT2262 ve PT2272 nin hem adres hemde data bacakları mevcuttur.
Adres bacakları genelde şifre ayarlamak için kullanılır. Data bacaklarıda bu amaçla kullanılabileceği gibi verici ve alıcı karşılklı ayarlanarak birden fazla alternatifle çıkış alınabilir. Önce birinci alternatife bakalım.
12 adet adres ve data bacağı mevcut olup şayet bir haberleşme yapıldığında her iki tarafta adres ve data bacakları aynı şekilde ayarlanmış ise PT2272 nin VT bacağından high çıkışı verilir. Şayet bacakların ayarı bir birini tutmuyor ise bu bacakta daima Low mevcuttur. Şimdi şifre uyumu var ise VT bacağı High vereceği için bu bacak direk bir pic bacağına bağlanabilir. Ancak dikkat edilmesi gereken nokta PT2272 nin de 5V ile beslenmesi ve böylece PT2272 çıkışından 5V seviyesinde bir sinyal alınmasıdır. Şayet farklı voltaj ile besleniyor ise gerilim bölücü ile VT çıkışı 5V seviyesine düşürülüp pice girilmelidir.
Bu şekilde pic ile haberleşmenin yada şifrenin doğruluğu test edilebilir.

bu gönderici şifresini çözmem mümkün mü ?  yani adres bacaklarına ne bağlı olduğunu bulabilirmiyim ?
Başlık: Ynt: rf parazit sorunu
Gönderen: baran123 - 05 Temmuz 2015, 14:19:22
Cesitli baudlarda deneyip gelen veriyi direk ekrana yaz.Ard arda ayni veriyi alabiliyorsan okey ama her seferinde yanlis geliyorsa baud degistirip dene :)
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 11 Temmuz 2015, 14:51:57
Değerli hocalarım, bir tane usb ttl dönüştürücü aldım ve terminal ekranında gelen kodları inceledim. 7200 baud rate de kumandadan gelen verinin '8' olduğunu gördüm. Buraya kadar sorun yok. Gözüme çarpan başka birşey ise terminal ekranına kumandaya basmadığım zamanda bile çok fazla veri geliyor. Aralarından birçok da anlamlı karakter çıkıyor. Bu parazitler yüzünden pic sürekli kesmeye giriyor. Bu parazitlerden kurtulmamın bir yolu var mı ? Pic in sürekli kesmeye girmesi sanırım program akışında sorunlara neden olacak. Ben alıcı modülün bacağına pic e direk bağladım arada herhangi bir eleman kullanmama gerek var mı ? Teşekkürler
Başlık: Ynt: rf parazit sorunu
Gönderen: EGE - 11 Temmuz 2015, 15:32:58
Alıntı yapılan: Emre MERMİ - 11 Temmuz 2015, 14:51:57
Değerli hocalarım, bir tane usb ttl dönüştürücü aldım ve terminal ekranında gelen kodları inceledim. 7200 baud rate de kumandadan gelen verinin '8' olduğunu gördüm. Buraya kadar sorun yok. Gözüme çarpan başka birşey ise terminal ekranına kumandaya basmadığım zamanda bile çok fazla veri geliyor. Aralarından birçok da anlamlı karakter çıkıyor. Bu parazitler yüzünden pic sürekli kesmeye giriyor. Bu parazitlerden kurtulmamın bir yolu var mı ? Pic in sürekli kesmeye girmesi sanırım program akışında sorunlara neden olacak. Ben alıcı modülün bacağına pic e direk bağladım arada herhangi bir eleman kullanmama gerek var mı ? Teşekkürler

Sağlıklı ve kısa yoldan  cevap almak  istiyorsan ,Şema-program-varsa kart resmini buraya  koy,
Başlık: Ynt: rf parazit sorunu
Gönderen: ismail kaya - 12 Temmuz 2015, 01:38:39
CCS C'de manchester code denedim çalışıyor parazit'de almıyor.

TX

#include <12F683.h>
#device ADC=16
#include <string.h>
#include <stdlib.h>
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOMCLR

#use delay(internal=4000000)

#use rs232(baud=1200,parity=N,xmit=PIN_A5,bits=8,stream=PORT1)

#define LED PIN_A4
#define DELAY 1000
char durum="N";


#INT_EXT
void  EXT_isr(void)
{
if(input(PIN_A2)) durum="A";
else durum="N";
}

void SEND_DATA(BYTE txbyte)
{

    int i,j,b,me;
   
    b = txbyte;
   
    for (i=0; i<2; i++) {
        me = 0;         // manchester encoded txbyte
        for (j=0 ; j<4; j++) {
            me >>=2;
            if (bit_test(b,0) )
                me |= 0b01000000; // 1->0
            else
                me |= 0b10000000; // 0->1
            b >>=1;
        }
        putc(me);
        delay_ms(50);
       
    }
}


main() {

   enable_interrupts(INT_EXT);
   enable_interrupts(GLOBAL);

while(1)
{

// sleep();


  if(input(PIN_A2))
  {
    output_high(LED);
    delay_ms(DELAY);
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x00); 
    putc(0x00);
    putc(0x00);
    putc(0x00);
    putc(0x00);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc(0xF0);
 

SEND_DATA('H');
SEND_DATA(durum);

       
putc(0xF0);
putc(0xF0);
   
output_low(LED);
delay_ms(DELAY);

  }
}



}

RX
#include <16F628A.h>
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(internal=4000000)

#define LED PIN_B3
#define DELAY 1000

#use rs232(baud=1200, parity=N, xmit=pin_B2, rcv=pin_B1, bits=8)
#use rs232(baud=9600, parity=N, xmit=pin_B5, rcv=pin_B4, bits=8,stream=PORT1)

char c,a,i,dec,dec1,dec2,enc,pattern,son,j;
char nib[2]; //
char x;

BYTE DECODE_DATA()  //decode function for machester encoded data. This code is working fine. I checked it.
{
enc = nib[0];
       
    if (enc == 0xf0)    //  start/end condition encountered
        return 0xf0;
       
    dec = 0;   
    for (i=0; i<4; i++) {
   
        dec >>=1;
        pattern = enc & 0b11;       
        if (pattern == 0b01)        // 1
           bit_set(dec,3);
        else if (pattern == 0b10)
           bit_clear(dec,3);       // 0
        else
            return 0xff;            // illegal code
           
        enc >>=2;
        dec1=dec;
    }
enc = nib[1];
       
    if (enc == 0xf0)    //  start/end condition encountered
        return 0xf0;
       
         
    dec = 0;   
    for (i=0; i<4; i++) {
   
        dec >>=1;
        pattern = enc & 0b11;       
        if (pattern == 0b01)        // 1
           bit_set(dec,3);
        else if (pattern == 0b10)
            bit_clear(dec,3);       // 0
        else
            return 0xff;            // illegal code
           
        enc >>=2;
        dec2=dec;
    }
dec2<<=4;
son=dec1|dec2;
x=0;
dec=0;
dec1=0;
dec2=0;
return (son);
}


#int_rda
void komut_al() //interrupt for receiving manchester coded data
{
disable_interrupts(int_rda);


      c=getc();
      if  (x<2)
      nib[x]=c; // assign low and high nibble of data
      x=x+1;

         
     
enable_interrupts(int_rda); 
}

main()
{
x=0;
nib[0]=0;
nib[1]=0;
enable_interrupts(int_rda);
enable_interrupts(GLOBAL);

while(1)
{

if  (x>1)

{
x=0;
a=DECODE_DATA();



      if  (a=='H')
         {
         fprintf(PORT1,"GELEN=%c\r\n",a);
         }
      if  (a=='N')
         {
         fprintf(PORT1,"NORMAL-%c\r\n",a);
         }
     
       if  (a=='A')
         {
         fprintf(PORT1,"ALARM-%c\r\n",a);
         }
         
       
enable_interrupts(int_rda);
}

         
}
}
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 12 Temmuz 2015, 01:43:42
Hocam benim göndericim sabit olduğu için gönderici kodunu değiştiremiyorum. Nasıl yapabilirim ?

Alıntı yapılan: ismail kaya - 12 Temmuz 2015, 01:38:39
CCS C'de manchester code denedim çalışıyor parazit'de almıyor.

TX

#include <12F683.h>
#device ADC=16
#include <string.h>
#include <stdlib.h>
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOMCLR

#use delay(internal=4000000)

#use rs232(baud=1200,parity=N,xmit=PIN_A5,bits=8,stream=PORT1)

#define LED PIN_A4
#define DELAY 1000
char durum="N";


#INT_EXT
void  EXT_isr(void)
{
if(input(PIN_A2)) durum="A";
else durum="N";
}

void SEND_DATA(BYTE txbyte)
{

    int i,j,b,me;
   
    b = txbyte;
   
    for (i=0; i<2; i++) {
        me = 0;         // manchester encoded txbyte
        for (j=0 ; j<4; j++) {
            me >>=2;
            if (bit_test(b,0) )
                me |= 0b01000000; // 1->0
            else
                me |= 0b10000000; // 0->1
            b >>=1;
        }
        putc(me);
        delay_ms(50);
       
    }
}


main() {

   enable_interrupts(INT_EXT);
   enable_interrupts(GLOBAL);

while(1)
{

// sleep();


  if(input(PIN_A2))
  {
    output_high(LED);
    delay_ms(DELAY);
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x00); 
    putc(0x00);
    putc(0x00);
    putc(0x00);
    putc(0x00);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc(0xF0);
 

SEND_DATA('H');
SEND_DATA(durum);

       
putc(0xF0);
putc(0xF0);
   
output_low(LED);
delay_ms(DELAY);

  }
}



}

RX
#include <16F628A.h>
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(internal=4000000)

#define LED PIN_B3
#define DELAY 1000

#use rs232(baud=1200, parity=N, xmit=pin_B2, rcv=pin_B1, bits=8)
#use rs232(baud=9600, parity=N, xmit=pin_B5, rcv=pin_B4, bits=8,stream=PORT1)

char c,a,i,dec,dec1,dec2,enc,pattern,son,j;
char nib[2]; //
char x;

BYTE DECODE_DATA()  //decode function for machester encoded data. This code is working fine. I checked it.
{
enc = nib[0];
       
    if (enc == 0xf0)    //  start/end condition encountered
        return 0xf0;
       
    dec = 0;   
    for (i=0; i<4; i++) {
   
        dec >>=1;
        pattern = enc & 0b11;       
        if (pattern == 0b01)        // 1
           bit_set(dec,3);
        else if (pattern == 0b10)
           bit_clear(dec,3);       // 0
        else
            return 0xff;            // illegal code
           
        enc >>=2;
        dec1=dec;
    }
enc = nib[1];
       
    if (enc == 0xf0)    //  start/end condition encountered
        return 0xf0;
       
         
    dec = 0;   
    for (i=0; i<4; i++) {
   
        dec >>=1;
        pattern = enc & 0b11;       
        if (pattern == 0b01)        // 1
           bit_set(dec,3);
        else if (pattern == 0b10)
            bit_clear(dec,3);       // 0
        else
            return 0xff;            // illegal code
           
        enc >>=2;
        dec2=dec;
    }
dec2<<=4;
son=dec1|dec2;
x=0;
dec=0;
dec1=0;
dec2=0;
return (son);
}


#int_rda
void komut_al() //interrupt for receiving manchester coded data
{
disable_interrupts(int_rda);


      c=getc();
      if  (x<2)
      nib[x]=c; // assign low and high nibble of data
      x=x+1;

         
     
enable_interrupts(int_rda); 
}

main()
{
x=0;
nib[0]=0;
nib[1]=0;
enable_interrupts(int_rda);
enable_interrupts(GLOBAL);

while(1)
{

if  (x>1)

{
x=0;
a=DECODE_DATA();



      if  (a=='H')
         {
         fprintf(PORT1,"GELEN=%c\r\n",a);
         }
      if  (a=='N')
         {
         fprintf(PORT1,"NORMAL-%c\r\n",a);
         }
     
       if  (a=='A')
         {
         fprintf(PORT1,"ALARM-%c\r\n",a);
         }
         
       
enable_interrupts(int_rda);
}

         
}
}


mesaj birleştirme:: 12 Temmuz 2015, 01:47:18

Hocam şema ve program yollamamın sebebi devrede hiçbirşey kullanmamam, yani şuan sadece pic e gelen parazitin nedenini anlamk istiyorum. Aynısı usb ttl dönüştürücüde de aynısı oluyor. Rf nin data bacağını direk olarak rx pinine bağlıyorum.
Alıntı yapılan: EGE - 11 Temmuz 2015, 15:32:58
Sağlıklı ve kısa yoldan  cevap almak  istiyorsan ,Şema-program-varsa kart resmini buraya  koy,
Başlık: Ynt: rf parazit sorunu
Gönderen: ismail kaya - 12 Temmuz 2015, 02:05:45
yolladığım kodda TX olan 12f683+DRA887TX 433mhz RF MODÜL(yada farketmez)+buton ile yapabilirsin. Ama hazır kumanda ile yapmak istiyorsan önce kumandanın yolladığı bilgiyi bilmen gerekir. Arduino ile http://www.princetronics.com/how-to-read-433-mhz-codes-w-arduino-433-mhz-receiver/ (http://www.princetronics.com/how-to-read-433-mhz-codes-w-arduino-433-mhz-receiver/) burada kumandanın ne bilgisi yolladığını çözüyor. Senin kumandanın ne bilgisi yolladığını bu şekilde öğrenirsen yardımcı oluruz.
Başlık: rf parazit sorunu
Gönderen: Emre MERMİ - 12 Temmuz 2015, 02:30:33
Usb ttl kullanarak kodu çözdüm, modül '8' yolluyor ama haricinde bir sürü parazit görünüyor. Yarın bilgisayar başına geçince size ekran görüntüsünü atayım. Belki daha açık olur.
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 12 Temmuz 2015, 16:28:56
@ismail kaya hocam dediğinizi yaptım gelen kod şöyle;

Received 5592405 / 24bit Protocol: 1


buradan devreye ekleyip tekrar deneyeceğim kodu en kısa sürede sonucu size bildircem. çok sağolun
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 13 Temmuz 2015, 22:27:22

(http://s30.postimg.cc/k96vzm4il/Ads_z.jpg) (http://postimg.cc/image/k96vzm4il/)

sayın hocalarım çok soru soruyorum ama bu kadar parazit normal mi ? bu arada kumandaya bastığım zaman 8 yolluyor.
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 13 Temmuz 2015, 23:36:23
Birde bu paraziti nasıl engellerim ?
Başlık: Ynt: rf parazit sorunu
Gönderen: ismail kaya - 14 Temmuz 2015, 02:35:04
gayet normal. Ama int_rda içinde aldığın değer gelen veriye eşit değilse yazdırmasın.
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 14 Temmuz 2015, 02:37:26
 Modül '8' yolluyor hocam. Parazitlerde de 8 var. Bu yüzden benim istemim dışında işlem yapıyor. Mesela ben gelen 8 leri topluyorum 32 olunca işlem yapıyorum ama yine de kendi kendine başlıyor. Nasıl engel olabilirim ?

mesaj birleştirme:: 14 Temmuz 2015, 02:40:04



char veri=0;

#INT_RDA
void  RDA_isr(void)
{
if(veri=='8'){
a1=a1+1;
veri=0;
}
if(a1==20){
a=0;b=0;c=0;d=0;e=0;f=0;
}
}
Başlık: Ynt: rf parazit sorunu
Gönderen: ismail kaya - 14 Temmuz 2015, 02:43:36
kumandaya basdığın sürece'8'mi yolluyor
Başlık: Ynt: rf parazit sorunu
Gönderen: mehmet - 14 Temmuz 2015, 04:45:38
El kumandası kodlamasını PT2272 olmadan çözmeniz biraz zor...
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 14 Temmuz 2015, 17:49:21
Evet hocam kumandaya bastığım sürece 8 yolluyor. Ayrıca etraftaki parazitlerden de 8 geliyor. Wireless mousedan bile etkileniyor
Başlık: Ynt: rf parazit sorunu
Gönderen: RaMu - 14 Temmuz 2015, 18:26:59

#INT_RDA
void  RDA_isr(void)
{
gelen = getc();
//gerekliyse birkaç ufak işlem,
//gerekliyse putc( gonderilecek_deger );
//not: disable interrupts ve clear interrupt kullanmaya gerek yoktur.
//kesmede fazla işlem yapılmamalıdır, delay kullanmaktan kaçınılmalıdır.
}

Kesmede getc ile veri alınmalı.

Parazitin çevreden kaynaklandığını düşünüyorsanız,
önce verici yokken alıcıyı deneyin,
sonra alıcıyı metal kafes içine alıp deneyin,
alıcı metal kafesdeyken yine parazit varsa güç kaynağı vs. de problem olabilir.
Daha sonra alıcı ve verici metal kafese alınıp denenebilir.

Ama ben rf alıcı vericide parazit problemi yaşamadım.
En son 3 verici 1 alıcılı bir devre yaptım ondada problem olmadı.
Başlık: Ynt: rf parazit sorunu
Gönderen: Emre MERMİ - 16 Temmuz 2015, 01:45:59
@RaMu hocam dediklerinizi yaptım sorun devam etti. Deneme yaparken kumandanın 1200 baudratede anlamsız karakterlerin arasında 'N' yolladığını fark ettim. Programı ona göre yazdım. Sorun ortadan kaltı. Parazit olarak da 'N'  çok az geldiği yada hiç gelmediği için sistem kararlı çalışıyor şimdilik. Yardım eden herkese teşekkür ederim.