RF, Radio Frekans kelimelerinin baş harflerinden oluşan bir kısaltmadır. Bir alıcı ve bir vericiden oluşan sistemler belirli frekans aralığında vericiden alıcıya doğru sinyal gönderilerek kablosuz iletişimin sağlanması için kullanılırlar. RF modülleri daha çok kısa mesafe iletişim için kullanılmaktadır.
433 Mhz frekansında çalışan RF modülü kısa mesafe kablosuz iletişim gereken arduino projelerinde en çok kullanılan modüllerden bir tanesidir. Uygun fiyat ve basit kullanımıyla avantaj sağlayan RF modülü, açık alanda 30-50 metre, kapalı alanda 20-30 metre aralığında daha iyi çalışabildiği için, uzak mesafe menzil gerektiren projeler için uygun değildir.
433 Mhz RF modülü bir verici (transmitter) ve bir alıcı(receiver) olmak üzere iki devre parçasından oluşur. Arduino projelerinde RF modülü ile kablosuz haberleşme için iki farklı arduino kit kullanılmalıdır.
RF modüller hangi projelerde kullanılır?
Rf modülleri uzaktan kumanda edilecek tüm robotik projelerinde kullanılabilir. Uzaktan kumandalı arabalarda, uzaktan kumandalı uçan cihazlarda, kablosuz bilgi alış verişi gerektiren tüm projelerde rf modülleri kullanılmaktadır.
433 Mhz RF modülü arduino bağlantısı nasıl yapılır?
Rf modülünün verici (transmitter) devresinin arduino bağlantısı aşağıdaki gibi yapılmalıdır.
Rf modülünün alıcı (receiver) devresinin arduino bağlantısı aşağıdaki gibi yapılmalıdır.
Örnek proje olarak butona basıldığında kablosuz olarak gönderilen sinyal ile diğer arduinoya bağlı bir ledi yakalım ve buzzerdan ses alalım. Örnek proje devresini aşağıdaki gibi hazırlamalıyız.
RF 433 Mhz verici modül arduino bağlantı devre şeması
Bu devre şemasında buton arduino 6 numaralı pine, RF 433 Mhz verici modülün data pini arduino 12 numaralı pine bağlanmıştır.
UYARI: Rf modülünü arduino ile kullanabilmek için gerekli kütüphane dosyasını aşağıdaki linkten indirerek arduino programının kurulu olduğu klasördeki ‘libraries’ klasörünün içine kopyalamalısınız.
VirtualWire.h kütüphanesini indirmek için TIKLAYIN…
RF 433 Mhz verici modül arduino kodları
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <VirtualWire.h> // RF modül için gerekli Arduino kütüphanesi char*mesaj; // Gönderilecek mesajın yazıldığı değişken int butonPin=6; int butonDurum; void setup() { Serial.begin(9600); pinMode(butonPin,INPUT); vw_set_ptt_inverted(true); vw_set_tx_pin(12); // Verici modülün data pin bağlantısı vw_setup(4000); } void loop() { butonDurum=digitalRead(butonPin); // Butondan okunan değeri değişkene aktardık. if(butonDurum==HIGH){ mesaj="1" ; //Eğer butona basılmış ise mesaj değişkenini 1 yapıyoruz. }else{ mesaj="0" ; //Eğer butona basılmış ise mesaj değişkenini 0 yapıyoruz. } Serial.println(mesaj); //Oluşturduğumuz mesaj değişkenini serial ekranda yazdırdık. vw_send((uint8_t *)mesaj, strlen(mesaj)); //Mesaj değişkenini RF 433 ile alıcı modüle gönderiyoruz. vw_wait_tx(); delay(100); } |
Kodları açıklayacak olursak, butona basıldığında mesaj değişkenine 1, butona basılmadığında mesaj değişkenine 0 değeri atanıyor ve kablosuz modül vericisi ile diğer arduinoya bağlı alıcı modüle gönderiliyor.
RF 433 Mhz alıcı modül arduino bağlantı devre şeması
Devre şemasında led arduino 2 numaralı pine, buzzer arduino 8 numaralı pine, RF alıcı modul arduino 6 numaralı pine bağlanmıştır.
RF 433 Mhz alıcı modül arduino kodları
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include <VirtualWire.h> // RF modül için gerekli Arduino kütüphanesi char*mesaj; // Alınan mesajın yazıldığı değişken int ledPin=2; //Ledin bağlı olduğu arduino pini int buzzerPin=8; //Buzzerin bağlı olduğu arduino pini void setup() { pinMode(ledPin,OUTPUT); pinMode(buzzerPin,OUTPUT); Serial.begin(9600); vw_set_ptt_inverted(true); vw_set_rx_pin(6); //RF alıcı modü data çıkışı bağlı olduğu arduino pini vw_setup(4000); vw_rx_start(); } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) // Eğer gelen mesaj 0 ise ... { if(buf[0]=='0'){ //0 ise ledi yak Serial.println(buf[0]); digitalWrite(ledPin,LOW); //Ledi söndür... digitalWrite(buzzerPin,LOW); //Buzzeri sustur... } if(buf[0]=='1'){ // Eğer gelen mesaj 1 ise ... Serial.println(buf[0]); digitalWrite(ledPin,HIGH); //Ledi yak... digitalWrite(buzzerPin,HIGH); //Buzzeri çalıştır... } } } |
Kodları açıklayacak olursak, alıcı modülden gelen mesaj değişkeni if komutu ile karşılaştırma yapılarak mesaj 1 ise led yanıyor ve buzzer ses veriyor, mesaj 0 ise led söndürülüyor ve buzzer susuyor.
Bu örnekte RF 433 mhz kablosuz modülün arduino bağlantı şemasını ve 433 mhz kablosuz modülün arduino kodlarını inceledik. Siz daha farklı projelerde led yerine motor veya farklı sensörler kullanarak çeşitli projeler üretebilirsiniz.
RF kablosuz modülü kullanılarak yapabileceğiniz proje fikirlerini yorum bölümünden yazarak daha fazla kişiye ilham kaynağı olabilirsiniz.
Hocam bu rf 433 mhz alıcı verici modül ile bir rc uçak kumandası yapılabilir mi ?