Глиф Учебники

Непонятные символы в мониторе порта Arduino

Справочник · Arduino · 2 минуты чтения

В девяти случаях из десяти причина — разная скорость. Число в Serial.begin(…) в скетче и скорость, выбранная в мониторе порта (список справа вверху монитора, например «9600 baud»), должны совпадать.

Arduino
void setup() {
  Serial.begin(9600);       // это число
  Serial.println("Проверка связи");
}

void loop() {
}

Если в скетче Serial.begin(115200), в мониторе тоже выберите 115200. Текст, уже напечатанный на неверной скорости, останется мусором — нажмите RESET на плате, чтобы скетч начал сначала.

Если скорость совпадает

Монитор пустой

Русские буквы

Arduino IDE 2 сохраняет скетч в UTF-8 и так же показывает текст в мониторе, поэтому строки вроде Serial.println("Проверка связи") выводятся нормально. Если русский текст в мониторе искажён, а латиница нет — скетч, вероятно, сохранён в другой кодировке старым редактором. Откройте его в Arduino IDE 2, перепечатайте русские строки и сохраните.

Русские буквы в UTF-8 занимают по 2 байта, поэтому длинные русские строки быстрее расходуют память. Храните их во флеш-памяти через F("…"): Serial.println(F("Проверка связи"));.

На дисплеях LCD 1602 русских букв обычно нет вовсе — это свойство дисплея, а не монитора (справка Как подключить дисплей LCD 1602 по I2C).