Arduino – Poradnik #7 – Komunikacja Radiowa nRF24L01

Cześć dziś zajmiemy się obsługą modułu nRF24L01.

Możemy go zakupić w sklepie XBOT

nRF24L01 jest modułem radiowym działającym na częstotliwości 2,4 GHz. Posiada on zewnętrzną antenę dzięki czemu zasięg teoretycznie wynosi 1,1 km. Moduł działa na napięciu 3,3V. A jego pobór prądu to 45mA podczas odbioru oraz 115mA przy nadawaniu.
Pasmo pracy modułu podzielone jest na 125 kanałów (osobnych częstotliwości) Dzięki czemu możemy stworzyć aż 125 niezależnych sieci tych urządzeń w jednym miejscu. W tym urządzeniu mamy także mozliwość wyboru prędkości przesyłu danych (250kbps, 1Mbps i 2Mbps).

Moduł nRF24L01 wyposażono w pin IRQ (Interrupt Request), dzięki któremu możemy wybudzać Arduino w momencie odbierania danych. Co daje nam możliwość zmniejszenia zużycia energii. Jest on przydatny na przykład podczas tworzenia stacji pogodowej. Zasilanej baterią.

 

Jak podłączyć?

Podłączenie tego modułu nie jest zbyt wygodne ponieważ nie mamy możliwości podłączenia go do płytki stykowej ze względu na umieszczenie 2 rzędów pinów

Moduł podłączamy do Magistrali SPI
20-1-min

PIN ARDUINO PIN NRF24 PIN NRF24 PIN ARDUINO
GND 1:GND 2: VCC 3,3V
Dowolny (u mnie 9) 3:CE 4:CSN Dowolny (u mnie 10)
13 5: SCK 6:MOSI 11
12 7:MISO 8: IRQ Usypianie modułu (nie korzystamy obecnie)

Drugi moduł podłączamy tak samo.

!Napięcie tego modułu to 3,3 V!

  • Pin 7 zwarty do masy: nadawanie (tryb ping-out)
  • Pin 7 „wolny”: odbieranie (tryb pong-back)

Programowanie

Biblioteka do tego modułu dostępna jest TUTAJ. Dokumentację do tej biblioteki znajdziemy TUTAJ
Gdy pobierzemy oraz przekopiujemy bibliotekę, przejdźmy do analizu przykładu „pingpair”, który znajdziesz w zakładce examples–>RF24-master–>pingpair. Podstawowa klasa tej biblioteki to RF24(24 linijka przykładu) u nas wygląda ona tak

Instrukcja uruchomienia przykładu:
-Podłącz pierwsze Arduino
Nadajnik
-Zewrzyj pin 7 do masy
-Wgraj przykład pingpair

-Podłącz drugie Arduino Odbiornik
-wgraj przykład pingpair

W monitorze portu szeregowego nadajnika powinno pojawić się mniej więcej coś takiego:

Jeżeli pojawiło się coś takiego oznacza to, że wszystko się udało 😀

Uruchomienie tych modułów wcale nie jest aż tak bardzo skomplikowane jak mogło się wydawać 😀 Są one bardzo przydatne w wielu projektach, ponieważ są bardzo tanie. A ich obsługa nie jest jakoś specjalnie skomplikowana.

Teraz przejdźmy do napisania pierwszego programu, który będzie zapalał naszą diodę (podłączoną do układu odbiornika) gdy wciśniemy przycisk.
Podłączenie jest bardzo proste
Nadajnik
20-3-min

Odbiornik
20-2-min

Kod do Odbiornika


Kod do Nadajnika

 

Teraz już rozumiesz zasadę działania modułu nRF24L01. Mam nadzieję, że dzięki temu wiesz jak stworzyć swoje sterowanie radiowe lub jak bezprzewodowo przesyłać temperaturę.

 

Problemy z zasilaniem

Wiele użytkowników ma problem z poprawną pracą modułu nRF24L01. Bardzo często problem ten dotyczy zasilania. Zasilanie modułu z Arduino nie ma odpowiedniej wydajności prądowej. Ten problem można rozwiązać na kilka sposobów:

  • Podłączenie kondensatora 3.3 uF lub 10 uF do gnd, +3,3V.
  • Użycie innej wersji Arduino z wlutowanym kondensatorem na wyjściu. Na przykład Arduino RED.
  • Odseparowanie zasilania. Wykorzystanie zewnętrznego zasilacza.
    Jest to moim zdaniem najprostsze rozwiązanie tego problemu
    Wystarczy zakupić moduł zasilania do płytek stykowych dostępny TUTAJ
    I podłączyć moduł nRF24L01 tak samo jak na poprzednim schemacie wyżej jedynie zasilanie podłączyć „z tego modułu”

    Wtedy wszystko będzie prawidłowo działać.

Problemy z zasilaniem mogą w występować w Arduino UNO, MEGA, Nano itd. Jest to spowodowane niską wydajnością prądową tych kontrolerów na poziomie 50mA przy 3,3V.

Jeżeli masz jakieś pytania zadaj je w komentarzach 😀

Za jakiś czas postaram dodać się artykuł, w którym sprawdzę „realny” zasięg tego modułu.

Poradnik powstaje dzięki współpracy ze sklepem internetowym XBot.pl – roboty to lubią

24-4

[su_button url=”https://roboblog.eu/2016/02/26/arduino-poradnik/” size=”7″]Poprzednia część kursu[/su_button]