Main Content

Communication between two Arduinos using NRF24L01

While building Arduino or any other microcontroller platform project over time the need will arise to establish communication between two of the Arduino boards or microcontrollers for data exchange and/or control. This communication could be achieved using either wired or wireless process. For wireless communication between devices, quite a number of options exist including WiFi, GSM/GPRS, Bluetooth, RF and more recent technologies like LoRaWAN among others. All of these communication protocols have their pros and cons and the situation is in which they are the best fit. For mid-range communication between two microcontrollers, for example, one of the most suitable communication protocol is RF (radio frequency) as it has a good cost to performance ratio and a very good communication range can be attained using certain modules.

Today, we will look at the radio frequency based communication between microcontrollers using one of the most popular RF communication modules; the NRF24LO1 communication module.

The NRF24L01 module is a low-cost (less than$3) ultra-low power, bi-directional transceiver module. It is designed to operate within the 2.4GHz ISM band which means it can be used for projects with industrial, scientific and medical applications. The module can achieve data rates as high as 2Mbits! and uses a high-speed SPI interface in order to communicate with the Arduino and other kind of microcontroller and development boards.

One of the best features of this module, aside the ease with which it can be used with Arduino and other microcontroller, is its low power consumption. This module consumes, less than 14mA in full communication mode and consumes only a few microamps in power down mode. This makes it ideal for projects with long battery life specifications.

To demonstrate the use of this module with Arduino, we will build a simple transmitter and receiver project. The transmitter sends data at a regular interval to the receiver which displays the received data on the serial monitor. This dummy data being transferred could be data from sensors in a real life application or signals to get the receiver to perform certain actions.”

Link to article