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

Отправка команд в плату

Связь двусторонняя: пишете плате из монитора — и устройство слушается с клавиатуры.

Монитор порта работает в обе стороны: плата пишет вам — и вы можете писать плате. Строка отправки превращает компьютер в пульт управления устройством: «включи», «выключи», «смени режим» — с клавиатуры. Это первый шаг к по-настоящему интерактивным проектам.

Как это устроено со стороны платы

Скетч читает присланное командой Serial.read() (или Serial.readString() для целых слов) и решает, что делать:

  • пришла «1» — включить светодиод;
  • пришла «0» — выключить;
  • пришло «свет» — прислать в ответ показание датчика.

Такие примеры есть во встроенном разделе про связь — с русскими комментариями к каждой строке.

Поле отправки сообщений и выбор окончания строки в мониторе порта Trema IDE
Внизу — поле отправки и выбор окончания строки: плата слышит вас так же, как вы её.

Вот полный скетч, который слушает команды из монитора: напишите on, off или blink — и плата послушается.

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.println("Команды: on, off, blink");
}

void loop() {
  if (Serial.available() > 0) {
    String cmd = Serial.readStringUntil('\n');
    cmd.trim();  // без этого в строке останется невидимый символ конца строки

    if (cmd == "on") {
      digitalWrite(LED_BUILTIN, HIGH);
      Serial.println("Светодиод включён");
    } else if (cmd == "off") {
      digitalWrite(LED_BUILTIN, LOW);
      Serial.println("Светодиод выключен");
    } else if (cmd == "blink") {
      for (int i = 0; i < 3; i++) {
        digitalWrite(LED_BUILTIN, HIGH);
        delay(150);
        digitalWrite(LED_BUILTIN, LOW);
        delay(150);
      }
      Serial.println("Мигнул три раза");
    } else {
      Serial.print("Не знаю команду: ");
      Serial.println(cmd);
    }
  }
}

Обратите внимание на cmd.trim(): без него в строке остаётся невидимый символ конца строки, и сравнение с on внезапно перестаёт срабатывать. Это ошибка, на которой спотыкаются все и по одному разу.

Зачем это в обучении

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

Идеи для первых проектов с командами

  • Настольная лампа с консолью — «вкл», «выкл», «ярче», «тусклее».
  • Запрос показаний — «темп?» — плата отвечает температурой: прообраз всех умных датчиков.
  • Режимы гирлянды — цифры 1–5 переключают эффекты: праздничный хит.

Подводные камни

  • Скорость та же, что и для чтения: не совпала — плата «не слышит» («Подобрать скорость»).
  • Символ конца строки — если скетч ждёт перевод строки, следите за режимом отправки: классическая причина «команда уходит, но не срабатывает».
  • Числа против буквSerial.read() возвращает код символа: «1» — это 49, не 1. Сравнивайте с '1' — и всё сойдётся.

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