NRF24L01 arduino ile hem alıcı hem verici olarak nasıl kullanılır?

Bu yazımızda NRF24L01 kablosuz iletişim modülünü hem alıcı hem de verici olarak kullanabilmek için gerekli arduino bağlantı şemalarını ve arduino kodlarını inceleyeceğiz.

03 Nisan 2018 2.043 views 0

NRF24L01 kablosuz iletişim modülü piyasadaki en uygun fiyatlı kablosuz veri akarımız sağlayabileceğiniz modüllerin başında gelmektedir. Ancak hassas yapısı nedeniyle çalıştırması da oldukça sıkıntılı bir modüldür. Bir önceki yazımızda NRF24L01 kablosuz modüllünün problemlemlerinin çözümünü incelemiştik. Eğer siz de NRF24L01 modülünü çalıştırmakta sorun yaşıyorsanız linkteki yazımızı mutlaka okuyunuz.

NRF24L01 Sorunları ve Çözümü başlıklı yazımız için tıklayınız…

İnternette bulabileceiğiniz bir çok kaynakta NRF24L01 ile tek yönlü veri aktarımı yapıldığını görürsünüz. Ancak NRF24L01 modülleri aynı anda hem alıcı hem de verici olarak kullanılabiliyor. Bu durum bize tasarlayacağınız iki cihaz arasında karşılıklı veri aktarımı imkanı sunacaktır. Bu yazımızda NRF24L01 kablosuz iletişim modülünü çift yönlü olarak kullanacağız.

ÖRNEK PROJE:

Yapacağımız örnek projede bir arduinoya bağlı joystick ile diğer arduinoya bağlı servo motoru kontrol ederken aynı anda diğer arduinodaki buton ile ana arduinoya bağlı led kontrol edeceğiz.

Gerkli malzemeler;

Arduino  2 adet,

NRF24L01 kablosuz iletişim modülü 2 adet,

Joystick 1 adet,

Led 1 adet,

Servo motor 1 adet,

Jumper kablo yeteri kadar.

 

NRF24L01 bağlantısı için aşağıdaki şemayı dikkate alınız.

Arduino uno ve nano için NRF24L01 bağlantısı;

GND pini arduino GDN inine, VCC pini arduino 3,3V pinine (5V pinine bağlamayınız modül zarar görecektir), CE pini arduino 7 numaralı pine, CSN pini arduino 8 numaralı pine, SCK pini arduino 13 numaralı pine, MOSI pini arduino 11 numaralı pine, MISO pini arduino 12 numaralı pine bağlanmalıdır.

Arduino mega için NRF24L01 bağlantısı;

GND pini arduino GDN inine, VCC pini arduino 3,3V pinine (5V pinine bağlamayınız modül zarar görecektir), CE pini arduino 7 numaralı pine, CSN pini arduino 8 numaralı pine, SCK pini arduino 52 numaralı pine, MOSI pini arduino 51 numaralı pine, MISO pini arduino 50 numaralı pine bağlanmalıdır.

Aşağıdaki  bağlantı şemalarını inceleyerek gerekli bağlantıları yapınız.

 

 

Kodları inceleyecek olursak;

Yukarıdaki kod ile iki kanal adresi oluşturuyoruz.

Yukarıdaki kodlar ile bu arduino için 00001 adresinden karşı arduinoya joystick verilerini gönderirken, 00002 adresinden karşı arduinoya bağlı buton değerini okutuyoruz.

Loop döngüsü içinde ise önce dinlemeyi durdurup joystickten okunan analog değeri map komutu ile 0-180 arasına indirgedikten sonra diğer arduinoya gönderiyoruz.

Sonrasında dinlemeyi bağlatıp karşı arduinodan gelen buton değerini okutup buton durumuna göre ledimizi yakıyor ya da söndürüyoruz.

 

 

Yukarıdaki kodları inceleyecek olursak;

Bir önceki arduino kodları için yazdığımız aynı adresleri tanımlıyoruz.

Yukarıdaki kodlar ile bu arduino için 00001 adresinden karşı arduinodan gelen joystick verilerini okuturken, 00002 adresinden  arduinoya bağlı buton değerini karşı arduinoya gönderiyoruz.

komut satırı ile dinleme yapıp, diğer arduinodan gelen joystick değerini servo motora açı değeri olarak yazdırıyoruz.

komut satırları ile dinlemeyi durdurup sonrasında butondan okunan değeri diğer arduinoya gönderiyoruz.

 

Yukarıdaki gibi devrelerinizi doğru bir şekilde oluşturduktan sonra kodları yüklediğinizde NRF24L01 kablosuz iletişim modülü ile çift yönlü veri aktarımını başarıyla gerçekleştirmiş olacaksınız.

Bir sonraki yazımızda NRF24L01 ile birden fazla NRF24L01 arasında nasıl veri aktarılır? sorusunun cevabını vereceğiz.

 

Like
Beğen!Bunu sevdim!Süper!Muhteşem!Eh işte!Beğenmedim!
1
BENZER KONULAR
YORUM YAZ