Circuit Documentation
Summary
This document provides a detailed overview of a Bluetooth-controlled car circuit. The circuit consists of an Arduino UNO microcontroller, an L298N DC motor driver, an HC-05 Bluetooth module, a 12V battery, and four motor and wheel assemblies. The Arduino UNO is programmed to control the motors based on commands received via Bluetooth.
Component List
L298N DC Motor Driver
- Description: A dual H-Bridge motor driver that allows control of the speed and direction of two DC motors.
- Pins: OUT1, OUT2, 12V, GND, 5V, OUT3, OUT4, 5V-ENA-JMP-I, 5V-ENA-JMP-O, +5V-J1, +5V-J2, ENA, IN1, IN2, IN3, IN4, ENB
Arduino UNO
- Description: A microcontroller board based on the ATmega328P, used for various embedded applications.
- Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0
HC-05 Bluetooth Module
- Description: A Bluetooth module used for wireless communication between the Arduino and a Bluetooth-enabled device.
- Pins: EN, VCC, GND, TXD, RXD, STATE
12V Battery
- Description: A power source providing 12V DC.
- Pins: +, -
Motor and Wheels (4 units)
- Description: DC motors with attached wheels used for driving the car.
- Pins: vcc, GND
Wiring Details
L298N DC Motor Driver
- OUT1: Connected to the vcc pin of two motor and wheel assemblies.
- OUT2: Connected to the GND pin of the same two motor and wheel assemblies.
- 12V: Connected to the + pin of the 12V battery.
- GND: Connected to the GND pin of the Arduino UNO and the - pin of the 12V battery.
- 5V: Connected to the Vin pin of the Arduino UNO.
- OUT3: Connected to the GND pin of the other two motor and wheel assemblies.
- OUT4: Connected to the vcc pin of the same two motor and wheel assemblies.
- ENA: Connected to the D6 pin of the Arduino UNO.
- IN1: Connected to the D4 pin of the Arduino UNO.
- IN2: Connected to the D7 pin of the Arduino UNO.
- IN3: Connected to the D8 pin of the Arduino UNO.
- IN4: Connected to the D9 pin of the Arduino UNO.
- ENB: Connected to the D5 pin of the Arduino UNO.
Arduino UNO
- GND: Connected to the GND pin of the L298N DC motor driver and the - pin of the 12V battery.
- Vin: Connected to the 5V pin of the L298N DC motor driver.
- D6: Connected to the ENA pin of the L298N DC motor driver.
- D4: Connected to the IN1 pin of the L298N DC motor driver.
- D7: Connected to the IN2 pin of the L298N DC motor driver.
- D8: Connected to the IN3 pin of the L298N DC motor driver.
- D9: Connected to the IN4 pin of the L298N DC motor driver.
- D5: Connected to the ENB pin of the L298N DC motor driver.
- 5V: Connected to the VCC pin of the HC-05 Bluetooth module.
- GND: Connected to the GND pin of the HC-05 Bluetooth module.
- D1: Connected to the RXD pin of the HC-05 Bluetooth module.
- D0: Connected to the TXD pin of the HC-05 Bluetooth module.
HC-05 Bluetooth Module
- VCC: Connected to the 5V pin of the Arduino UNO.
- GND: Connected to the GND pin of the Arduino UNO.
- RXD: Connected to the D1 pin of the Arduino UNO.
- TXD: Connected to the D0 pin of the Arduino UNO.
12V Battery
- +: Connected to the 12V pin of the L298N DC motor driver.
- -: Connected to the GND pin of the L298N DC motor driver and the GND pin of the Arduino UNO.
Motor and Wheels
- Motor 1 (vcc): Connected to the OUT1 pin of the L298N DC motor driver.
- Motor 1 (GND): Connected to the OUT2 pin of the L298N DC motor driver.
- Motor 2 (vcc): Connected to the OUT1 pin of the L298N DC motor driver.
- Motor 2 (GND): Connected to the OUT2 pin of the L298N DC motor driver.
- Motor 3 (vcc): Connected to the OUT4 pin of the L298N DC motor driver.
- Motor 3 (GND): Connected to the OUT3 pin of the L298N DC motor driver.
- Motor 4 (vcc): Connected to the OUT4 pin of the L298N DC motor driver.
- Motor 4 (GND): Connected to the OUT3 pin of the L298N DC motor driver.
Documented Code
//Arduino Bluetooth Controlled Car
//Before uploading the code you have to install the necessary library
//Note - Disconnect the Bluetooth Module before hitting the upload button otherwise you'll get a compilation error message.
//AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install
//After downloading the library open Arduino IDE >> go to sketch >> Include Library >> ADD. ZIP Library >> Select the downloaded
//ZIP File >> Open it >> Done
//Now You Can Upload the Code without any problem but make sure the bt module isn't connected with Arduino while uploading code
#include <AFMotor.h>
//initial motors pin
AF_DCMotor motor1(1, MOTOR12_1KHZ);
AF_DCMotor motor2(2, MOTOR12_1KHZ);
AF_DCMotor motor3(3, MOTOR34_1KHZ);
AF_DCMotor motor4(4, MOTOR34_1KHZ);
char command;
void setup()
{
Serial.begin(9600); //Set the baud rate to your Bluetooth module.
}
void loop(){
if(Serial.available() > 0){
command = Serial.read();
Stop(); //initialize with motors stopped
//Change pin mode only if new command is different from previous.
//Serial.println(command);
switch(command){
case 'F':
forward();
break;
case 'B':
back();
break;
case 'L':
left();
break;
case 'R':
right();
break;
}
}
}
void forward()
{
motor1.setSpeed(255); //Define maximum velocity
motor1.run(FORWARD); //rotate the motor clockwise
motor2.setSpeed(255); //Define maximum velocity
motor2.run(FORWARD); //rotate the motor clockwise
motor3.setSpeed(255);//Define maximum velocity
motor3.run(FORWARD); //rotate the motor clockwise
motor4.setSpeed(255);//Define maximum velocity
motor4.run(FORWARD); //rotate the motor clockwise
}
void back()
{
motor1.setSpeed(255); //Define maximum velocity
motor1.run(BACKWARD); //rotate the motor anti-clockwise
motor2.setSpeed(255); //Define maximum velocity
motor2.run(BACKWARD); //rotate the motor anti-clockwise
motor3.setSpeed(255); //Define maximum velocity
motor3.run(BACKWARD); //rotate the motor anti-clockwise
motor4.setSpeed(255); //Define maximum velocity
motor4.run(BACKWARD); //rotate the motor anti-clockwise
}
void left()
{
motor1.setSpeed(255); //Define maximum velocity
motor1.run(BACKWARD); //rotate the motor anti-clockwise
motor2.setSpeed(255); //Define maximum velocity
motor2.run(BACKWARD); //rotate the motor anti-clockwise
motor3.setSpeed(255); //Define maximum velocity
motor3.run(FORWARD); //rotate the motor clockwise
motor4.setSpeed(255); //Define maximum velocity
motor4.run(FORWARD); //rotate the motor clockwise
}
void right()
{
motor1.setSpeed(255); //Define maximum velocity
motor1.run(FORWARD);
