Последовательный монитор Arduino используется для отладки программы микроконтроллера, получения информации о работе датчиков и передачи команд через USB-порт. Что представляет собой последовательный монитор? Рассмотрим работу с последовательным монитором: выбор скорости обмена информацией, команды в программе для вывода текста и переменных на последовательный монитор Arduino IDE.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
Дополнительные материалы на эту тему:
Arduino serial monitor состоит из окна, разделенного на три части. Верхняя часть представляет собой поле ввода, куда можно отправлять данные с компьютера. В центре — данные, полученные от микроконтроллера. В нижней части окна расположено меню настроек. Чтобы избежать ошибки при загрузке скетча и открытии монитора порта в Arduino IDE, необходимо выбрать COM-порт, на котором обнаружена плата Arduino.
Что такое serial monitor Arduino IDE?

Чтобы открыть монитор порта, щелкните на иконке в правом верхнем углу Arduino IDE или воспользуйтесь комбинацией клавиш Ctrl+Shift+M. По умолчанию монитор Arduino настроен на скорость 9600 бит/с — Serial.begin(9600), поэтому многие программы используют именно эту скорость. Если скорость передачи данных в скетче и настройки serial monitor отличаются, то информация будет отображаться в виде иероглифов.
Отправка и прием данных на serial monitor
При работе утилитой используются следующие команды:
Serial.begin(); — запуск последовательного монитора порта
Serial.end(); — остановка и очистка последовательного монитора
Serial.print(); — отправка данных на последовательный монитор
Serial.println(); — отправка данных на монитор с переносом строки
Serial.read(); — получение данных с последовательного монитора
Serial.parseInt(); — считывание больших чисел с монитора порта
Скетч для вывода текста на мониторе порта
void setup(){
Serial.begin(9600);
Serial.print("Hello!");
}
void loop(){
}
Скетч для вывода переменных на монитор порта
int x;
void setup(){
Serial.begin(9600);
}
void loop(){
x = x + 1;
Serial.print("x = ");
Serial.println(x);
delay(1000);
}

Если необходимо отключить монитор или очистить буфер обмена, используется команда Serial.end(). Для возобновления обмена информацией между Arduino и компьютером выполняется команда Serial.begin(). А для вывода сообщений на последовательный монитор Arduino IDE можно использовать табуляцию и перенос строки, чтобы сделать информацию более читабельной. Смотрите следующий пример программы.
Скетч для переноса строки и табуляции
int x;
void setup(){
Serial.begin(9600);
}
void loop(){
x = x + 1;
Serial.print("x");
Serial.print("\t"); // табуляция
Serial.print("=");
Serial.print("\t"); // табуляция
Serial.println(x);
delay(1000);
}
Рассмотрим, как управлять платой Arduino с компьютера через монитор порта с помощью функции Serial.available(). Эта функция используется для получения количества байтов, доступных для чтения в буфере монитора порта Arduino IDE. При этом буфер монитора Arduino IDE может хранить максимум 64 байта. Функция Serial.available() также используется при обмене данными между блютуз модулем hc-05 и Arduino.
Как управлять Ардуино с компьютера через клавиатуру

Функция Serial.available в языке Arduino проверяет наличие информации, поступающих на микроконтроллер через последовательный порт UART. И в этом примере через клавиатуру компьютера мы будем управлять светодиодом и сервомотором, подключенных к Ардуино. Отправлять команды на микроконтроллер через UART можно не только с помощью цифр, но и с помощью букв латинского алфавита и спецсимволов.
Скетч для управления Ардуино с клавиатуры компьютера
#include "Servo.h"
Servo servo;
int val;
#define LED 10 // пин подключения светодиода
#define SERVO 12 // пин подключения серво
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
servo.attach(SERVO);
}
void loop() {
// ждем команду с монитора порта
if (Serial.available()) {
val = Serial.read();
// включаем или выключаем светодиод
if (val == '1') { digitalWrite(LED, HIGH); }
if (val == '0') { digitalWrite(LED, LOW); }
// поворачиваем серво в зависимости от команды
if (val == '2') { servo.write(0); }
if (val == '3') { servo.write(90); }
if (val == '4') { servo.write(180); }
}
}
Заключение. Что такое монитор последовательного порта Arduino? Как правильно настроить serial monitor Arduino, чтобы не получить квадратики и иероглифы — это команда Serial begin(9600) (скорость обмена данными по умолчанию). Для отправки данных в последовательный порт с компьютера и управления Arduino мы используем команду Serial.read() для приема данных и Serial.parseInt() для чтения больших чисел.
