Команды для bluetooth машинки

satway
Offline
Зарегистрирован: 06.12.2014

Всем привет. Сварганил я машинку с управлением по bluetooth. Все работает, машинка ездит, но у кода есть такой изъян - после нажатия кнопки, команда выполняеться поятоянно (что и понятно). Не могу сообразить, как сделать так, что бы машинка ехала только тогда, когда кнопка удерживаеться нажатой. Сейчас это решаеться дополнительной кнопкой для остановки всех моторов. Пробовал ставить else с кодом

1motor1.run(RELEASE);
2motor2.run(RELEASE);
3motor3.run(RELEASE);
4motor4.run(RELEASE);

после каждой команды - ноль реакции, вернее изменения есть, моторы вообще на команды не реагируют.

Код прилагаю:

001#include <AFMotor.h>  // Подключаем библиотеку для работы с шилдом
002 
003int ledPin = 13;
004unsigned long a;
005int IN1 = 2;
006int IN2 = 3;
007int IN3 = 4;
008int IN4 = 5;
009 
010 
011 
012// Подключаем моторы к клеммникам M1, M2, M3, M4
013AF_DCMotor motor1(1);
014AF_DCMotor motor2(2);
015AF_DCMotor motor3(3);
016AF_DCMotor motor4(4);
017 
018 
019 
020void setup()
021{
022Serial.begin(9600);
023Serial.setTimeout(4);
024pinMode(ledPin, OUTPUT);
025  motor1.setSpeed(255);
026  motor1.run(RELEASE);
027  motor2.setSpeed(255);
028  motor2.run(RELEASE);
029  motor3.setSpeed(255);
030  motor3.run(RELEASE);
031  motor4.setSpeed(255);
032  motor4.run(RELEASE);
033 
034}
035 
036void loop()
037{
038if (Serial.available())
039{ a = Serial.parseInt();
040if (a==1) //едим прямо
041{
042  delay(50);
043  motor1.run(FORWARD); // Задаем движение вперед
044  motor2.run(FORWARD);
045  motor3.run(FORWARD);
046  motor4.run(FORWARD);
047  motor1.setSpeed(150); // Задаем скорость движения
048  motor2.setSpeed(150);
049  motor3.setSpeed(150);
050  motor4.setSpeed(150);
051  }
052 
053 
054if (a==2) //поворот на право
055{
056  delay(50);
057  motor1.run(BACKWARD); // Задаем движение вперед
058  motor2.run(FORWARD);
059  motor3.run(FORWARD);
060  motor4.run(BACKWARD);
061  motor1.setSpeed(255); // Задаем скорость движения
062  motor2.setSpeed(255);
063  motor3.setSpeed(255);
064  motor4.setSpeed(255);
065  }
066 
067if (a==3) //поворот на лево
068{
069  delay(50);
070  motor1.run(FORWARD); // Задаем движение вперед
071  motor2.run(BACKWARD);
072  motor3.run(BACKWARD);
073  motor4.run(FORWARD);
074  motor1.setSpeed(255); // Задаем скорость движения
075  motor2.setSpeed(255);
076  motor3.setSpeed(255);
077  motor4.setSpeed(255);
078  }
079 
080if (a==4) //движение назад
081{
082  delay(50);
083  motor1.run(BACKWARD); // Задаем движение вперед
084  motor2.run(BACKWARD);
085  motor3.run(BACKWARD);
086  motor4.run(BACKWARD);
087  motor1.setSpeed(150); // Задаем скорость движения
088  motor2.setSpeed(150);
089  motor3.setSpeed(150);
090  motor4.setSpeed(150);
091  }
092 
093if (a==5) //кнопка стоп
094{
095  motor1.run(RELEASE);
096  motor2.run(RELEASE);
097  motor3.run(RELEASE);
098  motor4.run(RELEASE);
099  }
100 
101}
102}

 

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015