Помогите. Bluetooth машинка

Нет ответов
El99
Offline
Зарегистрирован: 16.04.2017
Код написал. блютуз мигает и сопряжение есть, но не едет. На все кнопки нажимаю и ничего а потом сброс и по новой мигает сопряжается и всё,что не так?
 
#include <AFMotor.h>
#include <Servo.h>
#include <SoftwareSerial.h>
 
//Создаем объекты для двигателей 
AF_DCMotor M11(5); //канал М1 на Motor Shield — задний левый motor1
AF_DCMotor M12(6); //канал М2 на Motor Shield — задний правый motor2
AF_DCMotor M21(10); //канал М3 на Motor Shield — передний левый motor3
AF_DCMotor M22(9); //канал М4 на Motor Shield — передний правый motor4
 
// Создаем объект для сервопривода 
Servo vservo;
 
SoftwareSerial BTSerial(A0, A1); // RX, TX
 
// Создаем переменную для команд Bluetooth 
char vcmd; 
// Создаем переменные для запоминания скорости двигателей 
int vspdL, vspdR; 
/* Создаем переменную, на значение которой будет уменьшаться скорость при плавных поворотах. 
Текущая скорость должна быть больше этого значения.  В противном случае двигатели со стороны направления поворота просто не будут вращаться */ 
int vspd = 200;
 
void setup() { 
  // Устанавливаем скорость передачи данных по Bluetooth 
  BTSerial.begin(9600); 
  // Устанавливаем скорость передачи данных по кабелю 
  Serial.begin(9600); 
  // Выбираем пин к которому подключен сервопривод 
  vservo.attach(9); // или 10, если воткнули в крайний разъём 
  // Поворачиваем сервопривод в положение 90 градусов при каждом включении 
  vservo.write(90); 
  // Устанавливаем максимальную скорость вращения двигателей 
  vspeed(255,255); 
}
 
void loop() { 
  // Если есть данные 
  if (BTSerial.available()) 
  { 
    // Читаем команды и заносим их в переменную. char преобразует код символа команды в символ 
    vcmd = (char)BTSerial.read(); 
    // Отправляем команду в порт, чтобы можно было их проверить в "Мониторе порта" 
    Serial.println(vcmd);
 
    // Вперед 
    if (vcmd == 'F') { 
      vforward(); 
    } 
    // Назад 
    if (vcmd == 'B') 
    { 
      vbackward(); 
    } 
    // Влево 
    if (vcmd == 'L') 
    { 
      vleft(); 
    }     
    // Вправо 
    if (vcmd == 'R') 
    { 
      vright(); 
    }  
    // Прямо и влево 
    if (vcmd == 'G') 
    { 
      vforwardleft(); 
    }  
    // Прямо и вправо 
    if (vcmd == 'I') 
    { 
      vforwardright(); 
    }  
    // Назад и влево 
    if (vcmd == 'H') 
    { 
      vbackwardleft(); 
    }  
    // Назад и вправо 
    if (vcmd == 'J') 
    { 
      vbackwardright(); 
    }  
    // Стоп 
    if (vcmd == 'S') 
    { 
      vrelease(); 
    } 
    // Скорость 0% 
    if (vcmd == '0') 
    { 
      vspeed(0,0); 
    } 
    // Скорость 10% 
    if (vcmd == '1') 
    { 
      vspeed(25,25); 
    } 
    // Скорость 20% 
    if (vcmd == '2') 
    { 
      vspeed(50,50); 
    } 
    // Скорость 30% 
    if (vcmd == '3') 
    { 
      vspeed(75,75); 
    } 
    // Скорость 40% 
    if (vcmd == '4') 
    { 
      vspeed(100,100); 
    } 
    // Скорость 50% 
    if (vcmd == '5') 
    { 
      vspeed(125,125); 
    } 
    // Скорость 60% 
    if (vcmd == '6') 
    { 
      vspeed(150,150); 
    } 
    // Скорость 70% 
    if (vcmd == '7') 
    { 
      vspeed(175,175); 
    } 
    // Скорость 80% 
    if (vcmd == '8') 
    { 
      vspeed(200,200); 
    } 
    // Скорость 90% 
    if (vcmd == '9') 
    { 
      vspeed(225,225); 
    } 
    // Скорость 100% 
    if (vcmd == 'q') 
    { 
      vspeed(255,255); 
    } 
  } 
}
 
// Вперед 
void vforward() { 
  vspeed(vspdL,vspdR); 
  vforwardRL(); 
}
 
// Вперед для RL 
void vforwardRL() { 
  M11.run(FORWARD); 
  M12.run(FORWARD); 
  M21.run(FORWARD); 
  M22.run(FORWARD); 
}
 
// Назад 
void vbackward() { 
  vspeed(vspdL,vspdR); 
  vbackwardRL(); 
}
 
// Назад для RL 
void vbackwardRL() { 
  M11.run(BACKWARD); 
  M12.run(BACKWARD); 
  M21.run(BACKWARD); 
  M22.run(BACKWARD); 
}
 
// Влево 
void vleft() { 
  vspeed(vspdL,vspdR); 
  M11.run(BACKWARD); 
  M12.run(FORWARD); 
  M21.run(BACKWARD); 
  M22.run(FORWARD); 
}
 
// Вправо 
void vright() { 
  vspeed(vspdL,vspdR); 
  M11.run(FORWARD); 
  M12.run(BACKWARD); 
  M21.run(FORWARD); 
  M22.run(BACKWARD); 
}
 
// Вперед и влево 
void vforwardleft() { 
  if (vspdL > vspd) { 
    vspeed(vspdL-vspd,vspdR); 
  } 
  else 
  { 
    vspeed(0,vspdR); 
  } 
  vforwardRL(); 
}
 
// Вперед и вправо 
void vforwardright() { 
  if (vspdR > vspd) { 
    vspeed(vspdL,vspdR-vspd); 
  } 
  else 
  { 
    vspeed(vspdL,0); 
  } 
  vforwardRL(); 
}
 
// Назад и влево 
void vbackwardleft() { 
  if (vspdL > vspd) { 
    vspeed(vspdL-vspd,vspdR); 
  } 
  else 
  { 
    vspeed(0,vspdR); 
  } 
  vbackwardRL(); 
}
 
// Назад и вправо 
void vbackwardright() { 
  if (vspdR > vspd) { 
    vspeed(vspdL,vspdR-vspd); 
  } 
  else 
  { 
    vspeed(vspdL,0); 
  } 
  vbackwardRL(); 
}
 
// Стоп 
void vrelease(){ 
  M11.run(RELEASE); 
  M12.run(RELEASE); 
  M21.run(RELEASE); 
  M22.run(RELEASE); 
}
 
// Изменение скорости 
void vspeed(int spdL,int spdR){ 
  if (spdL == spdR) { 
    vspdL=spdL; 
    vspdR=spdR; 
  } 
  M11.setSpeed(spdL); 
  M12.setSpeed(spdR); 
  M21.setSpeed(spdL); 
  M22.setSpeed(spdR); 

}