Написал код на ардуинке IDE. Машинка управляется через смарт, при нажатии кнопки машинка едет, согласно на писаному коду, и когда отпускаешь кнопку на андроид машинка все равно едет! А мне надо что бы машинка ехала только,когда нажата кнопка! Подскажите в чем проблема! А то вторые сутки не могу ни чего найти !!!!
#include <AFMotor.h>
#include <SoftwareSerial.h>
SoftwareSerial BT(52,53); //53 - RX, 52 - TX
AF_DCMotor motor1(1); //задний левый мотор
AF_DCMotor motor2(2); //задний правый мотор
AF_DCMotor motor3(3); // передний правый мотор
AF_DCMotor motor4(4); //передний левый мотор
char val;
void setup() {
Serial.begin(9600);
BT.begin(9600);
}
void loop() {
if (BT.available()){ // Если есть данные
val = BT.read(); // переменная val равна полученной команде
// едем вперед
if(val == 'W')
{
motor1.run(FORWARD);
motor1.setSpeed(255);
motor2.run(FORWARD);
motor2.setSpeed(255);
motor3.run(FORWARD);
motor3.setSpeed(255);
motor4.run(FORWARD);
motor4.setSpeed(255);
}
//едем назад
if(val == 'S'){
motor1.run(BACKWARD);
motor1.setSpeed(255);
motor2.run(BACKWARD);
motor2.setSpeed(255);
motor3.run(BACKWARD);
motor3.setSpeed(255);
motor4.run(BACKWARD);
motor4.setSpeed(255);
}
// поворот на лево
if(val == 'A'){
motor1.run(FORWARD);
motor1.setSpeed(200);
motor2.run(FORWARD);
motor2.setSpeed(200);
motor3.run(FORWARD);
motor3.setSpeed(200);
motor4.run(BACKWARD);
motor4.setSpeed(255);
}
//поворот на право
if(val == 'D'){
motor1.run(FORWARD);
motor1.setSpeed(200);
motor2.run(FORWARD);
motor2.setSpeed(200);
motor3.run(BACKWARD);
motor3.setSpeed(255);
motor4.run(FORWARD);
motor4.setSpeed(200);
}
// стоп
if(val == 'E'){
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
}
}