Итак, я создаю код для футбольного автомобиля с управлением по 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') для кнопки остановки в приложении.
Мне нужно, чтобы он двигался только при нажатии кнопки и останавливался, если ничего не нажималось. Для этого не нужна кнопка остановки.