
Bu gün RC car RC tekne uzaktan kumanda edilebilecek her türlü aracın yapımı için en önemli modül olan NRF24L01 i inceleyelim biraz 🙂
Merhaba maker adayı arkadaşlar bu gün arduino da çalışması en sıkıntılı ve en güzel modüllerden biri olan NRF24L01 i inceleyip sorunları beraber çözeceğiz. Öncelikle bu modül neden bu kadar sıkıntılı veya ana sıkıntı nedir sorunlarını ele alalım. NRF24L01 modülünün en başlıca sorunu yeterli enerji yi(voltaj değerini) alamamasıdır. Yeterli enerji yi alamayınca NRF24L01 arasındaki bağlantı sağlanamıyor ve veri aktarımı sağlanamıyor. Buda NRF24L01modülü ile proje yapmamıza engel oluyor. Nrf24L01 uzaktan kumandalı veya uzaktan iletişim için kullanabileceğimiz en az maliyetli üründür. Antenli Modellerinde 1km kadar mesafe ye kadar kullanım alanı mevcuttur .Bu yüzden sürekli tercih edilir. peki bize daha fazla mesafe lazım ise ozaman xbee ürünlerini inceleyebilirsiniz.
Peki çözüm nedir ?
En etkili yöntem NRF24L01 Adaptörünü almaktır ve onunla kullanmaktır. Eğer adaptör almadıysanız ve yinede kullanmak istiyorsanız 100uF lik bir kondansatörü NRF24L01 modülünün GND ve VCC bacaklarına bağlarsanızdaNRF24L01modülünüzün çalıştığını göreceksiniz.
Bu kadar NRF24L01 modülünden bahsetmişken haydi beraber bir devre kuralım
Alıcı Devre :
Verici Devre :
Verici Kodları
#include
#include “nRF24L01.h”
#include “RF24.h” //Modül ile ilgili kütüphaneleri ekliyoruz
int mesaj[1]; //mesaj isminde bir dizi tanımlıyoruz
RF24 verici(9,10); //kütüphane tarafından kullanılacak pinleri tanımlıyoruz
const uint64_t kanal = 0xE8E8F0F0E1LL; //kanalı tanımlıyoruz
int buton = 7; //butonun bağlı olduğu dijital pin
void setup(void)
{
verici.begin(); //nrf yi başlatıyoruz
verici.openWritingPipe(kanal); //kanal id sı tanımlanıyor
}
void loop(void)
{
if (digitalRead(buton) == HIGH)
{
mesaj[0] = 123;
verici.write(mesaj, 1); //mesaj değişkeni yollanıyor
}
}
Alıcı Kodları
#include
#include “nRF24L01.h”
#include “RF24.h” //Modül ile ilgili kütüphaneleri ekliyoruz
int mesaj[1];
RF24 alici(9,10);
const uint64_t kanal = 0xE8E8F0F0E1LL;
int led = 2;
void setup(void){
Serial.begin(9600);
alici.begin();
alici.openReadingPipe(1,kanal);
alici.startListening();
pinMode(led, OUTPUT);
}
void loop(void){
if (alici.available())
{
bool done = false;
while (!done)
{
done = alici.read(mesaj, 1);
if (mesaj[0] == 123)
{
delay(10);
digitalWrite(led, HIGH);
}
else {
digitalWrite(led, LOW);
}
delay(10);
}
}
}
Devre şemalarını doğru kurup kodlarınızıda bu şekilde yazdıktan sonra 2.devredeki (verici devre) butona basınca 1.devredeki(alıcı devre)led in yandığını göreceksiniz. Yakın zamanda NRF24L01 İle bir araç yapımı yazısıda gelecektir İyi Çalışmalar !
ahmet uysal
17/09/2019 at 16:39
merhaba nrf24l01 3,3 voltla çalışıyor arduino uno nun giriş çıkış pinleri (8,9,10,11,12) ise 5 volt nrf24l01 i doğrudan bu pinlere bağlayınca ( vcc 3,3 volta bağlansa bile) modül zarar görmüyor mu yada çalışıyor mu
zahid
03/09/2019 at 21:14
merhaba ben bu nrf24l01 2.4 Ghz modülü ile iki tane kumanda ve araba yaptım bunlardan 1 tanesini kullanırken hiç sorun olmuyor ama 2 kumandada açık olduğu zaman arabalar sinyali geç alıyormuş gibi sonradan tepki veriyor bunu nasıl çözebilirim.
brk123
17/04/2018 at 11:40
Mega ile nano arasında bağlantı kurmak istiyorum. Mega alıcı nano verici olacak şekilde nasıl düzenleyebilirim /Acil yardım edebilir misiniz!!!(nanoya buton taktim mega alıcı)nrf24l01
yakup afşin
17/04/2018 at 21:11
Bağlantıyı kablolu mu yoksa kablosuz mu kuracaksınız?