Серийный монитор, '\r' и Realterm
Я хочу, чтобы результаты каждого из 6 ультразвуковых модулей печатались в соответствующей строке после получения новых результатов, а не выдавали непрерывный поток (см. прикрепленное изображение). Я загрузил Realterm и получил результаты, чтобы показать там, поскольку я читал, что последовательный монитор не может этого сделать, но я не знаю, где поместить синтаксис '\ r' в моем скрипте, поскольку у меня есть несколько последовательных .prints для отображения нужных мне данных.
Вот раздел для одного из ультразвуковых модулей, они просто повторяются для разных модулей.
Заранее спасибо за любую помощь!
//Расстояние до объекта впереди. большая продолжительность1, расстояние1; digitalWrite(trigPin1, ВЫСОКИЙ); digitalWrite(trigPin1, LOW); длительность1 = ИмпульсВх(эхоПин1, ВЫСОКИЙ); расстояние1 = (длительность1/2) / 29,1; delay(500); если (расстояние1 >= 40){ Serial.print("Ничего впереди, хорошо"); Serial.print (расстояние1); Serial.println("см");} иначе если (расстояние1 <= 39 || расстояние1 >= 29){ Serial.print("Автомобиль впереди, медленно"); Serial.print (расстояние1); Serial.println("см");}```
@Frank Warren, 👍0
1 ответ
\r
возвращает курсор в начало текущей строки. Вы не можете использовать его для возврата к предыдущим строкам.
Вместо этого вам нужно выучить escape-последовательности ANSI, чтобы перемещать курсор.
Например, Serial.print("\e[2J");
очистит весь экран. Serial.print("\e[1;1H");
переместит курсор в левый верхний угол экрана (координаты: \e[{Y};{X} H
кстати).
Вы также можете добавить цвет и множество других приятных вещей, которые не может сделать «Последовательный монитор» Arduino IDE.
Хороший справочник по escape-кодам ANSI можно найти здесь.
- Почему я не могу распечатать значения логических переменных (0 и 1) с помощью функции println?
- Печать массива с помощью функции печати и последовательной записи в Arduino Uno
- Arduino Serial.ReadString() проблема
- Serial.print печатает, а lcd.print - нет.
- Создание строк с символами UTF-8 из данных
- Serial Monitor печатает странные значения и пропускает строки
- Что делает Arduino, если последовательное соединение закрыто на другом конце?
- Serial.parseInt работает для первого меню, но теперь в подменю
Спасибо, Serial.print("\e[1;1H"); сработало удовольствие, @Frank Warren