Merhaba arkadaşlar arduino ile projelerde olabildiğince hızlı gitmeye çalışıyoruz. Bugün ki konumuz Arduino ile NRF24L01 Wireless Modül Kullanımı ve Led Kontrolü nasıl yapılır bunu öğreneceğiz 🙂
Ama öncelikle bu modülden bahsetmek istiyorum eğer yazılarımı buraya kadar takip ettiyseniz artık uçan kaçan bir şeyler yapabilecek kapasiteye gelmişsiniz demektir. Şimdiye kadar bluetooth modül kullandık kablosuz haberleşmede ama onun içinde illa Android bir telefon gerekti biliyorsunuz ben kumandamı da arduino ile yapmak istiyorum ama ucuz da olsun diyorsanız hacılar cevap bu modül piyasa değeri 5 – 6 TL arası geziyor Çin’den getirtirseniz dahada ucuz..
Peki nedir bu NRF24L01 modül ?
Nordic Semiconductor firmasının üretimi olup, 2.4GHz frekansında kablosuz haberleşme yapmanıza imkan sağlayan düşük güç tüketimine sahip modüldür. Modül SPI arabirimini desteklemekte olup, 1 modül 126 taneye kadar modüle bağlantı kurabilmektedir. Yani bir arduino ile 126 adet ayrı NRF24L01 bağlı cihazı kontrol edebilirsiniz ki bu gerçekten muazzam bir şey, sizce de değil mi 😀 Ve ayrıca açık alanda 250 kapalı alanda ise 15-20 metreye kadar veri gönderip alabiliyor.
Tabi bu modülün birde ağabeyi var NRF24L01 + PA + LNA SMA Anten 2.4 GHz Kablosuz Haberleşme Modülü bununda açık alanda 1 Kilometreyi bulduğu söyleniyor..
Dron falan yapacaksanız bu modülü kullanmanız gerekecek bunun fiyatı ise 20- 30 TL arasında dolaşıyor tabi Çin’de daha ucuz. 🙂
İsterseniz size bugün ne yapacağımızdan bahsedeyim.. Bir alıcı birde verici devremiz olacak birinde led birinde ise buton olacak butona basarak uzaktan ledi yakacağız.. Hayde zaman kaybetmeden başlayalım.. 🙂
Her zamanki gibi bir kaç malzemeye ihtiyacımız var 🙂
İçindekiler
Malzeme Listesi
1- 2 Adet Arduino Uno
2- 2 Adet NRF24L01 Modül
3- Buton
4- Led ve Led için 220 Ohm Direnç
5- Bread Board ve Jumper Kablolar
Not: Tüm bu malzemeleri elektronik parça satan yerlerde bulabilirsiniz yada şu ve bu adreslerden internet üzerinden güvenle sipariş edebilirsiniz
Ayrıca eğer zamanım bol diyorsanız Çin’den de Aliexpress vasıtasıyla getirtebilirsiniz. Daha uygun fiyata gelecektir.
Arduino ile NRF24L01 Wireless Modül ile Led Kontrolü Devre Şeması
Alt tarafta çizdiğimiz devre şemasına bakarak uygun arduino modeline göre devremizi breadboard’umuza kuralım.
Verici Devresi
Yukarıdaki direncin sebebini artık anlatmıyorum pull down direnci biliyonuz. 🙂
Alıcı Devresi
Devre şeması gördüğünüz üzere basit gördüğünüz şekli bread boarda işleyin sonra yazılıma geçelim. 🙂
Ama yazılıma geçmeden önce bu modül ile yaşanan bir güç sorunu var ondan bahsetmek istiyorum. Bu vatandaş 3.3V ile çalışıyor ve bazen uzak mesafelerden veri almak istediğinde arduino bunun gücünü sağlayamıyor bizde onun için size hem hazır hemde devre şemasını vereceğim adaptör var. Bu adaptör içinde bulunan voltaj regülatörü sayesinde 5V u 3.3V a düşürerek bu modülü dış kaynaktan beslememize yarıyor.
Alttaki şemaya bakarak sizinde kendi adaptörünüzü yapmanızı tavsiye ederim. Ama uğraşamam derseniz de hazırı hemen altında 🙂
Bununla uğraşamam derseniz ise alttaki eleman piyasada yaklaşık 5 TL civarı geziniyor işinizi görecektir. Size tavsiyem Nrf24l01 modül alıyorsanız adaptörünü de kesinlikle alınız 😉
Yazılım
Bu modülle çalışabilmek için bir kütüphaneye ihtiyaç duyuyoruz öncelikle kütüphanemizi aşağıdan indirip aşağıda belirtilen yoldaki klasöre rar dosyasından dan çıkarıp atın.
Rar Şifresi: donanimplus.com
Belgeler > Arduino > libraries
Bu projede 2 farklı kod kullanacağız biri alıcı haliyle biride verici
Verici Kodu
// DONANIM PLUS ELEKTRONİK // MODİFİKASYON TOLGA SOYTEPE // İNSTAGRAM tolgasytp // TWİTTER TSytpp // 2019 #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" //Modül ile ilgili kütüphaneleri ekliyoruz int data[1]; //data 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) { data[0] = 123; verici.write(data, 1); //data değişkeni yollanıyor } }
Kodu aşağıdan indirebilirsiniz 🙂
Alıcı Kodu
// DONANIM PLUS ELEKTRONİK // MODİFİKASYON TOLGA SOYTEPE // İNSTAGRAM tolgasytp // TWİTTER TSytpp // 2019 #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" //Modül ile ilgili kütüphaneleri ekliyoruz int data[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(data, 1); if (data[0] == 123) { delay(10); digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } delay(10); } } }
Alıcı Kodlarını aşağıdan indirebilirsiniz 🙂
Bir yazının daha sonuna geldik umarım faydalı olmuştur arkadaşlar anlamadığınız yada kafanıza takılan yerler olursa lütfen yorumda yada kişisel sosyal medya hesaplarımdan ulaşmayı ihmal etmeyin.. Kolay Gelsin.. 🙂
Merhaba ben adaptör aldım bunun için adabtorlu devre şeması ve kodu varmı? Kod aynı ise devra şemasında adabtorlu bir şekilde nasıl bağlantılar yapmalıyım cevabınızı bekliyorum. [email protected]