1. Introduction
In this project, we will build an Arduino RF Controlled Car using a 433MHz RF transmitter and receiver module. Unlike Bluetooth-controlled cars, this system uses a dedicated wireless remote, making it more suitable for long-range and low-power applications.
This project is ideal for students and beginners who want to learn wireless communication, motor control, and robotics using Arduino.
2. Components
🔹 Transmitter Side
- Arduino Nano / Uno
- RF Transmitter (433 MHz)
- Push Buttons (4 or 5)
- 10k Resistors (Pull-down)
- Breadboard
- Battery
🔹 Receiver Side (Car)
- Arduino Nano / Uno
- RF Receiver (433 MHz)
- L298N Motor Driver
- 2 DC Motors + Wheels
- Robot Chassis
- Castor Wheel/ or 2 more real toy car wheel + motor
- Battery (7.4V / 12V)
- Jumper Wires
3. Circuit and Connections
| Button connection for one button shown similarly Add other buttons also |
| Pinout Diagram |
🔸 Transmitter Connections
- RF Transmitter DATA → Arduino Pin D12
- Button 1 → Arduino Pin D2 (Forward)
- Button 2 → Arduino Pin D3 (Backward)
- Button 3 → Arduino Pin D4 (Left)
- Button 4 → Arduino Pin D5 (Right)
- All buttons → GND through resistor
🔸 Receiver Connections
- RF Receiver DATA → Arduino Pin D11
🔸 L298N Motor Driver
- IN1 → D6
- IN2 → D7
- IN3 → D8
- IN4 → D9
- Motor A → Left Motor
- Motor B → Right Motor
- Battery → Motor Driver
4. Circuit Working
When a button is pressed on the transmitter side, a signal is sent through the RF transmitter. The RF receiver on the car receives this signal and passes it to the Arduino.
The Arduino processes the signal and controls the motors through the L298N motor driver:
- Forward → Both motors forward
- Backward → Both motors reverse
- Left → Left motor stop, right motor forward
- Right → Right motor stop, left motor forward
5. Code
🔹 Transmitter Code
#include <VirtualWire.h>
void setup() {
vw_setup(2000);
vw_set_tx_pin(12);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
}
void loop() {
char *msg;
if (digitalRead(2)) msg = "F";
else if (digitalRead(3)) msg = "B";
else if (digitalRead(4)) msg = "L";
else if (digitalRead(5)) msg = "R";
else msg = "S";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
delay(200);
}
🔹 Receiver Code
#include <VirtualWire.h>
char msg[2];
void setup() {
vw_setup(2000);
vw_set_rx_pin(11);
vw_rx_start();
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message((uint8_t *)msg, &buflen)) {
if (msg[0] == 'F') forward();
else if (msg[0] == 'B') backward();
else if (msg[0] == 'L') left();
else if (msg[0] == 'R') right();
else stopMotor();
}
}
void forward() {
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
}
void backward() {
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
}
void left() {
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
}
void right() {
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
void stopMotor() {
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
6. Code Working
- The transmitter Arduino reads button inputs and sends a character (
F, B, L, R, S) using RF module. - The receiver Arduino listens continuously for incoming data.
- When a command is received, it calls the respective function:
forward()→ moves car forwardbackward()→ reverseleft()/right()→ turningstopMotor()→ stops the car
The VirtualWire library is used for RF communication.
7. Tips
✔ Use external battery for motors (don’t power from Arduino)
✔ Keep antennas (~17 cm wire) for better range
✔ Avoid noise by keeping modules away from motors
✔ Use proper grounding
✔ For better reliability, use encoder/decoder ICs (HT12E/HT12D)
8. Uses
- Wireless robot cars
- Remote-controlled vehicles
- Industrial wireless control systems
- Home automation systems
- Robotics learning projects
9. Conclusion
The Arduino RF Controlled Car is an excellent project to understand wireless communication and robotics. It demonstrates how data can be transmitted over air and used to control real-world devices.
This project can be further enhanced by adding sensors, camera modules, or IoT capabilities.