}
void loop()
{
Serial.println("\nAnalog Pin\tRaw Value\tPercentage");
Serial.println("------------------------------------------");
- 127 -
for (int i = 0; i < 10; i++)
{
int val = analogRead(POT);//Чтение данных потенциометра
int per = map(val, 0, 1023, 0, 100);//Перевод в процентное значение
Serial.print("AO\t\t");
Serial.print(val);//Вывод аналогового значения
Serial.print("\t\t");
Serial.print(per);//Вывод процентного значения
Serial.println ( "%");
delay(1000);
//Ожидание 1 сек перед получением новых данных
}
}
При повороте движка потенциометра данные, выдаваемые в последовательный порт, должны выглядеть примерно так, как на рис. 6.7.
Рис. 6. 7. Скриншот терминала последовательного порта с данными в виде таблицы
Функции Serial.print() и Serial.println() позволяют вывести данные в конкретном формате. Есть опции для представления данных в различных форматах, включая шестнадцатеричный, восьмеричной и двоичный. По умолчанию принят деся
- 128 -
тичный формат ASCII. У функций Serial.print() и Serial.println() есть дополнительный второй параметр, который определяет формат выводимых данных.
В табл. 6.1 приведены примеры вывода одинаковых данных (число 23) в различных форматах и их отображения в мониторе последовательного порта.
Таблица 6.1. Тип последовательных данных
Формат | Код | Отображение данных |
Decimal | Serial.println(23); | 23 |
Hexadecimal | Serial.println(23,HEX); | 17 |
Octal | Serial.println(23,0CT); | 27 |
Binary | Serial.println(23,BIN); | 00010111 |
Что хорошего в общении с Arduino, если разговор идет только в одном направлении? Теперь, когда мы разобрались, как Arduino посьшает данные на компьютер, давайте попробуем это сделать. Вы, наверное, заметили, что в окне монитора последовательного порта Arduino IDE сверху есть поле ввода текста, а снизу - раскрывающееся меню (рис. 6.8).
Рис. 6.8. Скриншот терминала последовательного порта с полем ввода текста и выбранной опцией конца строки в раскрывающемся меню
Во-первых, убедитесь, что в раскрывающемся списке выбран пункт Newline. Опция в выпадающем меню определяет, что добавляется к вашим командам при отправке их в Arduino. Примеры в следующих разделах предполагают, что вы выбрали пункт Newline, который только добавляет \n в конец ваших данных, посьшаемых из поля ввода текста в верхней части окна монитора последовательного порта.
- 129 -
В отличие от некоторых других терминальных программ, монитор последовательного порта Arduino IDE при нажатии клавиши
Запустив монитор последовательного порта Arduino IDE, вы можете вручную отправлять команды в Arduino. Далее рассмотрим, как отправлять последовательности символов и как создать простой графический интерфейс для отправки команд.
У последовательного порта Arduino есть буфер. Другими словами, вы можете отправить несколько байт данных сразу, и Arduino поставит их в очередь и обработает их в том порядке, как задумано в вашей программе. Скорость передачи данных не особенно критична, а вот отправка слишком большого объема данных может вызвать переполнение буфера и потерю информации.