NRF24L01 Kablosuz RF Modülü
NRF24L01 Pinout Yapılandırması
NRF24L01'de herhangi bir özel pin yoktur, iletişim kurmak için sunduğu tüm pinler tüm mikrodenetleyicilerde ve kartta mevcuttur. Cihaz, çalışması için bu pinler aracılığıyla harici bir mikrodenetleyici / Arduino ile arayüz oluşturacaktır. 8 pimden oluşur. Mevcut tüm pimler şunlardır:
Güç kaynağı pimleri
VCC
Modülün güç pini, kendisini güç kaynağına bağlayan VCC'dir.
GND
nRF24L01 başka bir mikro denetleyici ile çalışır ve onunla çalışmak için ortak bir zemine ihtiyaç duyacaktır. GND pini ortak zemin ihtiyacını çözecektir.
İletişim Pinleri
CE
CE, modülün iletimini / alımını etkinleştiren bir etkinleştirme pimidir. Cihazı yalnızca kendi üzerinde YÜKSEK bir durum olduğunda etkinleştirecektir.
CSN
Bu pin, mikro denetleyiciden veri dinleme ve işlemeyi etkinleştirmek içindir. Mikrodenetleyici ile modül arasındaki veri iletişimini sürdürmek için YÜKSEK olmalıdır.
SCK
NRF24L01'deki SPI iletişiminin saat puls pinidir. Veriler modül ile mikro denetleyici arasında SCK pini üzerindeki saat darbesine göre hareket edecektir.
MOSI
Mikro denetleyiciden SPI pinleri aracılığıyla iletilen veriler, MOSI pininde nRF24L01 tarafından alınacaktır.
MİSO
SPI pinleri kullanılarak nRF24L01'den iletilen talimatlar, MISO pinindeki mikrodenetleyici tarafından alınacaktır.
IRQ Kesinti Pimi
IRQ, SPI pinleri için yeni bir veri mevcut olduğunda olayı oluşturan bir kesme pinidir. Vericiye geri bildirim göndermeye yardımcı olur.
NRF24L01 RF Modül Özelliği
- 2.4GHz frekansında çalışır, bu da onu neredeyse her ülkede yasal kılar.
- Tek bir modül hem verici hem de alıcı görevi görebilir.
- Yerleşik bir anten, verileri 100 metreye kadar gönderebilir.
- Bir modül nRF24L01, bir seferde maksimum 6 diğer modülle iletişim kurabilir.
- Çalışması için 3,3 volt gerekir, ancak voltajlar yalnızca 3,6V'a kadar çıkabilir, aksi takdirde ısınması ve yanması fazla zaman almaz.
- Cihazın dahili 16MHz osilatörü vardır.
- NRF24L01'in iletim hızı 256kbps ile 2Mbps arasındadır.
- Cihaz, 125 farklı ağı tek bir yerde çalıştırma özelliği veren 125 kanal aralığına sahiptir.
- Kanal frekansları 2400MHz ile 2525MHz arasında değişmektedir.
NRF24L01 Uygulamaları
- Küçük bir örgü ağın oluşturulmasında, nRF24L01 kullanılacak en iyi seçimdir.
- Gelişmekte olan ve ticari olarak uzaktan kumanda uygulamaları nRF24L01 ile harika çalışıyor.
- Ev düzeyindeki çoğu IoT uygulaması bu kablosuz modüle sahiptir, ancak yalnızca küçük bir düzeyde.
NRF24L01 İletişim Modülü nasıl kullanılır
nRF24L01 tüm mikrodenetleyiciler ve akıllı tahtalar ile kullanılabilir ancak kullanmak için bazı pinler ve veri bilgilerinin anlaşılması gerekir. Modülü kullanmak için SPI protokollü başka bir mikro denetleyiciye bağlayın. Önce güç girişini cihazlara verin ve ardından verilen devreye göre SPI pinlerini takın.
Taktıktan sonra nRF24L01'in çalıştırılmasının iki yolu olduğunu unutmayın. İlki verici ve ikinci ve alıcıdır. Verici ve alıcı olarak iletişim kurmak için önce mikrodenetleyicinin bilmesi gerekirdi. Modern uygulamada Arduino, nRF24L01 iletişiminin en verimli iletişimini destekleyen tek cihazdır.
Arduino ile kullanımı
İnternette nRF24L01 hakkında pek çok uygulamada kullanılmasına yardımcı olabilecek çok fazla çalışma ve araştırma var ancak Arduino'da her geliştiricinin anlaması gereken bu modülün temeli var. NRF24L01'in temel çalışması, Arduino'da verici ve alıcıdır, her ikisi de aşağıdaki yöntemlerle elde edilebilir. İşte Arduino UNO için devre .
Verici Örneği olarak nasıl kullanılır
NRF24L01 bir verici olarak hareket ettiğinde, yalnızca tek bir kanaldan başka bir modüle veri iletebilir. Verici olarak kullanmak için Arduino'daki programın bilmesi gerekirdi. Programı yükledikten sonra, verici ve alıcı arasındaki modları programlamadan hiçbir şekilde değiştiremezsiniz. Verici olarak kullanmak için aşağıdaki kod yüklenmelidir:
#include <nRF24L01.h> #include <RF24.h> #include <SPI.h> RF24 radio(3, 2); void setup() { radio.begin(); radio.openWritingPipe(10101); radio.stopListening(); } void loop() { const char data[] = "DATA"; radio.write(&data, sizeof(data)); delay(2000); }
Verici koduyla ilgili ayrıntılar
Arduino ve nRF24L01 arasındaki iletişim aşağıdaki kitaplıklara bağlıdır:
#include <nRF24L01.h> #include <RF24.h> #include <SPI.h>
Her Arduino kartının belirli bir MISO, MOSI ve SCK SPI pinine sahip olduğunu biliyoruz. Yani, Arduino'nun bunları anlatması gerekmeyecek, ancak CSN ve CE pinlerinin başlatılması gerekiyor. NRF24L01 kitaplığı, hem CSN hem de CE'nin PIN'ini almak için yerleşik bir işleve sahiptir, bu da:
RF24 radyo (3, 2);
3 sayısı CE pinini temsil eder ve 2 CSN pinini temsil eder. Her ikisi de herhangi bir dijital pime göre değiştirilebilir; burada yukarıda verilen devreye göredirler.
Bundan sonra modül aşağıdaki komutu kullanarak başlatılmalıdır:
radio.begin ();
Adres, alıcıyla iletişim kurması gereken cihaz için 5 bit ile tanımlanabilir. Herhangi bir 5 bitlik sayı kullanılabilir.
radio.openWritingPipe (10101);
Bundan sonra modülün modunu bilmesi gerekir. Ya alıcı ya da verici olarak çalışıyor. Aşağıdaki komut nRF24L01'i bir verici yapacaktır.
radio.stopListening ();
Daha sonra cihaz bir verici olarak kullanılabilir. Başlatma için bilinen tek şey veri göndermektir. Modül sınırlaması nedeniyle bir seferde yalnızca 32 bayt veri gönderilebilir olduğunu her zaman aklınızda bulundurun. Aşağıdaki komut bunu tanımlamaya yardımcı olacaktır:
const char data [] = "DATA"; radio.write (& veri, sizeof (veri));
Gönderilen veriler, programın kurulumunda veya döngüsünde tanımlanabilir.
NRF24L01'i Alıcı Örneği olarak kullanma
Yukarıdaki kısım tamamen iletim yöntemiyle ilgilidir, ancak alıcı yöntemi vericiden farklı değildir. Vericide yalnızca üç talimat değişecek.
- Vericide bulunmayan adres kanalı
- Modülün bir alıcı olarak başlatılması
- Veri alma ve kontrol yöntemi
Alıcı için aşağıdaki kod:
#include <nRF24L01.h> #include <RF24.h> #include <SPI.h> RF24 radio(3, 2); void setup() { radio.begin(); radio.openReadingPipe(0,00001); radio.startListening(); } void loop() { if (radio.available()) { char data[32] = {0}; radio.read(&data, sizeof(data)); } }
Alıcı koduyla ilgili ayrıntı
Dikkat ederseniz, alıcı için vericiden yalnızca üç parça farklıdır.
İlk bölüm adres bölümüdür:
radio.openReadingPipe (0,10101);
Adres kısmında artık iki bölüm var. ikincisi, iletim cihazının adresini tanımlayan adres kısmıdır. "0" olan ilk bölüm kanalı tanımlar. Modülün bir seferde iletişim kurmak için 6 kanal sunduğunu yukarıda belirttiğimiz gibi, programlamanın ilk kısmı birden fazla kanal oluşturmaya yardımcı olacaktır.
İkinci kısım, modülün bir verici olarak başlatılmasıdır. Modülü bir verici olarak başlatmak için aşağıdaki komutu başlatın:
radio.startListening ();
Üçüncüsü verinin alınmasıdır.
eğer (radio.available ())
Gelen veriler hakkında bilgi sahibi olmanıza yardımcı olacaktır
radio.read (veri, boyut);
Verilerin okunmasına yardımcı olacaktır.
NRF24L01 Örneği
Bir sürü uygulama var nRF24L01 kullanılabilir ancak bir ağ oluşturmak nRF24L01'in en iyi yeteneklerinden biridir ve bu da onu başka bir modülden farklı kılar. Mesh olarak kullanmak için toplam 3-7 modül mevcut olmalıdır. Verilen resmi takip edin.
Ardından aşağıdaki talimat, alıcı ucundaki farklı kanalları başlatmak için kullanılmalıdır.
radio.openReadingPipe (0, ADDRESS); radio.openReadingPipe (1, ADDRESS); radio.openReadingPipe (2, ADDRESS); radio.openReadingPipe (3, ADDRESS); radio.openReadingPipe (4, ADDRESS); radio.openReadingPipe (5, ADDRESS);
Alıcı, cihazlar arasında ayrım yapamaz, bu nedenle geliştiriciler her zaman verilerin vericiler arasında aynı olmaması gerektiğini akılda tutar.
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.