Arduino Based Serial Transmitter
by _Robox_ in Circuits > Arduino
1381 Views, 7 Favorites, 0 Comments
Arduino Based Serial Transmitter
Commercially available transmitter and receiver pairs are usually PPM or PWM based. Using them with any microcontroller is problematic as you require a lot of pins and hence isn't that efficient. Using Serial modules like Xbee or HC-05 can solve this issue but will have less range as compared to the commercial PWM/PPM RF pairs, hence cant be used for applications like drones or UAV. To solve this, we can use NRF24l01+ (PA+LNA) module which theoretically provides a huge range of 1100m (700m+ in ideal conditions) along with Arduino to make a versatile commercial Like Transmitter which can be configured to send almost everything! This design was made considering these problems.
This project was also featured in Altium Stories. Gerber Files for my PCBs will be available on my Patreon page, subscribe to support my work.
Features of the design:
- Arduino Pro mini based
- NRF24l01 + PA +LNA as RF
- 2 Joysticks (4 analog inputs)
- 12 Digital buttons
- 2 buttons for Menu settings
- OLED for user interface
- 2 74LS151 Multiplexers
- HC-05 Compatible
- 2 Toggle Switches
- Powered by any 2S lipo/li-ion battery pack
Designing the PCBs Using Altium Designer
I design all my PCBs using Altium Designer.
The idea was to design a transmitter similar to the commercial ones, hence to avoid more number of pins being used for buttons, Multiplexers are used to get input of 14 buttons in total. Two different AMS1117-3.3V are used to power the Arduino and NRF24 module separately as NRF24 modules are fussy regarding power. Design also includes headers to attach HC-05 module and communicate using UART.
Gerber files can be generated once the design is done and can be used to order your own PCB.
Design screenshots can be seen here.
Ordering the PCBs From PCBWay
PCBs for this project were downloaded from PCBWay, You can order your own PCBs from PCBWay or (click this)
link to buy my PCB design directly from the PCBWay website.
Instructions to order:
- Head on to www.pcbway.com and register to get your first PCB prototype for free! (Just pay for the shipping)
- Click on PCB instant quote and upload Gerber files.
- Select desired color and other settings, then add it to cart and order the PCBs
You'll receive PCBs fairly quickly depending on where you live. Time to solder!
Soldering All the Components
Design has a lot of SMD components, whcih should be soldered first. Video here demonstrates soldering a few components.
Testing the Multiplexers and NRF24l01+ Module
Multiplexers need to be tested individually before directly uploading the transmitter code. Snippet attached here is the test code for these multiplexers.
void updateMux(){ for(int i=0;i<8;i++){ digitalWrite(SEL0,HIGH && (i& B00000001)); digitalWrite(SEL1,HIGH && (i& B00000010)); digitalWrite(SEL2,HIGH && (i& B00000100)); Mux1_State[i]= !(digitalRead(MUX1_OUT)); }
NRF24 module however needs to be tested individually with basic RX-TX setup, files can be downloaded from my Github.
After setup works fine, Flashing the Arduino Pro Mini With Final Transmitter Code can be done. (Download the code here)
Make Anything You Could Think of Wireless!
Now we have a Serial transmitter that can replace any commercial transmitter, ideal for RC drones and RC cars or any other Arduino NRF24 based system!