Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
37 views

Bluetooth Control Car Using Arduino

This code controls a Bluetooth-enabled car. It uses an L293 motor driver and defines pins to control two motors independently. The car's movement is controlled by reading serial input and mapping single character commands like "F" for forward and "S" for stop to specific pin configurations and PWM signals to drive the motors in different combinations for motions like forward, backward, left, and right. Speed is also adjustable from 0-255 based on another serial input character.

Uploaded by

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

Bluetooth Control Car Using Arduino

This code controls a Bluetooth-enabled car. It uses an L293 motor driver and defines pins to control two motors independently. The car's movement is controlled by reading serial input and mapping single character commands like "F" for forward and "S" for stop to specific pin configurations and PWM signals to drive the motors in different combinations for motions like forward, backward, left, and right. Speed is also adjustable from 0-255 based on another serial input character.

Uploaded by

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

/*

* Project: Bluetooth Controlled Car


* https://www.youtube.com/channel/UCJFYG8rKSO-ZoM9awuwZU2A?view_as=subscriber

*/

//L293 Connection
const int motorA1 = 3;
const int motorA2 = 4;
const int motorAspeed = 5;
const int motorB1 = 7;
const int motorB2 = 8;
const int motorBspeed =6;

//Useful Variables
int state;
int vSpeed=200; // Default speed, from 0 to 255

void setup() {
// Set pins as outputs:
pinMode(motorA1, OUTPUT);
pinMode(motorA2, OUTPUT);
pinMode(motorB1, OUTPUT);
pinMode(motorB2, OUTPUT);

// Initialize serial communication at 9600 bits per second:


Serial.begin(9600);
}

void loop() {

if(Serial.available() > 0){


state = Serial.read();
}
Serial.println(state);
//Change speed if state is equal from 0 to 4. Values must be from 0 to 255 (PWM)
if (state == '0'){
vSpeed=0;}
else if (state == '1'){
vSpeed=100;}
else if (state == '2'){
vSpeed=180;}
else if (state == '3'){
vSpeed=200;}
else if (state == '4'){
vSpeed=255;}

/***********************Forward****************************/
//If state is equal with letter 'F', car will go forward!
if (state == 'F') {
digitalWrite (motorA1,LOW);
delay(1);
digitalWrite(motorA2,HIGH);
delay(1);

digitalWrite (motorB1,LOW);
delay(1);
digitalWrite(motorB2,HIGH);
analogWrite (motorAspeed, vSpeed);
analogWrite (motorBspeed, vSpeed);
}
/**********************Forward Left************************/
//If state is equal with letter 'I', car will go forward left
else if (state == 'I') {
digitalWrite (motorA1,LOW);
delay(1);
digitalWrite(motorA2,HIGH);
delay(1);

digitalWrite (motorB1,LOW);
delay(1);
digitalWrite(motorB2,HIGH);

analogWrite (motorAspeed, 0);


analogWrite (motorBspeed, vSpeed);
}
/**********************Forward Right************************/
//If state is equal with letter 'G', car will go forward right
else if (state == 'G') {
digitalWrite (motorA1,LOW);
delay(1);
digitalWrite(motorA2,HIGH);
delay(1);

digitalWrite (motorB1,LOW);
delay(1);
digitalWrite(motorB2,HIGH);

analogWrite (motorAspeed, vSpeed);


analogWrite (motorBspeed, 0);
}
/***********************Backward****************************/
//If state is equal with letter 'B', car will go backward
else if (state == 'B') {
digitalWrite (motorA1,HIGH);
delay(1);
digitalWrite(motorA2,LOW);
delay(1);

digitalWrite (motorB1,HIGH);
delay(1);
digitalWrite(motorB2,LOW);

analogWrite (motorAspeed, vSpeed);


analogWrite (motorBspeed, vSpeed);
}
/**********************Backward Left************************/
//If state is equal with letter 'J', car will go backward left
else if (state == 'J') {
digitalWrite (motorA1,HIGH);
delay(1);
digitalWrite(motorA2,LOW);
delay(1);

digitalWrite (motorB1,HIGH);
delay(1);
digitalWrite(motorB2,LOW);

analogWrite (motorAspeed, 0);


analogWrite (motorBspeed, vSpeed);
}
/**********************Backward Right************************/
//If state is equal with letter 'H', car will go backward right
else if (state == 'H') {
digitalWrite (motorA1,HIGH);
delay(1);
digitalWrite(motorA2,LOW);
delay(1);

digitalWrite (motorB1,HIGH);
delay(1);
digitalWrite(motorB2,LOW);

analogWrite (motorAspeed, vSpeed);


analogWrite (motorBspeed, 0);
}
/***************************Left*****************************/
//If state is equal with letter 'L', wheels will turn left
else if (state == 'L') {
digitalWrite (motorA2,HIGH);
delay(1);
digitalWrite(motorA1,LOW);
delay(1);

digitalWrite (motorB2,LOW);
delay(1);
digitalWrite(motorB1,HIGH);

analogWrite (motorAspeed, vSpeed);


analogWrite (motorBspeed, vSpeed);
}
/***************************Right*****************************/
//If state is equal with letter 'R', wheels will turn right
else if (state == 'R') {
digitalWrite (motorA2,LOW);
delay(1);
digitalWrite(motorA1,HIGH);
delay(1);

digitalWrite (motorB2,HIGH);
delay(1);
digitalWrite(motorB1,LOW);

analogWrite (motorAspeed, vSpeed);


analogWrite (motorBspeed, vSpeed);
}

/************************Stop*****************************/
//If state is equal with letter 'S', stop the car
else if (state == 'S'){
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);
}
}

You might also like