Внутри этой функции я хочу, чтобы пользователь мог выбрать, сколько раз он/она хочет повторить тест. Я переводил ASCII dec (от serial.read
) с char (incomingByte), но как только я вхожу в цикл for, число возвращается обратно к его значению dec ... Можете ли вы объяснить, почему?Проблемы с переводом ASCII dec на символ
Serial.println("Choose number of times (max 10) to repeat test : ");
while(Serial.available() == 0) {
delay(10);
}
int incomingByte = Serial.read();
// Number of times to repeat test chosen by user.
nRepeat = char(incomingByte);
Serial.print("You chose : ");
Serial.println(char(nRepeat));
for(int i=0; i<nRepeat; i++) {
randomSeed(A1);
// Assigning a random seed for the random function.
timer = random(2000, 5000);
// Sets the random timer to vary between 2000 and 5000 ms
delay(timer);
// The delay is now random between 2000 and 5000 ms
digitalWrite(LED, HIGH);
// Turn on the LED (pin 13)
startTid = millis();
// Saves the current time the Arduino has been powered.
while(digitalRead(Buttom) == HIGH) {
// Loop until buttom is pressed
}
stopTid = millis();
// Saves current time since arduino got powered
digitalWrite(LED, LOW);
// Turns LED off
Serial.print("Your time was: ");
Serial.print(stopTid-startTid);
// Prints the time between the exercise started and finished
Serial.println(" milli seconds");
person[cc].reacTime[i] = stopTid-startTid;
Serial.print(i);
Serial.print(" out of ");
Serial.println(nRepeat);
delay(1000);
}
, что вы думаете, 'голец (nRepeat)' делает, это не функция ASCII перевод, это стиль функции C++. –
Я предположил, что, поскольку я объявлял nRepeat = char (53), который дал мне nRepeat = 5, я мог бы использовать этот метод для дальнейшего использования in для циклов как целого числа ex. 5. Знать решение этого? – Ivan
Фактически это зависит от того, как вы его распечатываете, если '.print()' метод поддерживает спецификатор '% c', то может быть' Serial.print («% c», nRepeat), 'будет делать это, t знать класс 'Serial', который вы используете. –