Możliwość bezprzewodowej komunikacji dwóch lub więcej układów Arduino na odległość otwiera wiele możliwości, takich jak zdalne monitorowanie danych z czujników, sterowanie robotami, automatyka domowa i wiele innych. A kiedy przychodzi do posiadania niedrogich, ale niezawodnych dwukierunkowych rozwiązań RF, nikt nie wykonuje lepszej pracy niż moduł transceivera nRF24L01+ firmy Nordic Semiconductor.

moduł transceivera nRF24L01+ (plus) można często uzyskać online za mniej niż dwa dolary, co czyni go jednym z najtańszych opcji komunikacji danych, które można uzyskać. A co najlepsze, moduły te są bardzo małe, pozwalając na włączenie interfejsu bezprzewodowego do prawie każdego projektu.

Przegląd sprzętu

Częstotliwość radiowa

Moduł transceivera nRF24L01+ jest przeznaczony do pracy w paśmie częstotliwości ISM 2,4 GHz na całym świecie i używa modulacji GFSK do transmisji danych. Szybkość przesyłania danych może wynosić 250kbps, 1Mbps i 2Mbps.

Co to jest pasmo ISM 2,4 GHz?

Pasmo 2,4 GHz jest jednym z pasm przemysłowych, naukowych i medycznych (ISM) zarezerwowanych na poziomie międzynarodowym do użytku nielicencjonowanych urządzeń o małej mocy. Przykłady to telefony bezprzewodowe, urządzenia Bluetooth, urządzenia do komunikacji bliskiego pola (NFC) i bezprzewodowe sieci komputerowe (WiFi) wszystkie używają częstotliwości ISM.

Zużycie energii

Napięcie robocze modułu wynosi od 1,9 do 3.6V, ale dobrą wiadomością jest to, że piny logiczne są tolerowane przez 5 V, więc możemy go łatwo podłączyć do Arduino lub dowolnego mikrokontrolera z logiką 5V bez użycia konwertera poziomów logicznych.

Moduł obsługuje programowalną moc wyjściową viz. 0 dBm, -6 dBm, -12 dBm lub -18 dBm i zużywa niewiarygodnie około 12 mA podczas transmisji przy 0 dBm, czyli nawet mniej niż pojedyncza dioda LED. A co najlepsze, zużywa 26 µA w trybie czuwania i 900 nA w trybie wyłączenia. Dlatego właśnie są to urządzenia bezprzewodowe dla aplikacji o niskim poborze mocy.

Interfejs SPI

Moduł transceivera nRF24L01+ komunikuje się przez 4-pinowy interfejs Serial Peripheral Interface (SPI) z maksymalną szybkością transmisji danych 10Mbps. Wszystkie parametry takie jak kanał częstotliwości (125 wybieranych kanałów), moc wyjściowa (0 dBm, -6 dBm, -12 dBm lub -18 dBm) oraz szybkość transmisji danych (250kbps, 1Mbps lub 2Mbps) mogą być konfigurowane poprzez interfejs SPI.

System SPI wykorzystuje koncepcję Master i Slave, w większości typowych aplikacji nasze Arduino jest Masterem, a moduł transceivera nRF24L01+ jest Slave. W przeciwieństwie do magistrali I2C liczba urządzeń podrzędnych na magistrali SPI jest ograniczona, na Arduino Uno można użyć maksymalnie dwóch urządzeń podrzędnych SPI, tj. dwóch modułów transceivera nRF24L01+.

Tutaj jest pełna specyfikacja:

Zakres częstotliwości 2.4 GHz ISM Band
Maximum Air Data Rate 2 Mb/s
Modulation Format GFSK
Max. Output Power 0 dBm
Operating Supply Voltage 1.9 V do 3.6 V
Max. Prąd roboczy 13.5mA
Min. Current(Standby Mode) 26µA
Logic Inputs 5V Tolerant
Communication Range 800+ m (line widzenia)

moduł nRF24L01+ Vs nRF24L01+ PA/LNA module

Dostępnych jest wiele modułów opartych na układzie nRF24L01+. Poniżej przedstawiono najpopularniejsze wersje.

nRF24L01+ Wireless Module

Pierwsza wersja wykorzystuje antenę pokładową. Pozwala to na uzyskanie bardziej kompaktowej wersji układu. Jednakże, mniejsza antena oznacza również mniejszy zasięg transmisji. W tej wersji będziesz mógł się komunikować na odległość 100 metrów. Oczywiście jest to na zewnątrz w otwartej przestrzeni. Twój zasięg w pomieszczeniach, szczególnie przez ściany, będzie nieco osłabiony.

nRF24L01+ PA LNA Wireless Transceiver Module with External Antenna

Druga wersja posiada złącze SMA i antenę typu kaczka, ale to nie jest prawdziwa różnica. Prawdziwą różnicą jest to, że jest ona wyposażona w specjalny układ RFX2401C, który integruje PA, LNA i układy przełączające nadawanie i odbiór. Ten układ wzmacniacza zasięgu wraz z kaczką-anteną pomaga modułowi osiągnąć znacznie większy zasięg transmisji wynoszący około 1000 m.

Co to jest PA LNA?

PA oznacza Power Amplifier (wzmacniacz mocy). Zwiększa on jedynie moc sygnału przesyłanego z układu nRF24L01+. Natomiast LNA to skrót od Low-Noise Amplifier (wzmacniacz niskoszumowy). Zadaniem LNA jest przejęcie

nRF24L01+ PA/LNA Block Diagram

ekstremalnie słabego i niepewnego sygnału z anteny (zwykle rzędu mikrowoltów lub poniżej -100 dBm) i wzmocnienie go do bardziej użytecznego poziomu (zwykle około 0.5 do 1V)

Wzmacniacz niskoszumowy (LNA) ścieżki odbioru i wzmacniacz mocy (PA) ścieżki nadawczej łączą się z anteną poprzez duplekser, który rozdziela oba sygnały i zapobiega przeciążeniu wrażliwego wejścia LNA przez stosunkowo mocne wyjście PA. Aby uzyskać więcej informacji sprawdź ten artykuł na digikey.com

Z wyjątkiem tej różnicy, oba moduły są kompatybilne typu drop-in. Oznacza to, że jeśli zbudujesz swój projekt z jednym z nich, możesz po prostu odłączyć go i użyć innego bez potrzeby dokonywania jakichkolwiek zmian w systemie.

Jak działa moduł transceivera nRF24L01+?

RF Channel Frequency

Moduł transceivera nRF24L01+ nadaje i odbiera dane na określonej częstotliwości zwanej Channel. Aby dwa lub więcej modułów transceivera mogło się ze sobą komunikować, muszą być na tym samym kanale. Ten kanał może być dowolna częstotliwość w paśmie ISM 2,4 GHz lub, aby być bardziej precyzyjne, może być między 2,400 do 2,525 GHz (2400 do 2525 MHz).

Każdy kanał zajmuje szerokość pasma mniej niż 1MHz. To daje nam 125 możliwych kanałów z odstępem 1MHz. Moduł może więc wykorzystywać 125 różnych kanałów, co daje możliwość posiadania sieci 125 niezależnie pracujących modemów w jednym miejscu.

Kanał zajmuje pasmo mniejsze niż 1MHz przy prędkości transmisji danych 250kbps i 1Mbps. Natomiast przy przepływności 2Mb/s zajmuje pasmo 2MHz (szersze niż rozdzielczość ustawienia częstotliwości kanału RF). Tak więc, aby zapewnić nienakładanie się kanałów i zredukować przesłuch w trybie 2Mbps, należy zachować 2MHz odstępu pomiędzy dwoma kanałami.

Częstotliwość kanału RF wybranego kanału jest ustawiana według następującego wzoru:

Freq(Selected) = 2400 + CH(Selected)

Na przykład, jeśli wybierzesz 108 jako swój kanał do transmisji danych, częstotliwość kanału RF twojego kanału wyniesie 2508MHz (2400 + 108)

nRF24L01+ Multiceiver Network

NRF24L01+ zapewnia funkcję zwaną Multiceiver. Jest to skrót od Multiple Transmitters Single Receiver. W którym każdy kanał RF jest logicznie podzielony na 6 równoległych kanałów danych zwanych Data Pipes. Innymi słowy, rura danych jest logicznym kanałem w fizycznym kanale RF. Każda rura danych ma swój własny adres fizyczny (Data Pipe Address) i może być konfigurowana. Można to zilustrować w sposób przedstawiony poniżej.

nRF24L01+ Multiceiver Network – Multiple Transmitters Single Receiver

Aby uprościć powyższy schemat, wyobraźmy sobie odbiornik główny działający jako odbiornik koncentrator zbierający informacje z 6 różnych węzłów nadawczych jednocześnie. Odbiornik koncentratora może w każdej chwili przestać słuchać i działać jako nadajnik. Ale to może być zrobione tylko jedna rura/węzeł na raz.

Protokół Enhanced ShockBurst

Moduł transceivera nRF24L01+ używa struktury pakietów znanej jako Enhanced ShockBurst. Ta prosta struktura pakietów jest podzielona na 5 różnych pól, co zostało zilustrowane poniżej.

nRF24L01+ Enhanced ShockBurst Packet Structure

Oryginalna struktura ShockBurst składała się tylko z pól Preamble, Address, Payload i Cyclic Redundancy Check (CRC). Enhanced ShockBurst przyniósł większą funkcjonalność dla bardziej zaawansowanej komunikacji przy użyciu nowo wprowadzonego Packet Control Field (PCF).

Ta nowa struktura jest świetna z wielu powodów. Po pierwsze, pozwala na zmienną długość ładunku za pomocą specyfikatora długości ładunku, co oznacza, że ładunek może się wahać od 1 do 32 bajtów.

Po drugie, zapewnia każdemu wysyłanemu pakietowi identyfikator pakietu, który pozwala urządzeniu odbierającemu określić, czy wiadomość jest nowa, czy też została retransmitowana (a zatem może zostać zignorowana).

Na koniec, i co najważniejsze, każda wiadomość może zażądać wysłania potwierdzenia, gdy zostanie odebrana przez inne urządzenie.

nRF24L01+ Automatic Packet Handling

Przedyskutujmy teraz trzy scenariusze, aby lepiej zrozumieć, jak dwa moduły nRF24L01+ komunikują się ze sobą.

Transakcja z potwierdzeniem i przerwaniemTo jest przykład pozytywnego scenariusza. Tutaj nadajnik rozpoczyna komunikację poprzez wysłanie pakietu danych do odbiornika. Po przesłaniu całego pakietu, czeka on (około 130 µs) na odebranie pakietu potwierdzenia (pakiet ACK). Gdy odbiornik odbierze pakiet, wysyła pakiet ACK do nadajnika. Po otrzymaniu pakietu ACK nadajnik emituje sygnał przerwania (IRQ), aby wskazać, że nowe dane są dostępne.

Transakcja z utratą pakietu danychJest to negatywny scenariusz, w którym konieczna jest retransmisja z powodu utraty przesyłanego pakietu. Po przesłaniu pakietu, nadajnik oczekuje na odebranie pakietu ACK. Jeśli nadajnik nie otrzyma go w czasie Auto-Retransmit-Delay (ARD), pakiet jest retransmitowany. Kiedy retransmitowany pakiet jest odbierany przez odbiornik, pakiet ACK jest transmitowany, co z kolei generuje przerwanie w nadajniku.

Transakcja z utraconym potwierdzeniemTo jest ponownie negatywny scenariusz, w którym retransmisja jest potrzebna z powodu utraty pakietu ACK. Tutaj, nawet jeśli odbiorca otrzyma pakiet w pierwszej próbie, z powodu utraty pakietu ACK, nadajnik myśli, że odbiorca nie otrzymał pakietu w ogóle. Tak więc, po upływie czasu Auto-Retransmit-Delay, retransmituje pakiet. Teraz, gdy odbiornik otrzymuje pakiet zawierający ten sam identyfikator pakietu co poprzedni, odrzuca go i ponownie wysyła pakiet ACK.

Cała ta obsługa pakietów jest wykonywana automatycznie przez układ nRF24L01+ bez udziału mikrokontrolera.

pinout modułu transceivera nRF24L01+

Przyjrzyjrzyjmy się pinoutowi obu wersji modułu transceivera nRF24L01+.

GND jest pinem masy. Zazwyczaj jest on oznaczany przez obudowanie pinu w kwadrat, dzięki czemu może być używany jako odniesienie do identyfikacji innych pinów.

VCC dostarcza zasilanie dla modułu. To może być w dowolnym miejscu od 1,9 do 3,9 V. Możesz go podłączyć do wyjścia 3.3V z twojego Arduino. Pamiętaj, że podłączenie go do 5V prawdopodobnie zniszczy Twój moduł nRF24L01+!

CE (Chip Enable) jest pinem aktywnym-HIGH. Po wybraniu nRF24L01 będzie albo nadawał albo odbierał, w zależności od tego, w jakim trybie jest obecnie.

CSN (Chip Select Not) jest pinem aktywnym-LOW i normalnie jest utrzymywany w stanie HIGH. Gdy ten pin przechodzi w stan niski, nRF24L01 zaczyna nasłuchiwać na swoim porcie SPI na dane i odpowiednio je przetwarza.

SCK (Serial Clock) akceptuje impulsy zegarowe dostarczane przez magistralę SPI Master.

MOSI (Master Out Slave In) jest wejściem SPI do nRF24L01.

MISO (Master In Slave Out) jest wyjściem SPI z nRF24L01.

IRQ to pin przerwania, który może powiadomić mastera, gdy nowe dane są dostępne do przetworzenia.

Okablowanie – Podłączenie modułu transceivera nRF24L01+ do Arduino UNO

Teraz, gdy mamy pełne zrozumienie jak działa moduł transceivera nRF24L01+, możemy rozpocząć podłączanie go do naszego Arduino!

Na początek podłączamy pin VCC na module do 3.3V na Arduino, a pin GND do masy. Piny CSN i CE możemy podłączyć do dowolnego pinu cyfrowego na Arduino. W naszym przypadku są one podłączone odpowiednio do pinów #8 i #9. Teraz pozostajemy przy pinach, które są używane do komunikacji SPI.

Jako, że moduł transceivera nRF24L01+ wymaga dużej ilości transferu danych, będzie on dawał najlepszą wydajność, gdy będzie podłączony do sprzętowych pinów SPI mikrokontrolera. Sprzętowe piny SPI są znacznie szybsze niż 'bit-banging’ kodu interfejsu przy użyciu innego zestawu pinów.

Uwaga, że każda płytka Arduino Board ma inne piny SPI, które powinny być odpowiednio podłączone. Dla płyt Arduino takich jak UNO/Nano V3.0 są to piny cyfrowe 13 (SCK), 12 (MISO) i 11 (MOSI).

Jeśli masz Mega, piny są inne! Będziesz chciał użyć pinów cyfrowych 50 (MISO), 51 (MOSI), 52 (SCK), i 53 (SS). Odnieś się do poniższej tabeli dla szybkiego zrozumienia.

.

MOSI MISO SCK
Arduino Uno 11 12 13
Arduino Nano Arduino Nano 11 12 13
Arduino Mega 51 50 52

W przypadku korzystania z innej płytki Arduino niż wymienione powyżej, zalecane jest sprawdzenie oficjalnej dokumentacji Arduino przed kontynuowaniem.

Podłączenie modułu bezprzewodowego transceivera nRF24L01+ do Arduino UNO
Podłączenie modułu bezprzewodowego nRF24L01+ PA LNA do Arduino UNO

Pamiętaj! Musisz zrobić dwa takie układy. Jeden działa jako nadajnik, a drugi jako odbiornik. Okablowanie dla obu jest identyczne.

Gdy już masz wszystko podłączone, jesteś gotowy do pracy!

Biblioteka Arduino dla modułu nRF24L01+

Interfejs z modułem nadawczo-odbiorczym nRF24L01+ to kupa roboty, ale na szczęście dla nas, istnieje wiele dostępnych bibliotek. Jedną z popularnych bibliotek jest RF24. Biblioteka ta istnieje już od kilku lat. Jest prosta w użyciu dla początkujących, a jednocześnie oferuje wiele dla zaawansowanych użytkowników. W naszych eksperymentach będziemy korzystać z tej samej biblioteki.

Możesz pobrać najnowszą wersję biblioteki z repozytorium RF24 GitHub lub, po prostu kliknij ten przycisk, aby pobrać zip:

Aby ją zainstalować, otwórz Arduino IDE, przejdź do Sketch > Include Library > Add .ZIP Library, a następnie wybierz plik RF24-master, który właśnie pobrałeś. Jeśli potrzebujesz więcej szczegółów na temat instalacji biblioteki, odwiedź ten tutorial Installing an Arduino Library.

Kod Arduino – dla nadajnika

W naszym eksperymencie będziemy po prostu wysyłać tradycyjną wiadomość 'Hello World’ z nadajnika do odbiornika.

Tutaj znajduje się szkic, którego będziemy używać dla naszego nadajnika:

//Include Libraries#include <SPI.h>#include <nRF24L01.h>#include <RF24.h>//create an RF24 objectRF24 radio(9, 8); // CE, CSN//address through which two modules communicate.const byte address = "00001";void setup(){ radio.begin(); //set the address radio.openWritingPipe(address); //Set module as transmitter radio.stopListening();}void loop(){ //Send message to receiver const char text = "Hello World"; radio.write(&text, sizeof(text)); delay(1000);}

Szkic rozpoczyna się od dołączenia bibliotek. Biblioteka SPI.h obsługuje komunikację SPI, natomiast nRF24L01.h i RF24.h sterują modułem.

//Include Libraries#include <SPI.h>#include <nRF24L01.h>#include <RF24.h>

Następnie musimy utworzyć obiekt RF24. Obiekt ten przyjmuje dwa numery pinów jako parametry, do których podłączone są sygnały CE i CSN.

//create an RF24 objectRF24 radio(9, 8); // CE, CSN

Następnie musimy utworzyć tablicę bajtów, która będzie reprezentować adres potoku, przez który komunikują się dwa moduły nRF24L01+.

//address through which two modules communicate.const byte address = "00001";

Możemy zmienić wartość tego adresu na dowolny 5-literowy ciąg znaków, taki jak „node1”. Adres ten jest niezbędny w przypadku posiadania kilku modułów w sieci. Dzięki adresowi możemy wybrać konkretny moduł, z którym jesteśmy zainteresowani komunikacją, więc w naszym przypadku będziemy mieli ten sam adres zarówno dla nadajnika jak i odbiornika.

Następnie w funkcji setup: musimy zainicjalizować obiekt radiowy za pomocą radio.begin() i za pomocą funkcji radio.openWritingPipe() ustawiamy adres nadajnika.

//set the addressradio.openWritingPipe(address);

Na koniec użyjemy funkcji radio.stopListening(), która ustawia moduł jako nadajnik.

//Set module as transmitterradio.stopListening();

W sekcji loop: tworzymy tablicę znaków, do której przypisujemy komunikat „Hello World”. Za pomocą funkcji radio.write() wyślemy tę wiadomość do odbiorcy. Pierwszym argumentem jest tutaj wiadomość, którą chcemy wysłać. Drugi argument to liczba bajtów występujących w tej wiadomości.

const char text = "Hello World";radio.write(&text, sizeof(text));

Poprzez tę metodę można wysłać do 32 bajtów na raz. Ponieważ jest to maksymalny rozmiar pojedynczego pakietu, który nRF24L01+ może obsłużyć. Jeżeli potrzebujesz potwierdzenia, że odbiornik otrzymał dane, metoda radio.write() zwraca wartość bool. Jeżeli zwróci TRUE, to dane dotarły do odbiornika. Jeśli zwróci FALSE, dane zostały utracone.

funkcja radio.write() blokuje program do momentu otrzymania potwierdzenia lub wyczerpania wszystkich prób retransmisji.

Kod Arduino – Dla odbiornika

Tutaj znajduje się szkic, którego będziemy używać dla naszego odbiornika

//Include Libraries#include <SPI.h>#include <nRF24L01.h>#include <RF24.h>//create an RF24 objectRF24 radio(9, 8); // CE, CSN//address through which two modules communicate.const byte address = "00001";void setup(){ while (!Serial); Serial.begin(9600); radio.begin(); //set the address radio.openReadingPipe(0, address); //Set module as receiver radio.startListening();}void loop(){ //Read the data if available in buffer if (radio.available()) { char text = {0}; radio.read(&text, sizeof(text)); Serial.println(text); }}

Program ten wygląda dość podobnie do programu nadajnika z wyjątkiem kilku zmian.

Na początku funkcją setup rozpoczynamy komunikację szeregową. Następnie za pomocą funkcji radio.setReadingPipe() ustawiamy ten sam adres co nadajnik i w ten sposób umożliwiamy komunikację pomiędzy nadajnikiem a odbiornikiem.

 //set the address radio.openReadingPipe(0, address);

Pierwszym argumentem jest numer strumienia. Można utworzyć do 6 strumieni, które odpowiadają na różne adresy. My stworzyliśmy tylko adres dla strumienia o numerze 0. Drugi argument to adres, na który strumień będzie reagował, aby odebrać dane.

Kolejnym krokiem jest ustawienie modułu jako odbiornika i rozpoczęcie odbierania danych. W tym celu używamy funkcji radio.startListening(). Od tego momentu modem czeka na dane wysłane na podany adres.

//Set module as receiver radio.startListening();

W funkcji pętla: Szkic sprawdza, czy na dany adres dotarły jakieś dane za pomocą metody radio.available(). Metoda ta zwraca wartość TRUE, jeśli w buforze znajdują się jakiekolwiek dane.

if (radio.available()) { char text = {0}; radio.read(&text, sizeof(text)); Serial.println(text); }

Jeśli dane zostały odebrane, to tworzy tablicę 32 znaków wypełnioną zerami (później program wypełni ją odebranymi danymi). Do odczytu danych wykorzystamy metodę radio.read (& text, sizeof (text)). Spowoduje to zapisanie odebranych danych do naszej tablicy znaków.

Na końcu po prostu wypisujemy odebraną wiadomość na monitorze szeregowym. Jeśli wszystko zrobiłeś dobrze i nie ma żadnych błędów w połączeniach, powinieneś zobaczyć coś takiego w swoim monitorze szeregowym.

Wyjście transceivera nRF24L01+ na monitorze szeregowym

Poprawa zasięgu modułu transceivera nRF24L01+

Kluczowym parametrem dla systemu komunikacji bezprzewodowej jest zasięg komunikacji. W wielu przypadkach jest to czynnik decydujący o wyborze rozwiązania RF. Omówmy więc, co możemy zrobić, aby uzyskać lepszy zasięg dla naszego modułu.

Reduce Power Supply Noise

Obwód RF, który generuje sygnał o częstotliwości radiowej (RF), jest bardzo wrażliwy na szumy zasilania. Jeśli nie jest kontrolowany, szum zasilania może znacznie zmniejszyć zasięg, jaki można uzyskać.

Jeśli źródłem zasilania nie jest autonomiczny akumulator, istnieje duża szansa, że istnieje szum związany z generowaniem zasilania. Aby zapobiec przedostawaniu się tego szumu do układu, zaleca się umieszczenie kondensatora filtrującego 10 µf w poprzek linii zasilającej, jak najbliżej modułu nRF24L01+.

Najprostszym sposobem na uporanie się z tym problemem jest użycie bardzo taniego modułu adaptera dla nRF24L01.

nRF24L01+ Adapter

Moduł adaptera posiada 8-pinowe złącze żeńskie pozwalające na podłączenie modułu nRF24L01. Może pomieścić oba moduły, które omawialiśmy wcześniej, jeden z wbudowaną anteną i drugi z anteną zewnętrzną (PA/LNA). Posiada również 6-pinowe złącze męskie dla połączeń SPI i Interrupt oraz 2-pinowe złącze dla wejścia zasilania.

Moduł adaptera posiada własny regulator napięcia 3,3 V i zestaw kondensatorów filtrujących, więc możesz go zasilać za pomocą zasilacza 5 V.

Zmień częstotliwość kanału

Innym potencjalnym źródłem szumu dla obwodu RF jest środowisko zewnętrzne, szczególnie jeśli masz sąsiednie sieci ustawione na ten sam kanał lub zakłócenia z innej elektroniki.

Aby zapobiec tym sygnałom powodującym problemy, sugerujemy użycie najwyższych 25 kanałów twojego modułu nRF24L01+. Powodem tego jest WiFi wykorzystuje większość niższych kanałów.

Niższa prędkość transmisji danych

Moduł nRF24L01+ oferuje najwyższą czułość odbiornika przy prędkości 250Kbps, która wynosi -94dBm. Jednakże przy szybkości transmisji danych 2MBps czułość odbiornika spada do -82dBm. Jeśli znasz ten język, to wiesz, że odbiornik przy 250Kbps jest prawie 10 razy bardziej czuły niż przy 2Mbps. Oznacza to, że odbiornik może zdekodować sygnał, który jest 10 razy słabszy.

Co oznacza czułość odbiornika (Rx)?

Czułość odbiornika to najniższy poziom mocy, przy którym odbiornik może wykryć sygnał RF. Im większa jest wartość bezwzględna liczby ujemnej, tym lepsza jest czułość odbiornika. Na przykład, czułość odbiornika -94 dBm jest lepsza niż czułość odbiornika -82 dBm o 12 dB.

Więc obniżenie szybkości transmisji danych może znacznie poprawić zasięg, który można osiągnąć. Ponadto, dla większości naszych projektów, prędkość 250Kbps jest więcej niż wystarczająca.

Wyższa moc wyjściowa

Ustawienie maksymalnej mocy wyjściowej może również poprawić zasięg komunikacji. Urządzenie nRF24L01+ pozwala na wybór jednej z następujących mocy wyjściowych: 0 dBm, -6 dBm, -12 dBm lub -18 dBm. Wybranie mocy wyjściowej 0 dBm powoduje wysłanie silniejszego sygnału w powietrze.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.