Introduction: ARDUINO AND NRF24L01+ BASED RF TRANSMITTER AND RECEIVER

Picture of ARDUINO AND NRF24L01+ BASED RF TRANSMITTER AND RECEIVER

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

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Comments

skitcher1101 (author)2017-06-26

How do you use the reciever with motors? Also, how much did this cost you in total?

HardiqV (author)skitcher11012017-06-26

for using it for controlling motors you need motor driver which can take the signals from receiver and drive the motors . you can google it you will find some.

the total cost of the project was somewhat near to 15$

skitcher1101 (author)HardiqV2017-07-27

how do you connect a motor driver?

skitcher1101 (author)HardiqV2017-06-27

do you know how to connect motor drivers ?

skitcher1101 (author)2017-06-26

will arduino uno work instead of pro micro?

HardiqV (author)skitcher11012017-06-26

first of all it is not pro micro but instead it is pro mini .

and any arduino will work.

I chose arduino pro mini due to it's small size.

oh nvm

davidex720 (author)2017-04-12

fantastic project! I actually want to build something similar. What's the max range you can have? And what about the max number of different channels

davidex720 (author)davidex7202017-04-12

*what about the max number of independent channels?

HardiqV (author)davidex7202017-04-12

I got a range of about 90-100m line of sight that too in open area

HardiqV (author)HardiqV2017-04-12

As per the library it says that you can have up to 126 channels

Swansong (author)2017-04-11

That looks really good :)

HardiqV (author)Swansong2017-04-11

Thanks Swansong

About This Instructable

2,371views

61favorites

License:

Bio: 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 ... More »
More by HardiqV:Awesome 3D Printed Bluetooth SpeakerAwesome SpiderMan FIdget SpinnerAwesome SpiderMan Fidget Spinner
Add instructable to: