I have done a project to control a robot from mobile phone using HC-05 bluetooth module.
I have done everything but my motors won't spin.
Here's my code:
#define enA 9
#define in1 4
#define in2 5
#define enB 10
#define in3 6
#define in4 7
int motorSpeedA = 0;
int motorSpeedB = 0;
int val = 0;
void setup() {
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
Serial.begin(38400);
}
void loop() {
//Read input from bluetooth module:
if ( Serial.available())
{
val = Serial.read();
delay(10);
}
delay(10);
//Input key switch
switch (val) {
case '0':
motorSpeedA = 0;
motorSpeedB = 0;//Code when no key is pressed
break;
case '1':
// Set Motor A forward
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
// Set Motor B forward
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);//Code when UP key is pressed
break;
case '2':
// Set Motor A backward
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// Set Motor B backward
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);//Code when DOWN key is pressed
motorSpeedA = 255;
motorSpeedB = 255;
break;
case '3':
analogWrite(enA, 180); //speed 0 - 255
analogWrite(enB, 180); //speed 0 - 255
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
//Code when LEFT key is pressed
break;
case '4':
//Code when RIGHT key is pressed
analogWrite(enA, 180); //speed 0 - 255
analogWrite(enB, 180); //speed 0 - 255
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
break;
case '5':
//Code when X key is pressed
motorSpeedA = 0;
break;
case '6':
//Code when O key is pressed
motorSpeedB = 0;
break;
default:
motorSpeedA = 255;
motorSpeedB = 255;
// default code (should never run)
}
analogWrite(enA, motorSpeedA); // Send PWM signal to motor A
analogWrite(enB, motorSpeedB);
}
I have attached my circuit below.
Pls tell me what I have did wrongly
