0% found this document useful (0 votes)
8 views

Build A Simple Arduino RC Boat That Can Be Contro

Uploaded by

jason
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Build A Simple Arduino RC Boat That Can Be Contro

Uploaded by

jason
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

Build a Simple Arduino RC Boat that can be Controlled Wirelessly using 433

MHz RF Modules

Published
Published July 3, 2021 0

RAJESH (/users/rajesh-2)
Author

Arduino RC Boat using 433 MHz RF Modules

In this project, we will build a remote-controlled


remote-controlled Arduino
Arduino Air-Boat
Air-Boat that can be controlled wirelessly using the 433
433 MHz
MHz
RF
RF Radio
Radio Modules
Modules. We will control this boat using a homemade remote control by building our own 433 MHz transmitter
and a receiver module. In the case of remote-controlled devices or communication between two devices, we have a lot of
options like IR, Bluetooth, internet, RF, etc. When compared to IR communication, radio communications have some
advantages like more range and it doesn’t require a line of sight connection between the transmitter and receiver. Also, these
modules can do two ways of communication, meaning it can transmit and receive at the same time. So using this 433MHz RF
module, let’s build an Arduino RC Boat in this tutorial.

We have previously built many remote-controlled projects (https://circuitdigest.com/tags/remote-control) using these


433Mhz RF modules for either controlling a Robot like this RF controlled Robot (https://circuitdigest.com/electronic-
circuits/rf-controlled-robot-without-microcontroller) or for Home Automation applications to Control Home appliances
using RF (https://circuitdigest.com/electronic-circuits/rf-home-automation). Apart from using RF modules, we have also built
a Bluetooth Controlled Raspberry Pi Car (https://circuitdigest.com/microcontroller-projects/raspberry-pi-remote-controlled-
car) and a DTMF Mobile phone controlled Arduino Robot (https://circuitdigest.com/microcontroller-projects/dtmf-
controlled-robot-using-arduino)previously. You can also check out these projects if you are interested.

Components Required for Arduino RC Boat

433MHz transmitter and receiver


Arduino (any Arduino, to reduce the size I am using promini)
HT12E and HT12D
Push buttons- 4Nos
Resistors- 1mega ohm, 47k ohm
L293d Motor Driver
9V Battery (I am using a 7.4-volt battery)- 2Nos
7805 regulator- 2Nos
DC motors- 2Nos
Motor leaf or propellors(I am using homemade propellors)- 2Nos
.1uf capacitor- 2Nos
Common PCB

433MHz RF Transmitter and Receiver Modules

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.

Block Diagram of Arduino RC Boat Transmitter


In the above block diagram, there are four pushbuttons (Control Buttons), these pushbuttons are for controlling the direction
of the boat. We have four of them for forward, backward, left, and right. From the pushbuttons, we get logic for controlling the
boat but can’t directly connect to the encoder that's why we used the Arduino. You might think why I used Arduino here, it is
simply because we need to pull down two parallel data inputs of the encoder at the same time for a backward and forward
movement that can’t be achieved with just pushbuttons. Then the encoder encodes the coming parallel data to serial outputs.
Then we can transmit that serial data with the help of an RF transmitter.

Circuit Diagram of the Arduino RC Remote (Transmitter)


(/fullimage?i=inlineimages/u3/Arduino-RC-Remote-Circuit-Diagram.png)

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.

Building the RC BOAT Transmitter Circuit


I soldered every component on a common PCB. Remember we are working on an RF project so there are a lot of chances for
different types of interferences so connect all components very closely as much possible. It's better to use female pin headers
for Arduino and the transmitter module. Also, try to solder everything on the copper pads instead of using extra wires. Finally,
connect a small wire to the transmitter module that will help to increase the total range. Before connecting the Arduino and
transmitter module, double-check the voltage of the lm7805 output.

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.

Block Diagram of the Arduino RC Boat Receiver


The above block diagram describes the working of the RF receiver circuit. First, we can receive the transmitted signals using
the RF receiver module. The output of this receiver is serial data. But we can't control anything with this serial data that's why
we connected the output to the decoder. The decoder decodes the serial data to our original parallel data. In this section, we
don't require any microcontrollers, we can directly connect the outputs to the motor driver.

Circuit Diagram of Arduino RC Boat Receiver


(/fullimage?i=circuitdiagram_mic/Arduino-RC-Boat-Receiver-Circuit-Diagram.png)

The HT12D is a 12-bit decoder which is a serial input-parallel output decoder


decoder. The input pin of the HT12D will be
connected to a receiver that has a serial output. Among the 12-bits, 8 bits (A0-A7) are address bits and the HT12D will decode
the input if only it matches its current address. D8-D11 are the output bits. To match this circuit to the transmitter circuit, I
connected all the address pins to the ground. Data out of the module is the serial type and the decoder decodes this serial data
to original parallel data and we get out through D8-D11. To match the oscillation frequency should connect the 33-56k
resistor to oscillator pins. Led on the 17th pin indicates the valid transmission, it only lit after when the receiver connected to
a transmitter. The voltage input of the receiver is also 6-12 volts.
A0D 1 18 •VDD
A1 2 17 VT
A2 3 16 ⼝OSC1
A3 4 15 ⼝OSC2
A4L 14 •DIN
A5 13 ⼝D11
A6. 12 ⼝D10
⼝D9

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.

Building the Receiver Circuit of Arduino RC Boat


Before building the receiver circuit, you should remember some important things. The important one is the size and weight
because after building the circuit, we need to fix it on the boat. So if the weight increases, that will affect the buoyancy and
movement.

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.

Motors and Propellers for Arduino Air Boat


Once again weight matters. So choosing the correct motor is important, I choose 5volt, n20 type normal dc motors which is
small and weightless. To avoid the RF
RF interferences
interferences should connect 0.1uf capacitor parallel to motor inputs.
In the case of propellers, I made propellers using plastic sheets. You can buy propellers from the store or you can build your
own both will work just fine. To build the propellers, first, I took a small plastic sheet and cut two small pieces from it and I
bend the pieces with the help of candle heat. Finally, I put a small hole in its center for the motor and fixed to the motor that's
it.
Working of Arduino RC Boat
This boat has two motors lets call it left and right. If the motor moves to clockwise also (the position of the propellor also
depends) propellor sucks air from the front and exhaust to the backside. That generates forward drag.

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)

That means the forward button is pressed

{
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);
}

For left movement


{
digitalWrite(m1, LOW);
digitalWrite(m3, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
}

For right movement

{
digitalWrite(m1, HIGH);
digitalWrite(m3, LOW);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
}

After compiling the code, upload it to your Arduino board.

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

Wireless RC Air Boat using Arduino and 433Mhz RF Modules

Tags

Arduino (/Tags/Arduino) Arduino Pro Mini (/Tags/Arduino-Pro-Mini) RF (/Tags/Rf) L293D (/Tags/L293d)

Remote Control (/Tags/Remote-Control) Robotics (/Tags/Robotics)

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 )

LM-23B Series Enclosed Power Supplies (https://bit.ly/3ZiLpBV )


15-1500W high-EMC-performance AC/DC SMPS LM-23B features 85-305VAC wide input & 4000VAC isolation

(https://bit.ly/3ZiLpBV )

AQM Series Medical Power Supply (https://bit.ly/3OQBS1b )


200-300W ultra-compact medical external power supplies reduce volume by 50%

(https://bit.ly/3OQBS1b )

TE Connectivity Portable Crimp Tools (https://bit.ly/45d1ewz )


TE Connectivity portable crimp tools combine ease of use with quality, reliability, and precision

(https://bit.ly/45d1ewz )

Lynx™ Low-Profile Connectors (https://bit.ly/3PXmhik )


Lynx connector is a flexible 0.6 mm pitch solution designed for board-to-board applications

(https://bit.ly/3PXmhik )

G9KB Series High Power PCB DC Relay (https://bit.ly/3QZXHOz )


Omron's G9KB series supports high current applications with high capacity load ratings
(https://bit.ly/3QZXHOz )

MPronto-12 M12 Push-Pull Connectors (https://bit.ly/45p13Pn )


Amphenol LTW's push-pull plug is backward-compatible to all M12*1.0 threaded sockets

(https://bit.ly/45p13Pn )

PCI Express® Gen 4 and Gen 5 Card Edge Connectors (https://bit.ly/3rzvmV5 )


Capable of supporting up to 32 GT/s without altering design

(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.

Type your email address Subscribe

Be a part of our ever growing community.


Semicon Media is a unique collection of online media, focused purely on the Electronics Community across the
globe. With a perfectly blended team of Engineers and Journalists, we demystify electronics and its related
technologies by providing high value content to our readers.

(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

Us (/contact) Advertise (/advertise)

PROJECT
PROJECT

555 Timer Circuits (/555-timer-circuits) Op-amp Circuits (/op-amp-circuits) Audio Circuits (/audio-

circuits) Power Supply Circuits (/smps-power-supply-circuits) Arduino Projects (/arduino-projects)

Raspberry Pi Projects (/simple-raspberry-pi-projects-for-beginners) MSP430 Projects (/msp430-

projects) STM32 Projects (/stm32-projects-and-tutorials) ESP8266 Projects (/esp8266-projects)

PIC Projects (/pic-microcontroller-projects) AVR Projects (/avr-microcontroller-projects) 8051 Projects

(/8051-microcontroller-projects) ESP32 Projects (/esp32-projects) IoT Projects (/internet-of-things-

iot-projects) PCB Projects (/diy-pcb-projects) Arduino ESP8266 Projects (/arduino-esp8266-

projects) All Microcontroller Projects (/microcontroller-projects)

OUR
OUR NETWORK
NETWORK

(https://circuitdigest.com)
(https://components101.com)

(https://iotdesignpro.com)

Copyright © 2023 Circuit Digest (/). All rights reserved.

You might also like