Hi there, I have successfully controlled two Motor DCs using L298P Motor driver shield via Bluetooth. I have also created a new separate Arduino code and successfully controlled servo via Bluetooth (for experiment purposes). Now when I combine these two codes together, I get the servo to work, but only one of my Motor DC is turning. When I remove the part (of my combined code) related to servo control, I manage to get both of my Motor DC to turn again. What seems to be the problem?
#include <Servo.h>
Servo servo;
int angle = 90;
int SA = 10;
int SB = 11;
int MA = 12;
int MB = 13;
char command;
void setup(){
servo.attach(A0);
pinMode (SA, OUTPUT);
pinMode (SB, OUTPUT);
pinMode (MA, OUTPUT);
pinMode (MB, OUTPUT);
Serial.begin(9600);
}
void loop(){
if(Serial.available()) {
command = Serial.read();
if (command == '0'){
digitalWrite(MA, LOW);
digitalWrite(MB, LOW);
analogWrite(SA, 0);
analogWrite(SB, 0);
}
if (command == '1'){
digitalWrite(MA, HIGH);
digitalWrite(MB, LOW);
analogWrite(SA, 100);
analogWrite(SB, 0);
}
if (command == '2'){
digitalWrite(MA, LOW);
digitalWrite(MB, HIGH);
analogWrite(SA, 0);
analogWrite(SB, 100);
}
if (command == '3'){
digitalWrite(MA, HIGH);
digitalWrite(MB, HIGH);
analogWrite(SA, 100);
analogWrite(SB, 100);
}
if (command == '4'){
digitalWrite(MA, HIGH);
digitalWrite(MB, LOW);
analogWrite(SA, 100);
analogWrite(SB, 100);
}
if (command == '5'){
digitalWrite(MA, LOW);
digitalWrite(MB, HIGH);
analogWrite(SA, 100);
analogWrite(SB, 100);
}
if (command == '6'){
digitalWrite(MA, LOW);
digitalWrite(MB, LOW);
analogWrite(SA, 100);
analogWrite(SB, 100);
}
if (command == '7'){
digitalWrite(MA, LOW);
digitalWrite(MB, LOW);
analogWrite(SA, 100);
analogWrite(SB, 0);
}
if (command == '8'){
digitalWrite(MA, LOW);
digitalWrite(MB, LOW);
analogWrite(SA, 0);
analogWrite(SB, 100);
}
if(command == 'a'){
constrain(angle, 0, 180);
angle = angle + 3;
Serial.print(angle);
}
if(command == 'b'){
constrain(angle, 0, 180);
angle = angle - 3;
Serial.print(angle);
}
if(command == 'c'){
angle = 90;
Serial.print(angle);
}
servo.write(angle);
delay(100);
}
}