Home / Tutorials / Arduino Tutorial / Arduino NRF24L01 Interfacing Tutorial
NRF24L01 Lower Power

Arduino NRF24L01 Interfacing Tutorial

If you are looking to have wireless features on your next project and don't want to spend that much, then an Arduino NRF24L01 solution might be for you.

The NRF24L01 by Nordic Semiconductors contains a 2.4 GHz RF transceiver, synthesizer and baseband logic which can be interfaced through SPI. Apparently, there are two versions of this breakout board: low-power and high-power. The low-power version uses the on-board PCB antenna and can send and receive data from 50 to 200 feet (15 to 60 meters) while the high-power version has an external antenna which increases the range to up to 3500 feet! (1 kilometer).

I was able to grab one of those low-power versions for my wireless robotic arm control project:

NRF24L01 Lower Power

My immediate concern was that this board runs on 3.3 V while the rest of my modules all run 5 V. Thankfully, there is a separately sold adapter that converts the voltage levels:

NRF14L01 Adapter

It also makes it easier to place the NRF24L01 breakout board on a PCB!

Arduino NRF24L01 Sketch

For Arduino NRF24L01 interfacing, we need the Radiohead packet radio library by Mike McCauley. Go ahead and download the library from his repository. Once the library is installed on the Arduino IDE, you are now able to use some of the example codes.

Follow these connections to use the library:

Signal Arduino UNO/Nano/Mini Pin Arduino Mega2560 Pin
GND GND GND
 VCC  3.3V  3.3V
 CE  8  8
 CSN  10  53
 SCK  13  52
 MOSI  11  51
 MISO  12  50
 IRQ  N/C  N/C

The library contains a number of examples. To start, choose Examples > Radiohead > nrf24 > nrf24_client. This sketch initializes the communication to the server with a simple message and waits for a server's reply.

nrf24_client:

Of course, the sketch above is useless without a server so load this to another Arduino NRF24L01 circuit.

nrf24_server:

The client device sends a "Hello World" to the server to which the server responds with "And hello back to you". You can see everything if you open Serial Monitor for both the client Arduino and the receiver Arduino.

Here is a cool remote-control project on using the Arduino NRF24L01.

Was this post useful? Drop a comment below!

Check Also

arduino rgb led tutorial

Arduino RGB LED Tutorial

A RGB LED is a special light emitting diode which can produce 16 million possible …

2 comments

  1. init failed ? why *

Leave a Reply

Your email address will not be published. Required fields are marked *