Я должен использовать устройство Android для управления Arduino Uno через модуль Bleutooth.
Программа работает, но у меня есть одна проблема.
Как я могу сделать код для каждой повторяющейся командымного раз?
Например, я хочу повторить команду «гулять», пока я не дам команду «стоп»?Когда я даю команду «ходить», она продолжает идти.
Это код:
#include <Servo.h>
#include <SoftwareSerial.h>
SoftwareSerial blue(4, 3); //TX, RX pins of arduino respetively
String command;
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
void setup()
{
blue.begin(9600);
Serial.begin(9600);
Serial.println("Ready");
myservo1.attach(9, 600, 2300); // (pin, min, max)
myservo2.attach(10, 600, 2300);
myservo3.attach(11, 600, 2300);
myservo4.attach(12, 600, 2300);
myservo1.write(30); //right leg (0 point)
myservo2.write(170); //lift leg (0 point)
myservo3.write(170); //left hand (0)
myservo4.write(30); //right hand (0)
}
void loop()
{
while (blue.available()) { //Check if there is an available byte to read
delay(10); //Delay added to make thing stable
char c = blue.read(); //Conduct a serial read
command += c; //build the string.
}
if (command.length() > 0) {
Serial.println(command);
if (command == "walk") {
myservo1.write(30);
myservo2.write(160);
myservo4.write(100);
delay(1000);
myservo4.write(30);
delay(1000);
myservo1.write(40);
myservo2.write(170);
myservo3.write(100);
delay(1000);
myservo3.write(170);
delay(1000);
}
if (command == "raise your hands") {
myservo4.write(180);
myservo3.write(20);
}
if (command == "raise your left hand") {
myservo3.write(20);
delay(2000);
myservo3.write(170);
delay(1000);
}
if (command == "raise your right hand") {
myservo4.write(180);
delay(2000);
myservo4.write(30);
delay(1000);
}
if (command == "stop") {
myservo1.write(30);
myservo2.write(170);
myservo3.write(170);
myservo4.write(30);
}
command = "";
}
}