Build A Simple Arduino RC Boat That Can Be Contro
Build A Simple Arduino RC Boat That Can Be Contro
MHz RF Modules
Published
Published July 3, 2021 0
RAJESH (/users/rajesh-2)
Author
These types of RF modules (https://circuitdigest.com/tags/rf) are very popular among makers. Because of their low cost and
simplicity in connections. These modules are best for all forms of short-range communication projects. These modules are
ASK (Amplitude Shift Keying) type RF modules, Amplitude-shift keying (ASK) is a form of amplitude modulation that
represents digital data as variations in the amplitude of a carrier wave. In an ASK system, the binary symbol 1 is represented
by transmitting a fixed-amplitude carrier wave and fixed frequency for a bit duration of T seconds. If the signal value is 1, then
the carrier signal will be transmitted; otherwise, a signal value of 0 will be transmitted. That means they usually draw no
power when transmitting Logic “zero”. This low power consumption makes them very useful in battery-operated projects.
433MHZ RF Transmitter
This type of module is super tiny and comes with 3 pins VCC, ground, and data. Some other modules come with an extra
antenna pin. The working voltage of the transmitter module is 3V-12V and this module doesn't have any adjustable
components. One of the major advantages of this module is the low current consumption, it requires almost zero current to
send bit zero.
In the above circuit, you can see one side of all four pushbuttons connected to four digital pins of Arduino (D6-D9) and all the
four other sides connected to the ground. That is when we press the button, the corresponding digital pins get a logic low. The
four parallel inputs of the HT12E encoder connected to another four digital pins of Arduino (D2-D5). So with the help of
Arduino, we can decide the input of the encoder.
And talking about encoder HT12E is a 12-bit encoder and a parallel input-serial output encoder
encoder. Out of 12 bits, 8-bits
are address bits that can be utilized for controlling multiple receivers. The pins A0-A7 are the address input pins. In this
project, we are controlling only one receiver, so we don't want to change its address, so I connected all address pins to the
ground. If you want to control different receivers with one transmitter, you can use dip switches here. AD8-AD11 are the
control bit inputs. These inputs will control the D0-D3 outputs of the HT12D decoder. We need to connect an oscillator for
the communication and the oscillator frequency should be 3KHz for 5V operation. Then the resistor value will be 1.1MΩ
for 5V. Then I connected the output of the HT12E to the transmitter module. We already mentioned, the Arduino and rf
transmitter module, both of these devices work on 5V high voltage will kill it, so to avoid this, I added the 7805, voltage
regulator. Now we can connect (Vcc) 6-12volt any type batteries to input.
The above image shows the top view of the completed RC Boat transmitter circuit and the Bottom view of the completed RC
Boat Transmitter circuit is shown below.
Building the Arduino RC Boat Transmitter Enclosure
A decent body is necessary for the remote. This step is all about your ideas, you can create a remote body with your ideas. I am
explaining how I made this. For making a remote body, I choose 4mm MDF sheets, you can also choose plywood, foam sheet,
or cardboard, then I cut two pieces from that with a length of 10cm and breadth of 5cm. Then I marked the positions for the
buttons. I placed the direction buttons on the left side and forward, backward buttons on right. On the other side of the sheet,
I connected the push buttons to the main transmitting circuit. Remember a normal pushbutton has 4 pins that are two pins for
each side. Connect one pin to Arduino and the other pin to the ground. If you are confused with that, please check it with a
multimeter or check the datasheet.
After connecting all these things, I placed the control circuit in between the two MDF boards and tighten with some long bolt
(please refer to the below images if you want). Once again creating a good body is all about your ideas.
433Mhz Receiver Module
This receiver also very tiny and comes with 4 pins VCC, ground, and the two middle pins are data out. The working voltage of
this module is 5v. Like the transmitter module, this is also a low power module. Some modules come with an extra antenna pin
but in my case, that is not present.
A7C 11
VSSI9 10⼝D8
To control motors, I used the L293D IC, I choose this IC because to decrease the size and weight and this IC is best for
controlling two motors in two directions. L293D has 16 pins, the below diagram shows the pinouts.
1, 9 pins are the enable pin, we connect that to 5 v to enable motors 1A, 2A, 3A, and 4A are the control pins. The motor will
turn to the right if the pin 1A goes low and 2A goes high, and the motor will turn to the left if 1A goes low and 2A high. So we
connected these pins to the output ps of the decoder. 1Y, 2Y, 3Y, and 4Y are the motor connection pins. Vcc2 is the motor
driving voltage pin, if you are using a high voltage motor, then you connect this pin to the corresponding voltage source.
So same as in the transmitter circuit, solder every component in a small common PCB and try to use minimum wires. I
connected pin 8 of the motor driver to 5v because I am using 5V motors.
Building the RC-BOAT
I tried different materials to build the boat body. And I got a better result with thermocol sheet. So I decided to build the body
with thermocol. First, I took a 3cm thick thermocol piece and place the receiver circuit on top, then I marked the shape of the
boat in thermocol and cut. So this is my way to build the boat, you can build according to your ideas.
Forward
Forward movement
movement: If both the left and right motors rotate to clockwise that will forward movement
Backward
Backward movement
movement: If both the left and right motors to rotate counterclockwise(that is propeller sucks air from the
backside and exhaust to the front side )that will make backward movement
Left
Left movement:
movement: If only the right motor rotates that is boat get only drag from the right side that will the boat to move to
the left side
Right
Right movement
movement: If only the left motor rotates that is boat gets only drag from the left side that will make the boat move to
the right side.
We connected the motors driver's input to four output bits of the decoder(D8-D11). we can control these 4 outputs by
connecting the AD8-AD11 to the ground that is the buttons in the remote. For example, if we connect AD8 to the ground that
will activate the D8. So such a way we can control the two motors in two directions using these 4 outputs. But we can't control
two motors by just one button (we need that for forward and backward movement) that's why we used the Arduino. With
help of Arduino, we can select the input data pins as our wish.
Arduino Programming of the RC Boat
The programming of this boat is very simple because we want only some logic switching. And we can achieve everything with
basic Arduino functions. The complete program for this project can be found at the bottom of this page. The explanation of
your program is as follows
We start the program by defining the integers for four input buttons and decoder inputs pins.
int f_button = 9;
int b_button = 8;
int l_button = 7;
int r_button = 6;
int m1=2;
int m2=3;
int m3=4;
int m4=5;
In the setup section, I defined the pin modes. That is, the buttons are connected to digital pins so these pins should define as
input and we need to get output for the input of the decoder so we should define those pins as output.
pinMode(f_button,INPUT_PULLUP);
pinMode(b_button,INPUT_PULLUP);
pinMode(l_button,INPUT_PULLUP);
pinMode(r_button,INPUT_PULLUP);
pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
Next in the main loop function, we will read the button status using the digitalread
digitalread function of Arduino. If the pin status goes
low that means the corresponding pin is pressed then we will execute the conditions as like follows-
if ( digitalRead(f_button)==LOW)
{
digitalWrite(m1, LOW);
digitalWrite(m3, LOW);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
}
This will pulldown m1 and m2 of the encoder this will activate both motors on the receiver side. Similarly, for backward
movement
{
digitalWrite(m1, HIGH);
digitalWrite(m3, HIGH);
digitalWrite(m2, LOW);
digitalWrite(m4, LOW);
}
{
digitalWrite(m1, HIGH);
digitalWrite(m3, LOW);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
}
Troubleshooting
Troubleshooting: Place the boat on the water surface and check whether it is moving correctly if not try to change the
polarity of motors and propellers. Also, try to balance weight.
The complete working of the project can be found in the video linked at the bottom of this page. If you have any questions
leave them in the comment section.
Code
int f_button = 9;
int b_button = 8;
int l_button = 7;
int r_button = 6;
int m1 = 2;
int m2 = 3;
int m3 = 4;
int m4 = 5;
void setup () {
pinMode(f_button, INPUT_PULLUP);
pinMode(b_button, INPUT_PULLUP);
pinMode(l_button, INPUT_PULLUP);
pinMode(r_button, INPUT_PULLUP);
pinMode(m1, OUTPUT);
pinMode(m2, OUTPUT);
pinMode(m3, OUTPUT);
pinMode(m4, OUTPUT);
}
void loop() {
if ( digitalRead(f_button) == LOW)
{
digitalWrite(m1, LOW);
digitalWrite(m3, LOW);
digitalWrite(m2, HIGH );
digitalWrite(m4, HIGH);
}
if ( digitalRead(b_button) == LOW)
{
digitalWrite(m2, LOW);
digitalWrite(m4, LOW);
digitalWrite(m1, HIGH);
digitalWrite(m3, HIGH);
}
if ( digitalRead(l_button) == LOW)
{
digitalWrite(m1, LOW);
digitalWrite(m2, HIGH);
digitalWrite(m3, HIGH);
digitalWrite(m4, HIGH);
Video
Tags
Log in (/user/login?destination=/microcontroller-projects/simple-arduino-rc-boat-that-can-be-controlled-wirelessly-using-
rf-module%23comment-form) or register (/user/register?destination=/microcontroller-projects/simple-arduino-rc-boat-
that-can-be-controlled-wirelessly-using-rf-module%23comment-form) to post comments
1557 Series Modern-Style IP68 Enclosures for Harsh Environments (https://bit.ly/45s6gGh )
Watertight plastic enclosures with modern rounded look available in ABS and polycarbonate plastic
(https://bit.ly/45s6gGh )
(https://bit.ly/3ZiLpBV )
(https://bit.ly/3OQBS1b )
(https://bit.ly/45d1ewz )
(https://bit.ly/3PXmhik )
(https://bit.ly/45p13Pn )
(https://bit.ly/3rzvmV5 )
JJooi
oiin
n 110
00
00K
0 K ++ SSubs
ub sc
cri
c ri bbe
ers
rs
Your email is safe with us, we don’t spam.
(https://www.facebook.com/circuitdigest/) (https://twitter.com/CircuitDigest)
(https://www.youtube.com/channel/UCy3CUAIYgZdAOG9k3IPdLmw) (https://www.linkedin.com/company/circuit-
digest/)
COMPANY
COMPANY
Privacy Policy (/privacy-policy) Cookie Policy (/cookie-policy) Terms of Use (/terms-of-use) Contact
PROJECT
PROJECT
555 Timer Circuits (/555-timer-circuits) Op-amp Circuits (/op-amp-circuits) Audio Circuits (/audio-
OUR
OUR NETWORK
NETWORK
(https://circuitdigest.com)
(https://components101.com)
(https://iotdesignpro.com)