COM порт
- Войдите на сайт для отправки комментариев
Втр, 26/11/2019 - 18:15
Привет всем. Пишу здесь первый раз поэтому если что не так, скажите - я исправлюсь:)
В общем проблема такая, есть вот такой код:
const int ledPin = 13;
int num = 0;
char sym;
String menu = "";
void setup() {
// put your setup code here, to run once:
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
while (Serial.available()) {
menu = Serial.readString();
Serial.println(menu);
int len = menu.length();
while (num < len) {
sym = menu.charAt(num);
Serial.println(sym);
if (sym == 'h' || sym == 'H'){
delay(3000);
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
} else if (sym == 'E' || sym == 'e'){
delay(3000);
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
} else if (sym == 'L' || sym == 'l'){
delay(3000);
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
delay(1100);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
} else if (sym == 'O' || sym == 'o'){
delay(3000);
digitalWrite(ledPin, HIGH);
delay(1100);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
delay(1100);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
delay(1100);
digitalWrite(ledPin, LOW);
}
num++;
}
menu = "";
Serial.flush();
break;
}
}
При первом вводе текста, он его считывает и светодиод мигает, всё работает как нужно. После того как светодиод промигал, я хочу ввести ещё слово, но второй раз уже ничего не работает. Подскажите в чем ошибка, что исправить.
У Вас "num" нигде не обнуляется.
Огромное спасибо Вам, со вчерашнего дня бьюсь головой, никак не мог исправить. Дело в том, что с ардуино и С++ знаком мало, я по большей части на питоне пишу, поэтому делаю глупые ошибки:)