Serial.read не передаёт символ завершения строки. Симулятор Circuits в Tinker CAD.

Djopa
Offline
Зарегистрирован: 26.11.2017

Необходимо получить некое число от пользователя в виде строки, затем преобразовать её в float, дабы после использовать в вычислениях. Проблема в том, что нужно всё это сделать на эмуляторе Tinker CAD. В нём есть эмуляция Serial Port, но почему-то Serial.read() не считывает символ завершения строки при нажатии ENTER. Я пробовал сравнивать и по кодам в ASCII - результат тот же, сообщение "VIZHU" не выводится. Так же дебаггер показывает, что X принимает значение последнего введёного символа, отличного от символа завершения строки. Это проблема конкретного эмулятора или я что-то делаю не так? Вот код простой проверки на распознавание нажатия ENTER, который не работает. 


char x;
void setup() {
  Serial.begin(9600);
}

void loop() {
  if(Serial.available()>0)
    x=Serial.read();
  if(x=='\n' || x == '\r')
    Serial.print("VIZHU");
}
  

 

Djopa
Offline
Зарегистрирован: 26.11.2017

  

При вводе числа 56 и нажатии кнопки "Enter" дебаггер показывает, что переменная x хранит последний  символ '6', а не '\n' или '\r'. 
Поэтому я не могу отследить конец строки и банально вывести её на экран правильно, используя например условие 

if(x=='\n'){
  Serial.print(exampleString);
  x = 0;
}

Пожалуйста помогите. 

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

Ну а терминал как настроен? Указано что надо добавлять \r\n? Может их там нет, потому-что вы их не шлете?

Djopa
Offline
Зарегистрирован: 26.11.2017

Терминал вообще нельзя настроить. Это эмулятор от Autodesk в браузере с кнопочкой Send. 

b707
Offline
Зарегистрирован: 26.05.2017

Djopa пишет:

Терминал вообще нельзя настроить. Это эмулятор от Autodesk в браузере с кнопочкой Send. 

Вероятно, сериал-монитор эмулятора не отсылает этих символов. Чтобы не отказываться от эмулятора - могу посоветовать придумать свой символ окончания строки и передавать его после данных. А потом, в коде для реального ардуино - поменяете этот свой символ на \r или \n

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Djopa пишет:

Терминал вообще нельзя настроить. Это эмулятор от Autodesk в браузере с кнопочкой Send. 

Он устанавливается на локальную машину или в инете только доступен? Если первое - можно поправить эмулятор :)