20 Kasım 2015 Cuma

Arduino Uno, Arduino Pro mini RF İletisim - XD-RF-5V Modül

Eğer ucuz imkanlarla iyi bir arduino ağı oluşturmak istiyorsak RF modüllerinden yararlanmamız daha doğru olacak diye düşünüyorum. Bu modül ile aynı veya farklı iki arduino kartınızı kablosuz olarak haberleştirme imkanı sağlar. Tabi bu modüller sadece arduino için değil, Raspberry pi, beaglebone  veya özel hazırlanan donanımlarda kullanıldığını görüyoruz.
XD-RF-5V Modülü (Transmitter ve Receiver birlikte) 4,5 TL gibi oldukça ucuz bir rakama elde edebilirsiniz.

Tranmitter kart olarak Arduino pro mini yi kullandım. hem ucuz hem küçük. Bu kart 5V ve 3V aralığında çalışabilmektedir. Detaylı bilgiye https://www.arduino.cc/en/Main/ArduinoBoardProMini adresinden ulaşabilirsiniz. Aşağıdaki fotoğrafta ilk elime geçtiğinde Arduino Pro mini 

Size Pro mini pinleri lehimsiz gelecektir. Ayrıca lehimlemeniz gerekecek. 




 RF Transmitter ve Receiver fotoğrafları aşağıda verilmiştir.
Sağdaki Transmitter (gönderici) soldaki Receiver (alıcı)

RF Transmitter kartını Arduino Pro mini kartımıza bağlıyoruz. Ben Burada Breadboard kullanmadım. Test için eğer elinizde uygun kablolar var ise gerekte yok. 
RF Transmitter Kartın üzerindeki 
GROUND pinini Pro minideki GND pinine, 
VCC pinini Pro minideki VCC pinine, (Eğer Pro mini yi 5V ile çalıştırıyorsanız bu pin 5V çıkış verecektir.)
DATA pinini Pro minideki Digital 3 pinine bağladım



RF Reveiver kartını Arduino UNO kartımıza bağlıyoruz.  
RF Reveiver  Kartın üzerindeki 
GROUND pinini UNO  GND pinine, 
VCC pinini UNO  5V pinine, 
DATA pinini UNO Digital 3 pinine bağladım



Gelelim kodlamaya. Kod içerinde VirtualWire.h kütüphanesi kullanılmıştır. Eğer kütüphanenizde yoksa buradan indirebilirsiniz. VirtualWire.zip
Kütüphaneyi yüklemek için aşağıda resimde gösterilen yolu izleyiniz.



Transmitter kodumuz aşağıdaki gibidir. Bu konu Arduino Pro mini kartımıza gönderiyoruz.


#include
void setup()
{
 vw_set_ptt_inverted(true); // Required by the RF module
 vw_setup(2000); // bps connection speed
 vw_set_tx_pin(3); // Arduino pin to connect the receiver data pin
}

void loop()
{
 //Message to send:
 const char *msg = "ILK RF TESTIMIZ";
 vw_send((uint8_t *)msg, strlen(msg));
 vw_wait_tx(); // We wait to finish sending the message
 delay(200); // We wait to send the message again 
}


Receiver kodumuz aşağıdaki gibidir. Bu konu Arduino UNO  kartımıza gönderiyoruz.

#include

void setup()
{
 Serial.begin(9600); // Configure the serial connection to the computer
 vw_set_ptt_inverted(true); // Required by the RF module
 vw_setup(2000); // bps connection speed
 vw_set_rx_pin(3); // Arduino pin to connect the receiver data pin
 vw_rx_start(); // Start the receiver
}

void loop()
{
 uint8_t buf[VW_MAX_MESSAGE_LEN];
 uint8_t buflen = VW_MAX_MESSAGE_LEN;
 if (vw_get_message(buf, &buflen)) // We check if we have received data
 {
 int i;
 // Message with proper check 
 for (i = 0; i < buflen; i++)
 {
 Serial.write(buf[i]); // The received data is stored in the buffer
 // and sent through the serial port to the computer
 }
 Serial.println();
 }
}

 Videodan hem bağlantılara hemde sonuca göz atabilirsiniz. Sormak istediklerinizi yoruma yazabilirsiniz. 







Hiç yorum yok:

Yorum Gönder