Introduction: Arduino UNO NRF24L01+ Shield

I recently received my first couple of nRF24L01+ modules. But soon, I realised that the Arduino UNO onboard 3.3V regulator was not capable of driving the nRF24 modules at full power.

I ended up with lots of wiring between the Arduino UNO, breadboard with 3.3V regulator, and nRF24 module. Thus I decided to build a set of shields to make it easier for me testing these modules.

Step 1: The Shield Design

Nothing too complicated. It is a standard shield layout, with an on-board LM2937 3.3V regulator for the nRF24 module. The nRF24 module plugs into a set of header connectors.

Additional items are not essential, but include the following:

- Power LED

- Reset button

- Jumper to select INT0 or INT1 if the mudule's interrupts will be used

- LED for "BIND" status

- 2 Extra LEDs

- 2 Extra push buttons

Step 2: The PC Board

I used the free version of Eagle to create the PC Board. To keep the design simple, I opted for a single layer design. However, there are 5 jumpers that needs to be soldered on the top side.

Extra holes are provided for extra headers if required.

Step 3: Testing the Shields

To test the nRF24, two modules are required. Thus I ended op making two shields.

I created two sketches, one for Transmitter, and one for receiver. It is a simple one-way communication link.

When both units are powered up, the red LED on both shields will be on, indicating data is sent correctly, and received by the receiver.When a button on the transmitter is pressed, the corresponding LED on the receiver will turn on.

The link can be tested by pressing the RESET button on either the transmitter or receiver for a while. The "BIND" LED on the other unit will turn off, indicating loss of the communication link.

Step 4: NRF24 Remote Control for Electric Wheelchair

My first nRF24 project. a Remote control for my friend's electric wheelchair. This will enable him to use his wheelchair normally to reach his car. Once in his car, he can use the remote control to move the wheelchair into the garage, and out of the sun and rain.

The transmitter uses a PS2/3 joystick, and transmit the data to the chair's receiver. The receiver takes this data, and convert it into standard R/C Servo signals (PPM) which is then fed into the wheelchair controller.

Both Tx an Rx uses a ATMega328P.

For this project, I made the following changes to the standard nRF24 setup to increase the range of the link:

- Set output power to maximum

- Set data buffer to only 7 bytes

- Set baud rate to lowest setting

Comments

author
diy_bloke (author)2017-04-16

looks good

author
GamalielC (author)2016-05-23

Excellent!

author
Eric Brouwer (author)GamalielC2016-05-24

Thank you

author
abolfazl fakour (author)2016-05-24

thanks for this project

author

Hope you get it up and running

author
JoeK17 (author)2016-05-23

WOW!!! very nice innovation....

author
Eric Brouwer (author)JoeK172016-05-24

Thank you

author
dick55 (author)2016-05-23

Nice Instructable and application. I'm sure your friend appreciates his "robot."

It is interesting that the existing wheelchair controller had an interface that worked with servo-type commands.

author
Eric Brouwer (author)dick552016-05-23

Thank you very much.
The wheelchair had a Shark controller, but was struck by lightning while on charge.
Due to the high replacement cost, I build a new controller using a ATMEGA328p, PS3 joysticks, and a 60A dual speed controller. The remote function was added as he had a specific problem to store the chair.

author
KNEXnCoding (author)2016-05-22

Very cool! The shield design is so neat and tidy!

author
Eric Brouwer (author)KNEXnCoding2016-05-22

Thank you very much.