Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

29 Nisan 2021 Perşembe

NRF24L01 Kablosuz RF Modülü

 

NRF24L01 Kablosuz RF Modülü 


NRF24L01, modern uygulamalar için yasal RF iletişim cihazlarından biridir. NRF24L01 en ucuz olanıdır ve harika özelliklerle birlikte gelir. Tek bir modül 2.4 GHz frekansında iletişim kurarak yasal hale getirir. Tek bir modül ile veri gönderip alabilir. Transreceiving tek yeteneği değil, aynı anda toplam 6 diğer NRF24L01 modülü ile iletişim kurabilir. Cihaz, Arduino uygulaması ile arayüz oluşturur ve her türlü uzaktan kumanda uygulamasını kapsar. Bu kablosuz modül, SPI iletişim protokolünü kullanır ve 125 adres aralığı ile 10MBs veri hızı sunar, bu da onu en güvenilir RF modülü yapar. RF modülü, verileri alıcıya aktarmak için GFSK modülünü kullanır.
nRF24L01 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:

nRF24L01 RF modülü Pin çıkışı konfigürasyon şeması

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.

Kablosuz RF modül devresi

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 .

nRF24L01 RF modülü arduino ile arayüz oluşturuyor

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.

nRF24L01 RF modülü örneği

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.

ANA SAYFAYA DÖN

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.

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.