Проблема с 2wd Bluetooth-управляемым автомобилем не может остановиться - PullRequest
0 голосов
/ 26 июня 2019

Итак, я создаю код для футбольного автомобиля с управлением по Bluetooth. И когда я нажимаю вперед, он движется вперед без остановки.

Я несколько раз пытался изменить код, например:

if( val == '1') // Forward
    {
      digitalWrite(m1a, HIGH);
      digitalWrite(m1b, LOW);
      digitalWrite(m2a, HIGH);
      digitalWrite(m2b, LOW);
      delay(1);
      digitalWrite(m1a, LOW);
      digitalWrite(m2a, LOW);
    }

Кому:

if( val == '1') // Forward
    {
      digitalWrite(m1a, HIGH);
      digitalWrite(m1b, LOW);
      digitalWrite(m2a, HIGH);
      digitalWrite(m2b, LOW);
      delay(200);
      digitalWrite(m1a, LOW);
      digitalWrite(m2a, LOW);
      digitalWrite(m1b, LOW);
      digitalWrite(m2b, LOW);
    }

Вот полный код:

// Starting of Program
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10,11);
int m1a = A3;
int m1b = A4;
int m2a = 3;
int m2b = A5;
char val;

void setup() 
{  
pinMode(m1a, OUTPUT);  // Digital pin 10 set as output Pin
pinMode(m1b, OUTPUT);  // Digital pin 11 set as output Pin
pinMode(m2a, OUTPUT);  // Digital pin 12 set as output Pin
pinMode(m2b, OUTPUT);  // Digital pin 13 set as output Pin
mySerial.begin(9600);
}

void loop()
{
  while (mySerial.available() > 0)
  {
  val = mySerial.read();
  mySerial.println(val);
  }

  if( val == '1') // Forward
    {
      digitalWrite(m1a, HIGH);
      digitalWrite(m1b, LOW);
      digitalWrite(m2a, HIGH);
      digitalWrite(m2b, LOW);
      delay(1);
      digitalWrite(m1a, LOW);
      digitalWrite(m2a, LOW);
    }
  else if(val == '2') // Backward
    {
      digitalWrite(m1a, LOW);
      digitalWrite(m1b, HIGH);
      digitalWrite(m2a, LOW);
      digitalWrite(m2b, HIGH); 
      delay(200);
      digitalWrite(m1a, LOW);
      digitalWrite(m1b, LOW);
      digitalWrite(m2a, LOW);
      digitalWrite(m2b, LOW); 
    }

    else if(val == '3') //Left
    {
      digitalWrite(m1a, LOW);
      digitalWrite(m1b, HIGH);
      digitalWrite(m2a, HIGH);
      digitalWrite(m2b, LOW);
      delay(200);
      digitalWrite(m1a, LOW);
      digitalWrite(m1b, LOW);
      digitalWrite(m2a, LOW);
      digitalWrite(m2b, LOW); 
    }
    else if(val == '4') //Right
    {
      digitalWrite(m1a, HIGH);
      digitalWrite(m1b, LOW);
      digitalWrite(m2a, LOW);
      digitalWrite(m2b, HIGH); 
      delay(200);
      digitalWrite(m1a, LOW);
      digitalWrite(m1b, LOW);
      digitalWrite(m2a, LOW);
      digitalWrite(m2b, LOW); 
    }

    else if(val == 'S')
    {
      digitalWrite(m1a, LOW);
      digitalWrite(m1b, LOW);
      digitalWrite(m2a, LOW);
      digitalWrite(m2b, LOW); 
      delay(1000);
      digitalWrite(m2a, HIGH);
    }
}

// End of program

Нет ошибок массажа, пожалуйста, помогите .... Я использую это приложение на своем телефоне и последние 11 строк кода, (val == 'S') для кнопки остановки в приложении.

Мне нужно, чтобы он двигался только при нажатии кнопки и останавливался, если ничего не нажималось. Для этого не нужна кнопка остановки.

1 Ответ

1 голос
/ 26 июня 2019
if( val == '1') // Forward
{
  digitalWrite(m1a, HIGH);
  digitalWrite(m1b, LOW);
  digitalWrite(m2a, HIGH);
  digitalWrite(m2b, LOW);
  delay(1);
  digitalWrite(m1a, LOW);
  digitalWrite(m2a, LOW);
}

К

if( val == '1') // Forward
{
  digitalWrite(m1a, HIGH);
  digitalWrite(m1b, LOW);
  digitalWrite(m2a, HIGH);
  digitalWrite(m2b, LOW);
  delay(1);
  digitalWrite(m1a, LOW);
  digitalWrite(m2a, LOW);
  val = ' ';

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...