NRF24L01: Arduino için kablosuz iletişim modülü

NRF24L01

Elbette Arduino veya başka herhangi bir öğeyi kullanarak bir DIY projesi oluşturmanız ve bunlardan yararlanmanız gerekir. kablosuz iletişim. Ve bu, IR, RF, Bluetooth, WiFi vb. Kullanarak iletim yapmanıza izin veren bir tür modül veya cihaza sahip olduğunuzda gerçekleşir. Yani, sizin durumunuz için hangi tür sinyalin en uygun olacağını bilme ihtiyaçları konusunda net olmalısınız.

Bu durumda bir NRF24L01 kılavuzu senin için. Sinyal göndermek ve almak için ihtiyacınız olanı size sağlayacak bir kablosuz iletişim çipidir. İşlediği sinyallerin türü RF veya radyo frekansıdır, yani büyük dalga boyuna sahip dalgalardır ve bu nedenle elektromanyetik spektrumda frekansta 3 Hz ile 300 Ghz arasında olan düşük enerjili dalgalardır.

NRF24L01 nedir?

NRF24L01

El NRF24L01, Nordic Semiconductor tarafından üretilen bir çiptir. Eğer o Ürün bulunamadı.çip, ihtiyacınız olan bazı yardımcı elemanlarla birlikte küçük bir PCB üzerine monte edilmiş olarak gelir ve bu nedenle bir modül oluşturur. Bunu, daha sonra göstereceğim gibi Adruino'ya bağlamak da dahil olmak üzere çeşitli şekillerde kullanabilirsiniz.

NRF24L01, isminden de anlaşılacağı gibi, RF veya radyo frekansı kullanan kablosuz iletişim cihazıdır. 2,4 Ghz - 2,5 Ghz. Bu, ücretsiz kullanım için ücretsiz banttır. Diğer grupların ayrılmış olduğunu zaten biliyorsunuz ve bunları bilgi iletmek için kullanmak istiyorsanız ödeme yapmanız gerekiyor. Ek olarak, bir verici + bir alıcıyı entegre eder.

Spesifik olarak, kullanabileceğiniz frekans bandı 2.400 Mhz ila 2.525 Mhz arasındadır ve aralarında seçim yapma imkanı vardır. 125 kanallar aralarında 1Mhz boşluklarla. Bununla birlikte, WiFi ağları, bu frekansla çalışan dronlar vb. Kullanıyorsanız 2.4Ghz frekanslarını kullanmanız önerilmez, aksi takdirde parazit olur. Bu nedenle 2.501Mhz'den itibaren kullanılması tercih edilir.

Özellikleri ile ilgili olarak, 1.9 ila 3.6v arasında çalışır, Bu yüzden 3.3 bağlantıya sahip Arduino kartıyla, pilleri kullanarak ve hatta bu gerilime sahip bir güç kaynağıyla onu çalıştırmanız kolay olacaktır. Ek olarak, aktarım hızını 250 Kbps, 1Mbps ve 2Mbps'ye kadar yapılandırabilirsiniz.

Emisyon ve alımlardaki çip, aynı anda çalışabilir 6 bağlantıya kadar çeşitli cihazların. Bununla farklı noktalardan sorunsuz yayın yapabilir veya yayın alabilirsiniz. Ve iletişimin sağlamlığı veya güvenilirliği konusunda endişeleriniz varsa, çipin kendisinde veri hatalarını düzeltmek ve gerekirse bilgileri iletmek için mantık devresi vardır. Bu nedenle işlemciyi bu görevden kurtarır.

Kontrol etmek için kullanabilirsiniz SPI otobüsüdolayısıyla Arduino ile kontrolü çok basittir. Ek olarak, NRF24L01'in veri pinleri sorunsuz 5v'ye kadar destekler. Stand By'deki güç tüketimi oldukça düşüktür, bu nedenle endişelenecek bir unsur olmayacaktır ve çalışırken en maliyetli olanlardan biri değildir, çünkü veri göndermek ve almak için yalnızca 15mA'ya ihtiyaç duyar.

Piyasada birkaç tane bulacaksınız NRF24L01 çipini monte eden farklı modüllersadece sahip oldukları yardımcı elemanlarda veya bazı detaylarda değişirler. Örneğin anten türünde. Bazılarında PCB üzerine zikzak şeklinde basılmış, yaklaşık 20-30 metrelik bir menzile sahip bir anten vardır. Diğerleri, 700 metreden 1 km'ye çıkmak için bir amplifikatöre sahip biraz daha güçlü bir harici anteni kabul ediyor.

Bununla birlikte, gerçek kapsam bazı faktörlerle sınırlıdırörneğin yol engelleri, diğer unsurlardan veya mevcut sinyallerden kaynaklanan gürültü veya parazit, iletim hızı, besleme voltajı (daha yüksek voltaj, daha büyük mesafe) vb. Örneğin, maksimum 2Mbps hızında iletim yapmak istiyorsanız, bu mesafede büyük bir ceza olacak, bu sadece maksimum 2 veya 3 metre olacaktır. Daha düşük hızlarda bu mesafeye tırmanabilirsiniz.

ESP8266
İlgili makale:
ESP8266: Arduino için WIFI modülü

Satın almadan önce bilmeniz gerekenler nelerdir?

NRF40L01 anteni

El NRF24L01 çok ucuz bir çiptir çok sayıda projede kullanılabilir. Örneğin, harici bir anteniniz yoksa 0.65 € 'ya kadar satın alabilirsiniz, harici anten modeli bundan biraz daha pahalıdır, ancak yine de çok ucuzdur ve genellikle 1.7 €' yu geçmez.

Başka bir emisyon veya alıcı elemanınız yoksa, iki NRF24L01 modülü satın almanız gerektiğini zaten biliyorsunuz, biri iletmek istediğiniz yerin bir tarafında ve diğer tarafında kullanmak için. İkisi de şöyle davranacak gönderen veya alıcı istediğiniz gibi.

NRF24L01'in pin çıkışı ve montajı

pin çıkışı NRF40L01

Montaj gelince, oldukça basit. NRF24L01'in 8 pimi vardır, bu nedenle pin çıkışı çok kolaydır Seni bıraktığım bu görüntüde nasıl görebildiğini anlamak için. Sağ tarafta bir panonun pin diyagramını görebilirsiniz Arduino UNO ve modülün pimlerinin her birinin ona nasıl bağlanacağı.

Tahmin edebileceğiniz gibi, plaka NRF24L01, GND ve 3.3v pinleri kullanılarak çalıştırılır Arduino'dan. Bunu 5v sinyal ile yapmamayı unutmayın yoksa modüle zarar verirsiniz.

Arduino ile entegrasyon

Arduino ile 2 NRF24L01 (devre)

NRF24L01'in ne olduğunu ve nasıl bağlanıp çalıştırılabileceğini öğrendikten sonra, bu ucuz cihazlardan birkaçı ile yapabileceğiniz proje sayısına ek olarak, sıradaki şey göstermektir. bir programlama örneği Böylece Arduino IDE'nizle denemeye başlayabilirsiniz. İletebileceğiniz veri formatının kaynak kodda değiştirilebileceğini unutmayın.

l298n
İlgili makale:
L298N: Arduino için motorları kontrol eden modül

Bir dize, tam sayı, kayan nokta verisi vb. Gönderip almayı seçebilirsiniz. seni öneririm Arduino programlama rehberimiz eğer başlıyorsan. Bununla ilk projelerinizi oluşturabilirsiniz. Ve NRF24L01 için somut bir örnek olarak, sizi burada bırakıyorum bir dizi için gerekli kodlar.

Arduino IDE'ye yazmanız ve atayacağınız NRF24L01'e bağlı Arduino kartını programlamanız gereken kod verici:

#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
 
const int pinCE = 9;
const int pinCSN = 10;
RF24 radio(pinCE, pinCSN);
 
// Single radio pipe address for the 2 nodes to communicate.
const uint64_t pipe = 0xE8E8F0F0E1LL;
 
char data[16]="Aquí tu mensaje" ;
 
void setup(void)
{
   radio.begin();
   radio.openWritingPipe(pipe);
}
 
void loop(void)
{
   radio.write(data, sizeof data);
   delay(1000);
}

Burada, Arduino IDE'ye girmeniz ve adanmış NRF24L01'e bağladığınız karta kaydetmeniz gereken kod alıcı:

#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>

sabit int pinCE = 9;
sabit int pinCSN = 10;
RF24 radyo (pinCE, pinCSN);

// 2 düğümün iletişim kurması için tek radyo kanalı adresi.
const uint64_t boru = 0xE8E8F0F0E1LL;

karakter verileri [16];

geçersiz kurulum (geçersiz)
{
Serial.begin (9600);
radio.begin ();
radio.openReadingPipe (1, boru);
radio.startListening ();
}

geçersiz döngü (geçersiz)
{
eğer (radio.available ())
{
int done = radio.read (veri, veri boyutu);
Serial.println (veri);
}
}

Bununla ihtiyacınız olan her şeye sahip olacaksınız ve birinin kelimelerini veya metin dizelerini göndermeyi deneyebilir ve diğerinin bunları nasıl aldığını görebilirsiniz.. Konsolu verileri görüntülemek için bir araç olarak kullanmak için USB ile Arduino kartına bağlı iki bilgisayarı kullanın. Sahip olduğunuz modüle veya vermiş olduğunuz konfigürasyona göre onları ihtiyatlı bir mesafe ayırın ve ilk kodda girdiğiniz karakterleri diğer bilgisayarın ekranında görmeye başlayacaksınız ...


Bir yorum bırak seninkini

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Stefan dijo

    Merhaba Isaac
    Arduino, rasberry veya başka bir şeyle bir projeyi tamamlamak istiyorum.
    Açıklamak için bir e-posta kişisi verebilir misiniz?
    Bir mayın - a01b02@abv.bg
    teşekkürler