Главная chevron_right Функции chevron_right Связь chevron_right Serial

Serial

Serial — встроенный UART-интерфейс Arduino для обмена данными с компьютером и внешними устройствами через Serial Monitor, терминал или внешние модули.

Полная статья

Описание

Serial — это основной способ обмена данными между платой Arduino и компьютером или внешними устройствами. В основе лежит протокол UART (он же USART) — асинхронная последовательная связь, знакомая каждому, кто выводил отладочные сообщения через Serial Monitor. Все платы Arduino поддерживают как минимум один такой порт, а более мощные модели — сразу несколько.

ПлатаПины SerialПины Serial1Пины Serial2Пины Serial3Пины Serial4
UNO R3, UNO R3 SMD Mini0(RX), 1(TX)
Nano (classic)0(RX), 1(TX)
UNO R4 Minima, UNO R4 WiFi0(RX0), 1(TX0)
Leonardo, Micro, Yún Rev20(RX), 1(TX)
UNO WiFi Rev20(RX), 1(TX)
MKR boards13(RX), 14(TX)
Zero0(RX), 1(TX)
GIGA R1 WiFi0(RX), 1(TX)19(RX1), 18(TX1)17(RX2), 16(TX2)15(RX3), 14(TX3)
Due0(RX), 1(TX)19(RX1), 18(TX1)17(RX2), 16(TX2)15(RX3), 14(TX3)
Mega 2560 Rev30(RX), 1(TX)19(RX1), 18(TX1)17(RX2), 16(TX2)15(RX3), 14(TX3)
Nano 33 IoT0(RX0), 1(TX0)
Nano RP2040 Connect0(RX0), 1(TX0)
Nano 33 BLE / Nano 33 BLE Sense0(RX0), 1(TX0)

Плата Nano ESP32 стоит особняком: она построена на ядре ESP32. На этой плате Serial0 соответствует портам RX0 и TX0, а Serial1 и Serial2 — дополнительные порты, которые можно назначить на любые свободные выводы GPIO.

ПлатаПины Serial0Пины Serial1Пины Serial2Пины Serial3Пины Serial4
Nano ESP320(RX0), 1(TX0)Любой свободный GPIOЛюбой свободный GPIO

Подробнее о настройке дополнительных последовательных портов Nano ESP32 читайте в этой статье.

Важно для старых плат

На платах Uno, Nano, Mini и Mega выводы 0 и 1 (RX/TX) задействованы для связи с компьютером через USB. Если подключить к ним что-либо постороннее, это может нарушить передачу данных и даже заблокировать загрузку скетча. Отключайте всё лишнее от этих выводов перед прошивкой.

Serial Monitor

Для общения с платой Arduino прямо из среды разработки откройте встроенный Serial Monitor Arduino. Главное условие: скорость передачи данных в мониторе должна совпадать со значением, которое вы указали в begin() — иначе в терминале будет каша из символов.

Уровни сигналов и совместимость

Выводы TX/RX работают с логическими уровнями TTL: 5 В или 3,3 В в зависимости от платы. Это принципиально отличается от стандарта RS232, где напряжения достигают ±12 В. Прямое подключение к порту RS232 компьютера или промышленного оборудования гарантированно повредит плату Arduino — для такого сопряжения нужен специальный преобразователь уровней.

Дополнительные порты на Mega

Если вы используете Serial1, Serial2 или Serial3 на Mega для связи с компьютером, понадобится внешний адаптер USB-to-serial, поскольку встроенный адаптер обслуживает только основной порт. При подключении к другому TTL-устройству соедините TX платы с RX устройства, RX платы — с TX устройства, и обязательно объедините земли обоих устройств.

Где применяется

  • Отладка скетча — вывод значений переменных, состояния датчиков и сообщений об ошибках в Serial Monitor.
  • Управление платой с компьютера — приём команд из терминала или Python-скрипта и выполнение действий на их основе.
  • Связь с внешними модулями — GPS-приёмники, Bluetooth-модули, дисплеи и другие устройства с UART-интерфейсом.
  • Передача данных между платами — когда одна Arduino отправляет показания датчиков, а другая их принимает и обрабатывает.

Практические замечания

  • Всегда вызывайте begin() в setup() до любых операций чтения или записи — без инициализации порт не работает.
  • Скорость передачи данных (baud rate) должна совпадать на обоих концах соединения. Наиболее распространённые значения: 9600 и 115200.
  • Serial на большинстве плат блокирующий: функции записи ждут, пока буфер не освободится. Учитывайте это в чувствительных ко времени скетчах.
  • Если в Serial Monitor отображаются случайные символы — первым делом проверьте совпадение скорости передачи.
  • Буфер приёма ограничен (обычно 64 байта). Если данные поступают быстрее, чем скетч их читает, часть байт будет потеряна.

Функции

Полезные материалы