I tried the switch-case structure as GolamMostafa suggested, but there was not much progress except the arduino stopped sending tons of "Received: " messages.
Instead, I switched the BT pins to the analog pins as cattledog suggested, and I included "else" part, and it's working.
By working I mean the "Received: " messages disappeared and I now can control the LED via bluetooth. But motors are not moving. ![]()
Any idea why they are not moving?
#include <SoftwareSerial.h>
#include <AFMotor.h>
SoftwareSerial BTSerial(14,15);
AF_DCMotor Motor1(1);
AF_DCMotor Motor2(2);
AF_DCMotor Motor3(3);
AF_DCMotor Motor4(4);
void setup()
{
BTSerial.begin(9600);
}
void loop()
{
if (BTSerial.available() > 0) {
char ch = BTSerial.read();
BTSerial.print("Received: ");
BTSerial.println(ch);
if (ch == 'C') {
Motor1.setSpeed(255);
Motor1.run(BACKWARD);
Motor2.setSpeed(255);
Motor2.run(BACKWARD);
Motor3.setSpeed(255);
Motor3.run(BACKWARD);
Motor4.setSpeed(255);
Motor4.run(BACKWARD);
}
if (ch == 'D') {
Motor1.setSpeed(0);
Motor1.run(BRAKE);
Motor2.setSpeed(0);
Motor2.run(BRAKE);
Motor3.setSpeed(0);
Motor3.run(BRAKE);
Motor4.setSpeed(0);
Motor4.run(BRAKE);
}
if (ch == 'E') {
digitalWrite(16, HIGH);
}
if (ch == 'F') {
digitalWrite(16, LOW);
}
else {
}
}
}
