ardumotive
Published © CC BY-NC-SA

Arduino Bluetooth RC Car

This is our new Bluetooth RC car - based on our favorite Arduino Uno!

BeginnerFull instructions provided5,136
Arduino Bluetooth RC Car

Things used in this project

Hardware components

ATmega328
Microchip ATmega328
×1
28 pin dip socket
×1
16 pin dip socket
×2
Dual H-Bridge motor drivers L293D
Texas Instruments Dual H-Bridge motor drivers L293D
or SN754410 .
×1
16 MHz Crystal
16 MHz Crystal
×1
Capacitor 10 µF
Capacitor 10 µF
×1
Ceramic Disc Capacitor, 22 pF
Ceramic Disc Capacitor, 22 pF
×2
Resistor 10k ohm
Resistor 10k ohm
×1
Buzzer
Buzzer
×1
HC-06 Bluetooth Module
or HC-05
×1
screw terminal 2P 2.54mm
×4
Pin header 1x5 Female
×1
Pin header 1x40 Male
×1
Arduino USB 2 Serial micro
Arduino USB 2 Serial micro
You will also need a TTL to USB module or an Arduino UNO board for the programming procedure.
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires

Story

Read more

Schematics

PCB Schematic

Order it from pcbway.com and get 10pcs PCB for free! Instructions on how to order it can be found in the video that we have in first step.
You can also make your changes here: https://easyeda.com/mi.vasilakis/My_PCB-9fb30c4a0c7e459cb9484f305015f0c8

Circuit Schematic

Code

Arduino Bluetooth Car

C/C++
Connect your circuit with the TTL to USB module with 5 cables to the programming header or insert the atmega328 IC to your Arduino UNO board and upload the code! (after the programming procedure remove it and install it again to our custom pcb board).
/* Arduino Bluetooth Car<br> * Created by Vasilakis Michalis // updated: 31/7/2019
 * More information at www.ardumotive.com
 */
#include 
//Software serial connection for bt module
SoftwareSerial btSerial(A2,A3); // RX & TX

//L293 Connection   
const int motorA1  = 5;  // Pin  2 of L293
const int motorA2  = 3;  // Pin  7 of L293
const int motorB1  = 11; // Pin 10 of L293
const int motorB2  = 10;  // Pin 14 of L293
//Leds connected to Arduino UNO Pin 12
const int front_lights  = 8;
const int back_lights = 7;
//Buzzer / Speaker to Arduino UNO Pin 3
const int buzzer = 2 ;   

//Useful Variables
int i=0;
int j=0;
char state;

void setup() {
  // Initialize serial communication at 9600 bits per second:
  btSerial.begin(9600);
  Serial.begin(9600); // Only for debugging
  // Set pins as outputs:
  pinMode(motorA1, OUTPUT);
  pinMode(motorA2, OUTPUT);
  pinMode(motorB1, OUTPUT);
  pinMode(motorB2, OUTPUT);
  pinMode(front_lights, OUTPUT);
  pinMode(back_lights, OUTPUT);
  delay(500);
  //Stop all motors
  digitalWrite(motorA1, LOW);
  digitalWrite(motorA2, LOW);
  digitalWrite(motorB1, LOW);
  digitalWrite(motorB2, LOW);
}
 
void loop() {
  //Save income data to variable 'state'
    if(btSerial.available() > 0){     
      state = btSerial.read(); 
      Serial.println(state);  
    }	  
  /***********************Forward****************************/
  //If state is equal with letter 'F', car will go forward!
    if (state == 'F') {
    	digitalWrite(motorA1, HIGH); digitalWrite(motorA2, 0);
      digitalWrite(motorB1, 0);      digitalWrite(motorB2, 0); 
      Serial.println("Moving Forward");
    }
  /**********************Forward Left************************/
  //If state is equal with letter 'G', car will go forward left
    else if (state == 'G') {
    	digitalWrite(motorA1, HIGH); digitalWrite(motorA2, 0);  
      digitalWrite(motorB1, HIGH);    digitalWrite(motorB2, 0);
      Serial.println("Moving Forward Left"); 
    }
  /**********************Forward Right************************/
  //If state is equal with letter 'I', car will go forward right
    else if (state == 'I') {
      digitalWrite(motorA1, HIGH); digitalWrite(motorA2, 0); 
      digitalWrite(motorB1, 0);      digitalWrite(motorB2, HIGH); 
      Serial.println("Moving Forward Right");
    }
  /***********************Backward****************************/
  //If state is equal with letter 'B', car will go backward
    else if (state == 'B') {
    	digitalWrite(motorA1, 0);   digitalWrite(motorA2, HIGH); 
      digitalWrite(motorB1, 0);   digitalWrite(motorB2, 0); 
      Serial.println("Moving Backward");
    }
  /**********************Backward Left************************/
  //If state is equal with letter 'H', car will go backward left
    else if (state == 'H') {
    	digitalWrite(motorA1, 0);   digitalWrite(motorA2, HIGH); 
      digitalWrite(motorB1, HIGH); digitalWrite(motorB2, 0);
      Serial.println("Moving Backward Left"); 
    }
  /**********************Backward Right************************/
  //If state is equal with letter 'J', car will go backward right
    else if (state == 'J') {
    	digitalWrite(motorA1, 0);   digitalWrite(motorA2, HIGH); 
      digitalWrite(motorB1, 0);   digitalWrite(motorB2, HIGH); 
      Serial.println("Moving Backward Right");
    }
  /***************************Left*****************************/
  //If state is equal with letter 'L', wheels will turn left
    else if (state == 'L') {
    	digitalWrite(motorA1, 0);   digitalWrite(motorA2, 0); 
      digitalWrite(motorB1, HIGH); digitalWrite(motorB2, 0); 
      Serial.println("Turn Left");
    }
  /***************************Right*****************************/
  //If state is equal with letter 'R', wheels will turn right
    else if (state == 'R') {
    	digitalWrite(motorA1, 0);   digitalWrite(motorA2, 0); 
      digitalWrite(motorB1, 0);   digitalWrite(motorB2, HIGH); 
      Serial.println("Turn Right");		
    }
  /************************Lights*****************************/
  //If state is equal with letter 'W/w', turn front leds on or of off
    else if (state == 'W') {
      digitalWrite(front_lights, HIGH); 
      Serial.println("Turning front lights ON");
    }
    else if (state == 'w') {
      digitalWrite(front_lights, LOW); 
      Serial.println("Turning front lights OFF");
    }
  /************************Lights*****************************/
  //If state is equal with letter 'U/u', turn back leds on or of off
    else if (state == 'U') {
      digitalWrite(back_lights, HIGH); 
      Serial.println("Turning rear lights ON");
    }
    else if (state == 'u') {
      digitalWrite(back_lights, LOW); 
      Serial.println("Turning rear lights OFF");
    }  
  /**********************Horn sound***************************/
  //If state is equal with letter 'V', play (or stop) horn sound
    else if (state == 'V'){
      tone(buzzer,500);
      Serial.println("Playing horn sound");
    }
    else if (state == 'v'){
      noTone(buzzer);
      Serial.println("Stop playing horn sound");
    }
  /************************Stop*****************************/
  //If state is equal with letter 'S', stop the car
    else if (state == 'S'){
        digitalWrite(motorA1, 0);  digitalWrite(motorA2, 0); 
        digitalWrite(motorB1, 0);  digitalWrite(motorB2, 0);
        Serial.println("STOP");
    }  
}

Credits

ardumotive

ardumotive

1 project • 4 followers

Comments