База знаний · Монитор порта и график

Отладка печатью: первый метод инженера

Пусть программа рассказывает, что делает: главный приём поиска ошибок — доступен с первого дня.

Код собрался без ошибок, а робот всё равно не едет? Это не поломка — это логика свернула не туда, и компилятор тут не помощник. Главный инструмент таких загадок — отладка печатью: заставьте программу рассказывать, что она делает, и слушайте рассказ в мониторе порта.

Метод в три строки

Расставьте «маячки» по ключевым точкам программы:

  • Serial.println("старт"); — первой строкой после Serial.begin: канал связи жив.
  • Serial.println("вижу препятствие"); — внутри условий: видно, какие ветки срабатывают.
  • Serial.println(distance); — значения переменных: видно, с чем программа принимает решения.

Прошили, открыли монитор — и читаете ход мыслей устройства. Где рассказ разошёлся с ожиданием — там и ошибка.

Отладка печатью: сообщения-маячки программы в мониторе порта Trema IDE
Программа рассказывает — вы слушаете: место расхождения и есть ошибка.

Приём целиком помещается в три строки: печатаем имя переменной, её значение и идём дальше.

int counter = 0;

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

void loop() {
  counter = counter + 1;

  // Печать — самый честный отладчик: видно, что программа реально считает,
  // а не что нам кажется. Имя переменной рядом со значением экономит время.
  Serial.print("counter = ");
  Serial.println(counter);

  if (counter > 5) {
    Serial.println("Сбрасываю счётчик");
    counter = 0;
  }

  delay(500);
}

Главное правило — печатать имя вместе со значением. Лента из голых чисел через пять минут работы превращается в загадку не хуже исходной.

Разбор типовой загадки

«Робот должен поворачивать у стены, но едет прямо». Маячки: печатаем расстояние и слово «поворот» внутри условия. Смотрим монитор: расстояние 8 см, а «поворот» не печатается — значит, условие не срабатывает. Глядим на условие: if (distance > 10) — знак перепутан! Три минуты вместо часа гадания.

Правила хорошей печати

  • Печатайте слова, не только числа — «дистанция: 8» читается лучше голого «8».
  • Не спамьте — маячок в цикле без задержки зальёт монитор: печатайте при событиях или с интервалом.
  • Нашли ошибку — приберитесь — лишние маячки уберите, полезные (важные события) можно оставить: это бесплатная телеметрия устройства.

Почему мы учим этому с первого дня

Отладка печатью — универсальный навык: тот же приём работает в любом языке и любой системе, от скетча до серверов. Ребёнок, освоивший «рассказ программы» на роботе, получил профессиональный метод на всю жизнь. А если монитор молчит — начните с разбора «Монитор порта пуст».

Обновлено: 19 июля 2026