#include <SoftwareSerial.h>//блютуз библиотека


SoftwareSerial mySerialBT(3, 2);
#include <Stepper_28BYJ.h>

#define STEPS 4078
#define STRAIGHT_CYCLES 3225 // сколько шагов нужно для движения вперед/назад
#define TURN_CYCLES 1920// сколько шагов нужно для поворота влево/вправо
Stepper_28BYJ stepper1(STEPS, 8, 9, 10, 11);
Stepper_28BYJ stepper2(STEPS, 7, 6, 5, 4);

int w = 100;


void setup() {
  mySerialBT.begin(9600);
  pinMode(13, OUTPUT);
  // Serial.begin(9600);
  // установим скорость вращения 13 об/мин
  stepper1.setSpeed(13);
  stepper2.setSpeed(13);
}

void loop() {
  if (mySerialBT.available() > 0) {
    char inputdata = mySerialBT.read();
    // f - вперед
    // b - назад
    // l - разворот влево
    // r - разворот вправо
    if (inputdata == 'f') {
      digitalWrite(13, HIGH);
      //прямо
      for (int i = 0; i < STRAIGHT_CYCLES; i++) {
        stepper1.step(-1);
        stepper2.step(-1);
      }
    } else if (inputdata == 'b') {
      digitalWrite(13, HIGH);
      for (int i = 0; i < STRAIGHT_CYCLES; i++) {
        stepper1.step(1);
        stepper2.step(1);
      }
    } else if (inputdata == 'l') {
      digitalWrite(13, HIGH);
      //поворот на 90 в другую сторону
      for (int i = 0; i < TURN_CYCLES; i++) {
        stepper1.step(1); // Делаем 4000 шагов в одну строну
        stepper2.step(-1); // Делаем 4000 шагов в одну строну
      }
    } else if (inputdata == 'r') {
      digitalWrite(13, HIGH);
      //поворот на 90 в одну сторону
      for (int i = 0; i < TURN_CYCLES; i++) {
        stepper1.step(-1);
        stepper2.step(1);
      }
    } else {
    }
    delay (w);
    digitalWrite(4, LOW); // выключаем моторы
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    digitalWrite(8, LOW);
    digitalWrite(9, LOW);
    digitalWrite(10, LOW);
    digitalWrite(11, LOW);
    digitalWrite(13, LOW);
    mySerialBT.println('k');
  }
}
