Introduction: ARDUINO AND NRF24L01+ BASED RF TRANSMITTER AND RECEIVER

About: I love to design new things and make products. i do design things in fusion 360 and love 3d printing. i have a keen interest in robotics and automation on a major. i constantly do research and learn about new …

Hello everyone

This instructable is in the contest so please vote for me . If you really liked and enjoyed.

So coming back to the project. As i was into robotics for a long time. i always wanted have a wireless remote control system through which i could communicate with the robot. So i chose the components which are quite common and have a trusted name such as arduino and nrf24l01+ modules. And this project is all about how i made this system and how i found the solutions to the common problems. This is not an another remote control system ,but a highly integrated and explanatory system which will help you to understand about the things.So guys bear with me for this long and detailed instructable.

Step 1: DESIGN AND IDEA ON PAPER

So, the first step was to have a rough design on i which i want the project to proceed. I made a kind of flow chart to have an idea of the the whole project. So from the flow chart you can see that the main brain behind this project would be arduino .And I also wanted to use nrf24l01+ modules for their very high specification and super cheap price. I also wanted to have a telemetry system for achieving this nrf24l01+ are most suitable as they are transceiver which means they can be transmitter at one time and receiver at the other time. Perfect for my application .

Step 2: GATHER YOUR PARTS

You will need following components:-

  • ARDUINO NANO - (x1)
  • ARDUINO PRO MINI 328/168 - (x1)
  • TP4056 MODULE - (x1)
  • 18650 Li-ion Cell - (x1)
  • Joysticks - (x2)
  • SPDT Toggle switch - (x1)
  • Push Button - (x1)
  • SX1308 boost module - (x1)
  • LM317T - (x1)
  • LED - (x5)
  • NRF24L01+ - (x2)
  • 3 mm Allen bolts 20mm - (x10)
  • Berg strip male - (x1)
  • Berg strip Female - (x1)
  • Tantalum Capacitor 2.2 uf - (x2)
  • 1K resistor - (x5)
  • Perfboard or veroboard

Step 3: TOOLS REQUIRED

Following are some tools required :-

  • Multi meter
  • Wire cutter
  • Wire stripper
  • Screwdriver
  • Allen key for 3 mm and 4 mm bolts
  • File
  • Soldering Iron
  • FTDI breakout Board
  • Solder
  • Helping Hands

Step 4: SOFTWARE REQUIRED

  • FUSION 360
  • Any Slicing software , I used simplify3d but you can also Cura or slicer.
  • Fritzing
  • ARDUINO IDE

Step 5: THE TRANSMITTER

Schematic:-

I originally designed the schematics in diptrace but since fritzing is a more common software so i remade the design in it , but still most of the components are not there so I have attached a handmade schematic of these.

In the schematic all the basic and essential components for the Transmitter are placed and wiring is done.

All the components are readily available at your local hobby store or eBay.

I have attached the schematic made in Fritzing below . Download it !!

ASSEMBLY:-

I assembled all the components as per the schematic and wired them all .

I won't go in detail in this topic as it is pretty straight forward.

After I assembled all the components I powered the circuit and check that everything is working fine.

Caution :- Make sure all components are wired up correctly and there is no short in any case or It may blow blow the circuit.

I also designed the Transmitter case or you may say body In FUSION 360 . For that instructions head on To Step 9

Step 6: THE RECEIVER

SCHEMATIC:

I originally designed the schematics in diptrace but since fritzing is a more common software so i remade the design in it , but still most of the components are not there so I have attached a handmade schematic of these.

I have also attached the schematic file below . Download it!!!

ASSEMBLY:-

Again as per the schematic I placed and wired all the components on a veroboard.

Again I won't go in detail in this topic as it is pretty straight forward.

I also designed the case / Body for the receiver in the FUSION 360. head on to Step 9 for more.

Step 7: TESTING THE TRANSMITTER AND RECEIVER

Firstly open the jumper(power) as named in schematic on the transmitter so that our PC can power the board .

also make sure that the transmitter is switched on.

Open ARDUINO IDE and install the RF24 library for nrf24l01+ module .

I have attached the zip file for the library.

This library is made by "maniac bug".

After installing the library restart Arduino IDE and run the sketch that i have attached below.

open serial monitor and you will see the details of the nrf24l01+ module. Make sure you have selected correct baud rate If you see a lot of zeroes than it means you have made wrong connections. this sketch will tell you the nrf24l01+ module specs such as transmit address ,receiver address , crc length , data rate and etc.

After conforming that your connections are right.

Do the same procedure for the receiver but unlike the transmitter there is no need of removing the jumper just connect the receiver to PC using FTDI breakout board and power the nrf24l01+ module with 3.3v source.

Make sure that the sx1308 output voltage is set to 5v or you will fry your board.

We have used this because we need to increase the Li ion 3.7v nominal voltage to 5v.

also make sure that the output voltage from lm317t should be 3v to 3.3v or you will fry nrf24l01+ module

Step 8: PROGRAMMING THE SYSTEM

After conforming that your both transmitter and receiver are working , upload the sketches that i have attached below To both the units

You can attach leds on the receiver side to test that your transmitter is sending data or not .

Or you can connect the receiver to PC and monitor the data on Serial monitor as sent by the transmitter.

The code is fully commented and can easily be modified for a specific use.

The code attached is fairly basic and just transmits the joystick and switch data to the receiver.

But this is just a Start , I didn't want to make it complex for you as it may be a first project for you.

Try to understand the code and modify according to your needs.

For CAD FILES Head on to Next Step.

Step 9: Designing the Case

I Chose to use FUSION 360 as the software is free to use and is very easy to use.I would have used Solid Works but that software is not freeware and is bit complex for beginners.

So for the transmitter I gathered the circuit and figured where each component would go and started modelling the case for the same.

I designed the transmitter case in two parts.

I also wanted that the joystick should have position hold feature so it remains at that position even if i have removed my thumb from it.

but unfortunately I had centre return joystick which means they will return to centre as i removed my thumb.

So to accomplish this i made joystick spacers.

You can achieve position hold feature just by tightening the four screws at the back of joystick spacer.

I secured the joystick PCB to the joystick spacer using hot glue.

For the receiver:-

The receiver on the other hand had a very simple design which is also made in two parts. I made cutouts in design so that i can connect the arduino pins to other components .

Also I made sure that the PCB antenna is out from the body of the receiver.

It has three threaded holes to assemble the case as well as they can be use for mounting it in any of the robots or any other thing.

I have also attached the pictures of assembling the case for the both the units so that you can easily understand where each components goes.

Also the led on transmitter glows when it is transmitting the data.

and the corresponding led on the receiver glows till the connection is there as soon the range is exceeded than the receiver light turns off.

Also the whole transmitter can be charged with a smartphone charger as i have added TP4056 charging module that takes cares of charging the li-ion cell.

Step 10: FABRICATING THE CASE

As I own a cheap Anet A8 3d printer I used that to make all the parts of the build.

I used e-sun Pla+ black and orange filament for the build.

For slicing the stl files I used simplify 3d as a slicing software .

Following are my print Settings:-

  • layer Height = 0.200 mm
  • Infill = 25%
  • with no supports required.

To achieve a honeycomb pattern I changed the setting of (no. of bottom layer to zero ) and choose fast honeycomb Infill for that .

I have also attached single gcode file for all parts for my printer you can use it If you have similar printer like mine

Also here are the stl files for all the models.

Step 11: END

So Here you have it your very own remote control system .

I hope you learned something from this instructable.

Please vote for me If you liked this instructable.

Also like , share and comment in the comment box below.

Also if you want more details in any topic, Please let me know.!!!

let me know if you face any problem in the comment section below or you can contact on my email Id

vermahardiq@gmail.com

THANKS

Microcontroller Contest 2017

Participated in the
Microcontroller Contest 2017