I have made this bluetooth controlled car... I have used HC-05 and L298N motor driver. My problem is when I send a value through bluetooth from my phone to Arduino, It takes much time to respond. Suppose when I send 'f' to arduino , my robot moves forward but after that when I send 's' it takes time to stop. And I can't control my speed. What can I do to solve these problems?
Here is my code-
int MotorA_IN1 = 2;
int MotorA_IN2 = 3;
int MotorB_IN3 = 4;
int MotorB_IN4 = 5;
int MotorA_PWM = 9;
int MotorB_PWM = 10;
int spd = 150;
char sms;
void forward()
{
analogWrite(MotorA_PWM,spd);
analogWrite(MotorB_PWM,spd);
digitalWrite(MotorA_IN1,HIGH);
digitalWrite(MotorA_IN2,LOW);
digitalWrite(MotorB_IN3,HIGH);
digitalWrite(MotorB_IN4,LOW);
}
void pause()
{
digitalWrite(MotorA_IN1,LOW);
digitalWrite(MotorA_IN2,LOW);
digitalWrite(MotorB_IN3,LOW);
digitalWrite(MotorB_IN4,LOW);
}
void backward()
{
analogWrite(MotorA_PWM,spd);
analogWrite(MotorB_PWM,spd);
digitalWrite(MotorA_IN1,LOW);
digitalWrite(MotorA_IN2,HIGH);
digitalWrite(MotorB_IN3,LOW);
digitalWrite(MotorB_IN4,HIGH);
}
void right()
{
analogWrite(MotorA_PWM,spd);
analogWrite(MotorB_PWM,spd);
digitalWrite(MotorA_IN1,LOW);
digitalWrite(MotorA_IN2,LOW);
digitalWrite(MotorB_IN3,HIGH);
digitalWrite(MotorB_IN4,LOW);
}
void left()
{
analogWrite(MotorA_PWM,spd);
analogWrite(MotorB_PWM,spd);
digitalWrite(MotorA_IN1,HIGH);
digitalWrite(MotorA_IN2,LOW);
digitalWrite(MotorB_IN3,LOW);
digitalWrite(MotorB_IN4,LOW);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(MotorA_IN1,OUTPUT);
pinMode(MotorA_IN2,OUTPUT);
pinMode(MotorB_IN3,OUTPUT);
pinMode(MotorB_IN4,OUTPUT);
pinMode(MotorA_PWM,OUTPUT);
pinMode(MotorB_PWM,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available())
{
sms = Serial.read();
}
if (sms == 's')
{
pause();
}
if (sms == 'f')
{
forward();
}
if (sms == 'b')
{
backward();
}
if (sms == 'r')
{
right();
}
if (sms == 'l')
{
left();
}
if(sms == '0')
{
spd = 0;
}
if(sms == '1')
{
spd = 100;
}
if(sms == '2')
{
spd = 200;
}
if(sms == '3')
{
spd = 255;
}
}