Site icon Ercan Koçlar

433 Mhz RF Alıcı-Verici MikroC Kütüphanesi

433mhz-rf-alici-verici-verici-modul-kapak

433mhz-rf-alici-verici-verici-modul-kapak

This post is also available in: English (İngilizce)


 


Radyo Frekans Verici ve Alıcılar

433 Mhz RF Verici Modülü
433 Mhz RF Alıcı Modülü

Modül Tipi

433 Mhz RF Modül Çeşitler – Bazı elemanlar farklı olsada hepsi aynı şekilde çalışmaktadır.

Frekans ve Güç

Anten

433 Mhz için hazır antenler ve sma konnektörler görülmektedir.

SMA konnektör. Orta bacağı bağlantı kısmıdır diğer bacaklar şaseye bağlıdır.

Sistem Tipi

433mhz-rf-alici-verici-tam-dubleks                                                                                                                 “görsel Aydın Bodur Radyon Mühendisliği Notları e-kitabından alınmıştır”

 

Genel Notlar ve Uyarılar

Modül Pinleri Ve Görevleri

Alıcı Modül Pinleri

433 Mhz Alıcı Modül Pinleri
Pin Pin Adı Açıklama
1 DGND Dijital GND  Güç kaynağına bağlanır
2 DATA Dijital Data Çıkışı – PIC e bağlanır
3 NC
4 Vcc +5v Besleme
5 Vcc +5v Besleme- Boş bırakılır bağlantı yapılmaz
6 GND RF gnd – Asla devrenin toprağına bağlanmamalı
7 GND RF gnd – Asla devrenin toprağına bağlanmamalı
8 ANT Anten girişi

Verici Modül Pinleri

433mhz-rf-alici-verici-verici-modul-PIN
Pin Pin Adı Açıklama
1 ANT Anten bağlantısı yapılır
2 GND Devrenin GND sine bağlanır
3 DATA Data girişi buradan yapılır – PIC e bağlanır
4 Vcc +5-12 Volt besleme bağlanır

Devre Şeması

433 Mhz RF Devre Şeması

Gerekli Malzemeler

  1. 433 Mhz Verici Modül
  2. 433 Mhz Alıcı Modül
  3. Delikli Pertinaks
  4. 433 Mhz Anten
  5. SMA konnektör

Devrenin Yapılışı


Tam dubleks ünitenin görünümü alıcı ve vericinin ayrı antenleri bulunmaktadır
Tam dubleks ünitenin görünümü alıcı ve vericinin ayrı antenleri bulunmaktadır – Yan Görünüm

433 Mhz RF Modül MikroC Kütüphanesi

MikroC Dinamik Bellek için Heap Alanı Ayırma

Fonksiyonlar

RF_433MHZ_ILETISIM_BASLAT Fonksiyonu

Fonksiyon : void RF_433MHZ_ILETISIM_BASLAT(unsigned char SENKRON_BIT_SAYISI)

Amacı : Veri gönderilmeden önce alıcıyı uyandıran ben senronize olmasını sağlayan karışık veri gönderir.

Parametreler:

Kullanım Şekli:

RF_433MHZ_ILETISIM_BASLAT(150);//150 adet senkron verisi kümesi gönderilecek

Geri Bildirim : Geri bildirimde bulunmaz

 

-RF_433MHZ_VERI_GONDER Fonksiyonu

Fonksiyon : void RF_433MHZ_VERI_GONDER(unsigned char *VERI,unsigned char DIZI_SAYISI,unsigned char CRC7_POLINOM,unsigned char ON_TANIMLAMA_KODU)

Amacı : Verileri alıcıya gönderir

Parametreler :

Kullanım Şekli:

 erc[0]=1;
 erc[1]=3;
 erc[2]=5;
 erc[3]=7;
 erc[4]=9;
 erc[5]=10;
 erc[6]=12;
 erc[7]=14;
 erc[8]=16;
 erc[9]=18;

RF_433MHZ_VERI_GONDER(erc,10,0b10001001,21);

Geri Bildirim : Geri bildirimde bulunmaz.

 

-RF_433MHZ_VERI_AL Fonksiyonu

Fonksiyon : unsigned char RF_433MHZ_VERI_AL(unsigned char *VERI_HATASI,unsigned char DIZI_SAYISI,unsigned char CRC7_POLINOM,unsigned char ON_TANIMLAMA_KODU)

Amacı : Verici tarafından gönderilen verileri okur

Parametreler  :

Kullanım Şekli :

do{
    x=RF_433MHZ_VERI_AL(&hata,30,0b10001001,21);//&hata kullanımı içerideki pointeri okumak için kullanılır
  }while(hata ==1 || hata ==255) // hata değişkeni ile eşlik biti yada crc hatası olup olmadığı kontrol edilir
//gönderilen veri ise x değişkeninden okunabilir

Geri Bildirim :

Fonksiyonların Uygulanması

Temel Komut Gönderimi

//ALICI KODLARI//
//UART ALICI PIC ICIN KULLANILACAK
 sbit UART_RX at RC7_bit;
 sbit UART_TX at RC6_bit;
 sbit UART_RX_Direction at TRISC7_bit;
 sbit UART_TX_Direction at TRISC6_bit;

void  main()
{
    unsigned char erc[1];
    unsigned char hata;
    unsigned char x;

    ADCON1=13;
    CMCON=7;



do{
     x=RF_433MHZ_VERI_AL(&hata,1,0b10001001,29);

   }while(x!=125);

// komut gelidkten sonra yapılacak işlem
//VERICI KODLARI//
//UART VERICI PIC ICIN KULLANILACAK
 sbit UART_RX at RB2_bit;
 sbit UART_TX at RB3_bit;
 sbit UART_RX_Direction at TRISB2_bit;
 sbit UART_TX_Direction at TRISB3_bit; 



void  main()
{
    unsigned char erc[1];
    unsigned char i=0;

    
    ADCON1=13;
    CMCON=7;


 erc[0]=125;
   

   RF_433MHZ_ILETISIM_BASLAT(50);
   for(i=0;i<40;i++)
     {     
       RF_433MHZ_VERI_GONDER(erc,1,0b10001001,29);
     }

Veri Aktarımı

//ALICI KODLARI//
//UART ALICI PIC ICIN KULLANILACAK
 sbit UART_RX at RC7_bit;
 sbit UART_TX at RC6_bit;
 sbit UART_RX_Direction at TRISC7_bit;
 sbit UART_TX_Direction at TRISC6_bit;

void  main()
{
    unsigned char txt[7],erc[30];
    unsigned char hata,y=0;// stringe çevrim için oluşturuldu
    unsigned char i=0,j=1,k=0,t=0,z=0,w=0;

    unsigned char *x;
    ADCON1=13;
    CMCON=7;


SAP1024_INIT(248,128,6);//GLCD analiz komutu

//ilk veri okuması
do{
     x=RF_433MHZ_VERI_AL(&hata,30,0b10001001,21);
  }while(hata ==1 || hata ==255);//hata kontrol
    
//okunan veriler ekranda yazdırılır
for(l=0;l<30;l++)
  {
   
  ShortTostr(x[l],txt);
  res = Ltrim(txt);//verinin solundaki boşluğu siler
  SAP1024_YAZI_YAZMA(j,i,res);//GLCD ekrana yazı yazma komutu
  i++;
  if(i>16){j=j+3;i=1;}//GLCD de sütun satır ayarı

  }
         
erc[0]=255;

//veri alındığının geriye bildirilmesi
RF_433MHZ_ILETISIM_BASLAT(150);
for(k=0;k<250;k++)
   {
     RF_433MHZ_VERI_GONDER(erc,1,0b10001001,20);
   }
}
//UART VERICI PIC ICIN KULLANILACAK
 sbit UART_RX at RB2_bit;
 sbit UART_TX at RB3_bit;
 sbit UART_RX_Direction at TRISB2_bit;
 sbit UART_TX_Direction at TRISB3_bit; 



void  main()
{
    unsigned char txt[7],erc[30];
    unsigned char hata,y=0;// stringe çevrim için oluşturuldu
    unsigned char i=0,j=1,k=0,t=0,z=0,w=0;

    unsigned char *x;
    ADCON1=13;
    CMCON=7;
  
    //onaydan sonra yakılacak LED in port ayarları
    trisb.rb1=0;
    portb.rb1=0;

 //veri dizisi açıkça görülmesi için bu şekilde yazıldı tabiki for döngüsü daha mantıklı olacaktır
 erc[0]=1;
 erc[1]=3;
 erc[2]=5;
 erc[3]=7;
 erc[4]=9;
 erc[5]=10;
 erc[6]=12;
 erc[7]=14;
 erc[8]=16;
 erc[9]=18;
 erc[10]=1;
 erc[11]=3;
 erc[12]=5;
 erc[13]=7;
 erc[14]=9;
 erc[15]=10;
 erc[16]=12;
 erc[17]=14;
 erc[18]=16;
 erc[19]=18;
 erc[20]=1;
 erc[21]=3;
 erc[22]=5;
 erc[23]=7;
 erc[24]=9;
 erc[25]=10;
 erc[26]=12;
 erc[27]=14;
 erc[28]=16;
 erc[29]=18;

   
   RF_433MHZ_ILETISIM_BASLAT(150);//ilk olarak uyandırma sinyalleri gönderilir
   for(k=0;k<250;k++)//veri boyutu büyüklüğünden dolayı 250 kez veri gönderilir
     {  
       RF_433MHZ_VERI_GONDER(erc,30,0b10001001,21);
     }
  
//karşıdan gelecek onay komutunun beklenmesi
  do{
     x= RF_433MHZ_VERI_AL(&hata,1,0b10001001,20);
    }while(x[0]!=255);
    


  portb.rb1=1;// onay geldikten sonra porta bağlaı LED yakılır

}
433 Mhz RF alıcı verici tam dubleks sistemi ile 30 byte veri gönderimi ve onay kodu alımı

Çalışma Video


Sonuç


Kütüphane Dosyaları

 


Yararlanılan Belgeler


 

This post is also available in: English (İngilizce)

Exit mobile version