Цель: я хотел бы подсказать целое число от последовательного монитора. Эти значения будут использоваться как часть команды delay (value) позже. Цель этой задержки состоит в том, чтобы два вибрационных двигателя работали немного несинхронно.
Проблема: я пытаюсь получить значения, такие как 60 или 400, из командной строки. Текущие значения не соответствуют тому, что вводится.
Моя интуиция говорит, что это проблема формата данных. Я надеюсь, что кто-то может помочь мне понять, почему каждая цифра печатается как число.
Код подпрограммы подсказки:
while (!Serial.available()) { //this holds until we see a serial prompt
}
if (Serial.available() > 0) {
uint8_t inChar = Serial.read();
Serial.println(inChar);
// convert the incoming byte to a char and add it to the string:
if (isDigit(inChar)) {
receivedChar += (char)inChar;
}
// if you get a newline, print the string, then the string's value:
if (inChar == '\n') {
Serial.print("Delay Value:");
Serial.println(receivedChar.toInt());
Serial.print("String: ");
Serial.println(receivedChar);
// clear the string for new input:
}
newData = true;
prompthold = false;
}
}
Код петли:
void loop(){
while (prompthold == false) {
prompthold = true;
Serial.println("Please enter delay");
receivedChar = "";
srl_prompt();
apparentmotion();
}
delay(500);
}
Диагностическая информация:
Ввод 1234567890
Возвращает:
16:28:13.079 -> 49
16:28:13.079 -> Please enter delay
16:28:13.079 -> 50
16:28:13.079 -> Please enter delay
16:28:13.079 -> 51
16:28:13.079 -> Please enter delay
16:28:13.079 -> 52
16:28:13.079 -> Please enter delay
16:28:13.079 -> 53
16:28:13.113 -> Please enter delay
16:28:13.113 -> 54
16:28:13.113 -> Please enter delay
16:28:13.113 -> 55
16:28:13.113 -> Please enter delay
16:28:13.113 -> 56
16:28:13.147 -> Please enter delay
16:28:13.147 -> 57
16:28:13.147 -> Please enter delay
16:28:13.147 -> 48
16:28:13.147 -> Please enter delay
16:28:13.147 -> 10
16:28:13.147 -> Delay Value:0
16:28:13.147 -> String:
16:28:13.147 -> Please enter delay
Ввод 200
16:29:06.082 -> Please enter delay
16:34:02.121 -> 50
16:34:02.121 -> Please enter delay
16:34:02.121 -> 48
16:34:02.155 -> Please enter delay
16:34:02.155 -> 48
16:34:02.155 -> Please enter delay
16:34:02.155 -> 10
16:34:02.155 -> Delay Value:0
16:34:02.155 -> String:
16:34:02.155 -> Please enter delay