Tutorial Modul NRF24 Pada Arduino



Kali ini kami akan menjelaskan mengenai Tutorial untuk NRF24 dengan menggunakan Arduino. Modul NRF24 yang digunakan adalah modul NRF24 dengan microstrip sebagai antenna-nya. Untuk Arduino yang digunakan bisa menggunakan Arduino apa saja, baik Uno, Nano, Mega, dll.
Bentuk Fisik dari Modul NRF24

Pinout dari Modul NRF24
 Pada gambar Pinout Modul NRF24 diatas, ada 8 pin yang menjadi input-output dari Modul NRF24 sendiri, yaitu :
  • IRQ : Interrupt Pin. Biasa digunakan dengan perintah TX_DS, RX_DR atau MAX_RT.
  • MISO : Master In Slave Out, yaitu pin yang berfungsi untuk menerima data dari mikrokontroller
  • MOSI : Master Out Slave In, yaitu pin yang berfungsi untuk mengirim data dari modul ke mikrokontroller
  • SCK : Serial Clock, yaitu pin yang berguna untuk sinkronisasi data antara mikrokontroller dengan modul
  • CSN : Chip Select NOT, yaitu pin yang digunakan untuk memulai komunikasi serial antara modul dengan mikrokontroller
  • CE : Chip Enable, yaitu pin yang digunakan untuk menentukan antara mode Transmitting (sebagai TX) atau Recieving (sebagai RX)
  • VCC : Input daya bagi modul. Daya yang dibutuhkan oleh Modul NRF24 adalah 3.3V hingga 5V



  • GND : Pin Ground
 Pada tutorial ini, kami akan menjelaskan bagaimana cara untuk mengkomunikasikan 2 Arduino dengan menggunakan Modul NRF24. Sebelum memulai programming menggunakan Arduino IDE, kalian harus mendownload terlebih dahulu library dari NRF24 sendiri disini. Berikut Wiring Diagram dari masing masing perangkat.
Wiring Diagram dari masing masing perangkat
Seperti yang telah ditampilkan pada gambar diatas, kita menggunakan pin 8 sampai pin 13 untuk pin selain VCC dan GND. Kemudian, pada Arduino IDE, dituliskan program seperti dibawah ini.
#include <nRF24L01.h> //deklarasi library nRF24L01.h
#include <RF24.h> //deklarasi library RF24.h
#include <RF24_config.h> //deklarasi library RF24_config.h
#include <SPI.h> //deklarasi library SPI.h untuk komunikasi dengan modul
uint64_t pipeTx = 0x4C4C01LL; //deklarasi alamat lawan
uint64_t pipeRx = 0x4C4C02LL; //deklarasi alamat sendiri
uint8_t CE = 9; //deklarasi pin CE pada modul
uint8_t CSN = 10; //deklarasi pin CSN pada modul
int n = 0;
boolean Flag = false; //deklarasi variabel Flag untuk looping
struct payload
{
char Kata[20];
};
payload Data; //menyediakan payload untuk data yang akan dikirim
RF24 Radio(CE, CSN); //deklarasi pin CE dan CSN untuk modul
void setup()
{
Serial.begin(9600); //memulai komunikasi serial dengan baud rate 9600
Radio.begin(); //memulai NRF24
Radio.setChannel(105); //deklarasi kanal pada frekuensi 2.4GHz
Data.Kata[0]=’S’;Data.Kata[1]=’i’; Data.Kata[2]=’a’;
Data.Kata[3]=’p’; Data.Kata[4]=’.’;Data.Kata[5]=’.’;
Radio.openWritingPipe(pipeTx); delay(50); //merubah mode NRF menjadi transmitter
Radio.write(&Data, sizeof(Data) ); delay(50); //mengirim data ke lawan
Radio.openReadingPipe(1, pipeRx);delay(50); //merubah mode NRF menjadi reciever
Radio.startListening(); //menerima data dari lawan
}
void loop()
{
if ( Radio.available() ) // Jika modul telah menyala, maka langkah
{ // yang dilakukan terlebih dahulu adalah
Radio.read(&Data, sizeof(Data) ); // untuk membuka kanal penerima agar data
Serial.println(Data.Kata); // yang dikirimkan oleh lawan dapat diterima
}
if (Flag == true) // Jika variabel Flag adalah true,
{ // maka langkah yang dilakukan adalah :
Radio.stopListening(); delay(100); // 1. menutup kanal penerima
Radio.openWritingPipe(pipeTx); delay(50); // 2. membuka kanal pengiriman
Radio.write(&Data, sizeof(Data) ); delay(50); // 3. mengirimkan data pada Data
Flag = false; // 4. mengubah status variabel Flag menjadi false
Radio.openReadingPipe(1, pipeRx); delay(50); // 5. membuka kanal penerima
Radio.startListening(); // 6. menerima data yang dikirimkan
delay(100);
}
while (Serial.available() ) // Pada saat NRF menyala, maka dibuat "pendengar":
{
char data = (char)Serial.read(); // 1. memasukkan data dari serial ke variabel Data
Data.Kata[n] = data; n++; // 2. memasukkan data serial ke masing masing data array
if (data == '_') { Flag = true; n=0; } // 3. Jika terdapat data '_', maka variabel Flag diubah
} // menjadi true untuk memulai program sebelumnya
}
view raw nrf24comm.ino hosted with ❤ by GitHub

Sekian Tutorial NRF24 dengan Arduino. Semoga bermanfaat.

Tidak ada komentar

Diberdayakan oleh Blogger.