Hc-05 обрыв связи блютуз

Здравствуйте, столкнулся с проблемой разрыва соединения после отправки команд с телефона. Плата управляет моторами через два драйвера мотора L298n которые питаются от аккумулятора на 16v, через данные драйвера также питается и плата. Как только отправляю команду ехать куда-либо сразу же разрывается соединение с телефоном

Код
#include <NewPing.h>
#include <SoftwareSerial.h>
                        //НАСТРОЙКИ//
#define RightMotor1            2
#define RightMotor2            3
#define RightMotor3            8
#define RightMotor4            9

#define LeftMotor1             4
#define LeftMotor2             5
#define LeftMotor3             10
#define LeftMotor4             11
#define TrigPin                6
#define EchoPin                7

#define Statepin               A0
NewPing sonar(TrigPin,EchoPin,15);
SoftwareSerial BLT (12, 13);
// Movement functions
void forward () {
  digitalWrite(RightMotor1,HIGH);
  digitalWrite(RightMotor2,LOW);
  digitalWrite(RightMotor3,HIGH);
  digitalWrite(RightMotor4,LOW);
  digitalWrite(LeftMotor1,HIGH);
  digitalWrite(LeftMotor2,LOW);
  digitalWrite(LeftMotor3,HIGH);
  digitalWrite(LeftMotor4,LOW);
}

void backward () {
  digitalWrite(RightMotor1,LOW);
  digitalWrite(RightMotor2,HIGH);
  digitalWrite(RightMotor3,LOW);
  digitalWrite(RightMotor4,HIGH);
  digitalWrite(LeftMotor1,LOW);
  digitalWrite(LeftMotor2,HIGH);
  digitalWrite(LeftMotor3,LOW);
  digitalWrite(LeftMotor4,HIGH);
}

void right () {
  digitalWrite(RightMotor1,LOW);
  digitalWrite(RightMotor2,HIGH);
  digitalWrite(RightMotor3,LOW);
  digitalWrite(RightMotor4,HIGH);
  digitalWrite(LeftMotor1,HIGH);
  digitalWrite(LeftMotor2,LOW);
  digitalWrite(LeftMotor3,HIGH);
  digitalWrite(LeftMotor4,LOW);
}

void leftback () {
  digitalWrite(RightMotor1,HIGH);
  digitalWrite(RightMotor2,LOW);
  digitalWrite(RightMotor3,HIGH);
  digitalWrite(RightMotor4,LOW);
  digitalWrite(LeftMotor1,LOW);
  digitalWrite(LeftMotor2,HIGH);
  digitalWrite(LeftMotor3,LOW);
  digitalWrite(LeftMotor4,HIGH);
}

void left () {
  digitalWrite(RightMotor1,HIGH);
  digitalWrite(RightMotor2,LOW);
  digitalWrite(RightMotor3,HIGH);
  digitalWrite(RightMotor4,LOW);
  digitalWrite(LeftMotor1,LOW);
  digitalWrite(LeftMotor2,HIGH);
  digitalWrite(LeftMotor3,LOW);
  digitalWrite(LeftMotor4,HIGH);
}

void rightback () {
  digitalWrite(RightMotor1,LOW);
  digitalWrite(RightMotor2,HIGH);
  digitalWrite(RightMotor3,LOW);
  digitalWrite(RightMotor4,HIGH);
  digitalWrite(LeftMotor1,HIGH);
  digitalWrite(LeftMotor2,LOW);
  digitalWrite(LeftMotor3,HIGH);
  digitalWrite(LeftMotor4,LOW);
}

void breakRobot () {
  digitalWrite(RightMotor1,LOW);
  digitalWrite(RightMotor2,LOW);
  digitalWrite(RightMotor3,LOW);
  digitalWrite(RightMotor4,LOW);
  digitalWrite(LeftMotor1,LOW);
  digitalWrite(LeftMotor2,LOW);
  digitalWrite(LeftMotor3,LOW);
  digitalWrite(LeftMotor4,LOW);
}

void driveright(){
  digitalWrite(RightMotor1,HIGH);
  digitalWrite(RightMotor2,LOW);
  digitalWrite(RightMotor3,HIGH);
  digitalWrite(RightMotor4,LOW);
  digitalWrite(LeftMotor1,HIGH);
  digitalWrite(LeftMotor2,LOW);
  digitalWrite(LeftMotor3,HIGH);
  digitalWrite(LeftMotor4,LOW);
}

void driveleft(){
  digitalWrite(RightMotor1,HIGH);
  digitalWrite(RightMotor2,LOW);
  digitalWrite(RightMotor3,HIGH);
  digitalWrite(RightMotor4,LOW);
  digitalWrite(LeftMotor1,HIGH);
  digitalWrite(LeftMotor2,LOW);
  digitalWrite(LeftMotor3,HIGH);
  digitalWrite(LeftMotor4,LOW);
}

void driveleftback(){
  digitalWrite(RightMotor1,LOW);
  digitalWrite(RightMotor2,HIGH);
  digitalWrite(RightMotor3,LOW);
  digitalWrite(RightMotor4,HIGH);
  digitalWrite(LeftMotor1,LOW);
  digitalWrite(LeftMotor2,HIGH);
  digitalWrite(LeftMotor3,LOW);
  digitalWrite(LeftMotor4,HIGH);
}

void driverightback(){
  digitalWrite(RightMotor1,LOW);
  digitalWrite(RightMotor2,HIGH);
  digitalWrite(RightMotor3,LOW);
  digitalWrite(RightMotor4,HIGH);
  digitalWrite(LeftMotor1,LOW);
  digitalWrite(LeftMotor2,HIGH);
  digitalWrite(LeftMotor3,LOW);
  digitalWrite(LeftMotor4,HIGH);
}

void setup() {
  Serial.begin(9600);
  BLT.begin(9600);
}
void loop() {
  if (analogRead(Statepin) < 100){
    breakRobot();
    Serial.println("BL OFF");
  }
  else{
      byte Distance = sonar.ping_cm();
      if (Distance < 10 and Distance != 0){
        backward();
        delay(100);
        Serial.println("Distance <10");
      }
     else{
        if (BLT.available()){
          int  n = BLT.read();
          switch(n){
            case 83: // stop
              breakRobot();
              Serial.println("STOP");
              break;
              
            case 70: // forward
              forward();
              Serial.println("forward");
              break;
              
            case 66: // backward
              backward();
              Serial.println("backward");
              break;
            
            case 82: // right
              right();
              Serial.println("right");
              break;
            
            case 73: // rightforward
                right();
                Serial.println("right forward");
              break;
            
            case 74: // rightbackward
                left();
                Serial.println("right backward");
              break;
            
            case 76: // left
              left();
              Serial.println("left");
              break;
            
            case 71: // leftforward
                left();
                Serial.println("left forward");
              break;
            
            case 72: // leftbackward
                right();
                Serial.println("left backward");
              break;
             case 255:
              breakRobot();
              Serial.println(n);
              break;
      }
        }
    }
  }
}
Com вывод

STOP
STOP
STOP
STOP
STOP
STOP
STOP
STOP
STOP
forward
forward
255
BL OFF
BL OFF
BL OFF
BL OFF

ну так, зачем блютус, если ехать надо?

А схему можно?
Каким образом плата (Ардуино?) питается через драйвера моторов?

Надо проверить канал связи без использования силовой части.

проверял без подачи питания на моторы работало значительно дольше(если с моторами работало буквально мгновение, то без без них работало секунд 30), но всё равно связь обрывалась

к сожалению схему сделать не могу. прилогаю фото, ардуино питается от выхода 5V



Желательно плату и модуль блютуз питать через свой стабилизатор, драйвера моторов через свой преобразователь, общая земля. Делал комнатоход :slight_smile:

1 лайк

А че за зеркало спереди?
Ааа, не понимал. Потом как понял!)))

так смартфон лежит, на дорогу смотрит)

Так, стоп! Смартфон в качестве беспроводной камеры? Или как?
В схеме не участвует, стало быть как камера.

ты чет запутался, это лилика картинка была, а ТС, я так понял, рулит со смарта модулем HC-05 и наной крутит моторы через драйвера.

Да, я про Лилика) нормальная, лаконичная схема. У меня подобная поделка есть на базе примитивной РУ-машинки. 1 мотор и 1 серва рулит.
А ТСу рекомендовал бы если и не отдельный стабилизатор, то минимум конденсатор танталовый(вроде. Желтый смд корпус ). У них сопротивление самое маленькое.

ну это у него надо спрашивать, на его схеме смартфона нема))

Да. На пк два приложения одновременно работают - пульт и просмотрщик с камеры смартфона.

А я дурак, хотел кмеру покупать. Как раз старый телефон завалялся. Какое приложение для камеры надо?

1 лайк

Ютуб )))

Когда сможешь, возвращайся на форум.