dominoFiber     domiRobot     Forum


Projeler - nRF24L01 Kablosuz iletişim modülü kullanımı

nRF24L01 Kablosuz iletişim modülü kullanımı
Bu dersimizde nRF24L01 Kablosuz iletişim modülü ve arduino kullanarak uzakta bulunan bir lambayı arada kablo bağlantısı olmadan yakıp söndürmeyi öğreneceğiz.

Amaç
İki arduinoyu haberleştirme becerisi kazanmak.

Seviye
Orta seviye

Devremizin verici kısmında 2 adet buton var. Birinci butona basılınca alıcı devredeki lamba ikinci butona basılana dek yanacak.

İkinci butona basıldığında ise alıcı kısımdaki lamba birinci butona basılana dek sönecektir.

Devremiz alıcı ve verici kısım olmak üzere 2 kısımdan oluşmaktadır. Her iki devrede de birer arduino ve nRF24L01 kablosuz iletişim modülü bulunmaktadır.

<a href="http://www.youtube.com/watch?v=eW21OJq7_MA" target="_blank">http://www.youtube.com/watch?v=eW21OJq7_MA</a>
Video 1: İki arduinonun haberleşmesi


Fotoğraf 1: Devrenin deney borduna kurulmuş hali

Wireless NRF24L01 2.4GHz Transceiver Modül - 2.4GHz Alıcı Verici Modül


Fotoğraf 2: Wireless NRF24L01


Fotoğraf 3: Wireless NRF24L01


Nordic firmasınca geliştirilen NRF24L01 kablosuz modül, 2.4GHz frekansında kablosuz haberleşme yapmanıza imkan sağlayan düşük güç tüketimine sahip modüldür.

Çeşitli hobi, robotik ve endüstriyel projelerde sıklıkla kullanılabilecek 2MBps haberleşme hızına sahip olup, SPI arabirimini destekler.

Özellikleri:
2.4GHz bandında yayın yapabilir.
250KBps, 1MBps ve 2MBps gibi hızlarda haberleşme hızı seçilebilir.
Gelişmiş ShockBurst™ hızlandırma protokolünü desteklemektedir.
Ultra düşük güç tüketimi
Çalışma Voltajı: 1.9-3.6V
IO Portları Çalışma Voltajı:0-3.3V/5V
Verici Sinyal Gücü: +7 dB
Alıcı Hassasiyeti ≤ 90dB
Haberleşme Mesafesi: Açık Alanda 250m
Boyutları: 15x29mm

Devre şeması:

Şema 1: ISIS devre şeması

Verici devre kodları:
Kod: [Seç]
#include  <SPI.h> // SPI Arayüzünü dahil ettik.
#include "nRF24L01.h" // RF24 kütüpanelerini dahil ettik.
#include "RF24.h" // RF24 kütüpanelerini dahil ettik.
int bilgi[1]; //Göndereceğimiz mesaj değişkenini oluşturduk.
RF24 radio(9,10); //RF24 kütüphanesi tarafından kullanılacak olan 2 pinin 9. ve 10. pinlerin olduğunu belirttik.
const uint64_t pipe = 0xE8E8F0F0E1LL; // Pipe (kanal) tanımlamasını yaptık.
int buton=3; // butonun bağlı olduğu pin
int buton2=4; // butonun bağlı olduğu pin

void setup()
{
 radio.begin(); // Kablosuz iletişimi başlattık.
 radio.openWritingPipe(pipe); // Gönderim yapacağımız kanalın ID'sini tanımladık.
 pinMode(buton, INPUT);
 pinMode(buton2, INPUT);
}

void loop()
{
 if (digitalRead(buton) == HIGH)
 {
 bilgi[0] = 111; // bilgi değişkenine "1" yazılsın
 radio.write(bilgi, 1); //Sonra da bu bilgi gönderilsin.
 }

  if (digitalRead(buton2) == HIGH)
 {
 bilgi[0] = 000; // bilgi değişkenine "0" yazılsın
 radio.write(bilgi, 1); //Sonra da bu bilgi gönderilsin.
 }
}

Alıcı devre kodları:
Kod: [Seç]
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int bilgi[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int lamba = 3;

void setup()
{
 Serial.begin(9600);
 radio.begin();
 radio.openReadingPipe(1,pipe);
 radio.startListening();
 pinMode(lamba, OUTPUT);
}

void loop()
{
 if (radio.available())
 {
   bool done = false;   

     done = radio.read(bilgi, 1);     
     if (bilgi[0] == 111)
     {
      digitalWrite(lamba, HIGH);
     }

     if (bilgi[0] == 000)
     {
      digitalWrite(lamba, LOW);
     }

  }

}

Download
Konuya ait tüm dosyalar ve alıcı verici kütüphanesi download sayfasında mevcuttur.

NRF24L01 satın al

  • NRF24L01 satın alNRF24L01 satın alNRF24L01 satın al