Монитор последовательного порта Ардуино ► встроен в среду Arduino IDE и служит для связи компьютера с контроллером. Рассмотрим, команды для работы с утилитой.
СОДЕРЖАНИЕ ►
§ Как включить монитор порта Arduino
§ Прием и отправка текста Serial Monitor
§ Вывод текста в Serial Monitor Arduino
§ Перенос строки в Serial Monitor Arduino
§ Вывод переменных в Serial Monitor
§ Табуляция и перенос строк Serial Monitor
Монитор порта Ардуино – это утилита, встроенная в среду программирования Arduino IDE и служит она для связи компьютера с контроллером. С помощью монитора последовательного порта производится отладка прошивки микроконтроллера, получение информации о работе программы и отправка команд к микроконтроллеру по USB. Рассмотрим, как работать с утилитой: выбор скорости обмена информацией, команды в скетче для вывода текста и переменных на Serial Monitor Arduino IDE.
Как включить Serial Monitor Arduino
Утилита состоит из окна, разбитого на три части. В верхней части находится поле ввода, где можно с компьютера отправлять данные в последовательный порт. В центре отображаются данные, полученные из последовательного порта. В нижней части окна — меню настроек. Монитор порта Arduino может работать с одним последовательным портом, чтобы не было ошибки при загрузке скетча и открытии Serial Monitor, необходимо выбрать COM порт на котором определилась плата Arduino UNO.
Для открытия утилиты необходимо нажать на иконку в верхнем правом углу Arduino IDE, использовать комбинацию клавиш Ctrl+Shift+M или выбрать в панели меню: Сервис -> Монитор порта. По умолчанию в Serial Monitor для Ардуино установлена скорость передачи данных 9600 бит в секунду, поэтому во многих скетчах используется такая скорость. Если скорость передачи данных в скетче и в настройках монитора порта будут разные, то вся информация будет отображаться в виде иероглифов.
Как включить монитор порта ардуино: команды, скетч
Прием и отправка текста на монитор порта
Для работы с утилитой, используют следующие команды:
§ Serial.begin(); — команда запускает последовательный порт
§ Serial.end(); — останавливает и очищает последовательный порт
§ Serial.print(); — отправляет данные в последовательный порт
§ Serial.println(); — отправляет данные с переносом строки
§ Serial.read(); — принимает данные из последовательного порта
§ Serial.parseInt(); — чтение больших чисел из монитора порта
Пример 1. Команды для вывода текста
void setup()
{
Serial.begin(9600); // подключаем монитор порта
Serial.print("Start"); // выводим текст на монитор 1 раз
}
void loop()
{
Serial.print("Hello!"); // выводим текст 1 раз в секунду
delay(1000); // задержка в 1 секунду
}
Пример 2. Команды с переносом строки
void setup()
{
Serial.begin(9600); // подключаем монитор порта
Serial.println("Start"); // выводим текст на монитор 1 раз
}
void loop()
{
Serial.println("Hello!"); // выводим текст 1 раз в секунду
delay(1000); // задержка в 1 секунду
}
Пример 3. Вывод переменных на монитор порта
void setup()
{
Serial.begin(9600); // подключаем монитор порта
Serial.println("Start"); // выводим текст на монитор 1 раз
}
void loop()
{
byte z; // освобождаем память для переменной z
byte x = random(0,10); // генерируем случайное число x
byte y = random(0,10); // генерируем случайное число y
z = x + y; // выполняем операцию сложения
// выводим результаты арифметических операций
Serial.print(x);
Serial.print(" + ");
Serial.print(y);
Serial.print(" = ");
Serial.println(z);
delay(1000); // задержка в 1 секунду
}
Скетч для общения компьютера и Ардуино через Serial Monitor
Для вывода сообщений на мониторе порта можно использовать табуляцию и перенос строк для оформления, чтобы сделать информацию удобной для восприятия.
Пример 4. Команды для табуляции и переноса строк
void setup()
{
Serial.begin(9600); // подключаем монитор порта
Serial.println("Start"); // выводим текст на монитор 1 раз
}
void loop()
{
byte z; // освобождаем память для переменной z
byte x = random(0,10); // генерируем случайное число x
byte y = random(0,10); // генерируем случайное число y
z = x * y; // выполняем операцию умножения
// выводим результаты арифметических операций
Serial.print(x);
Serial.print("\t"); // табуляция
Serial.print(y);
Serial.print("\t"); // табуляция
Serial.print(z);
Serial.print("\n"); // перенос строки
delay(1000); // задержка в 1 секунду
}
Часто в скетчах требуется отключить Serial Monitor или очистить буфер обмена последовательного порта, для этого используется команда Serial.end();, чтобы запустить обмен информацией между Ардуино и компьютером снова выполняется команда Serial.begin();, которую можно прописать в процедуре loop. Если у вас выводятся кракозябры и иероглифы, то проверьте скорость передачи данных, установленную в скетче, и в настройках утилиты (правый нижний угол).
Как подключить монитор порта Ардуино правильно, чтобы не выводились квадратики и иероглифы мы разобрались — это команда Serial.begin(9600); (скорость обмена данными по умолчанию). Чтобы отправлять данные в последовательный порт с компьютера и управлять Ардуино, используется команда Serial.read(); для приема данных и Serial.parseInt(); для чтения больших чисел. Использование данных команд на примере можно посмотреть здесь: Управление Ардуино с компьютера.