Нужен для отладки программ с внесением минимальных изменений в код. Возьмем модифицрованный скетч blink, где продолжительность свечения светодиода изменяется в зависимости от потенциомера на ноге A0. Код (C++): #define TRACE // Для полного отключения отрисовки достаточно закоментировать эту строчку. #include <Trace.h> // импортируем нашу библиотеку // Настраиваем наш график // Скобки круглые!! TRACE_INTERRUPT ( TRACE_DIGITAL(13) TRACE_ANALOG(A0) ) void setup() { pinMode(A0, INPUT); pinMode(13, OUTPUT); TRACE_SETUP(50000) // интервал в мкс, через которые считывать данные. } void loop() { unsigned long x = analogRead(A0); digitalWrite(13, HIGH); delay(x); digitalWrite(13, LOW); delay(1023 - x); } Заливаем, запускаем, открываем в arduino ide плоттер (ctrl+shift+L), получаем картинку Верхняя половина показывает значение с пина A0 (TRACE_ANALOG(A0)) Нижняя состояние пина 13 ( TRACE_DIGITAL(13)) Наглядно видим, как заполняемость пина 13 изменяется в завимимости от уровня на пине A0 Кроме того, можно отслеживать произвольные переменные из кода. Тут мы просто рисуем синусоиду, но можно, например, сделать переменную, в которую мы запишем отдельные этапы работы программы, и сможем в реальном времени увидеть, как пины работают на каком этапе. Код (C++): #define TRACE #include <Trace.h> volatile int y = 0; TRACE_INTERRUPT ( TRACE_VALUE(y, 2000) ) void setup() { TRACE_SETUP(50000) } void loop() { y = (sin((float)millis()/1000)+1) * 1000; } Библиотека использует библиотеку TimerOne Макросы #define SERIAL_RATE 9600 - скорость серийного порта TRACE_DIGITAL(pin) - рисует состояние цифрового пина. (digitalRead). Относительная высота вывода настраивается макросом #define DIGTAL_HEIGHT 100 TRACE_ANALOG(pin) - рисует состояние аналогового пина. (analogRead). Относительная высота вывода настраивается макросом #define ANALOG_HEIGHT 100 TRACE_VALUE(val, max) - рисует состояние целочисленной volatile - переменной в диапазоне от 0 до max. Относительная высота вывода равна max TRACE_SETUP(t) - включает отсылку и настраивает интервал в t микросекунд.
Забыл написать, что этим можно еще и внешние устройства мониторить, просто подключив их к пинам ардуино.
Что касается отладки таким способом, это дело вкуса, наличие оборудования (не у всех есть лог. анализаторы, осциллографы). Мне Ваша идея и сам плоттер будет интересен к примеру, для отображения температуры и выхода ее на заданный уровень в текущем проекте. Пару видео о возможностях плоттера.