×
Traktatov.net » Изучаем Arduino: инструметы и методы технического волшебства » Читать онлайн
Страница 50 из 138 Настройки

}

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. Скриншот терминала последовательного порта с данными в виде таблицы

6.6.3. Изменение представлений типа данных

Функции 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


6.6.4. Общение с Arduino

Что хорошего в общении с Arduino, если разговор идет только в одном направлении? Теперь, когда мы разобрались, как Arduino посьшает данные на компьютер, давайте попробуем это сделать. Вы, наверное, заметили, что в окне монитора последовательного порта Arduino IDE сверху есть поле ввода текста, а снизу - раскрывающееся меню (рис. 6.8).

Рис. 6.8. Скриншот терминала последовательного порта с полем ввода текста и выбранной опцией конца строки в раскрывающемся меню

Во-первых, убедитесь, что в раскрывающемся списке выбран пункт Newline. Опция в выпадающем меню определяет, что добавляется к вашим командам при отправке их в Arduino. Примеры в следующих разделах предполагают, что вы выбрали пункт Newline, который только добавляет \n в конец ваших данных, посьшаемых из поля ввода текста в верхней части окна монитора последовательного порта.

- 129 -

В отличие от некоторых других терминальных программ, монитор последовательного порта Arduino IDE при нажатии клавиши или кнопки Отправить посылает всю командную строку. Другие последовательные терминалы, например Putty (www.exploringarduino.com), посылают символы сразу после их ввода.

6.6.5. Чтение информации из компьютера или другого последовательного устройства

Запустив монитор последовательного порта Arduino IDE, вы можете вручную отправлять команды в Arduino. Далее рассмотрим, как отправлять последовательности символов и как создать простой графический интерфейс для отправки команд.

У последовательного порта Arduino есть буфер. Другими словами, вы можете отправить несколько байт данных сразу, и Arduino поставит их в очередь и обработает их в том порядке, как задумано в вашей программе. Скорость передачи данных не особенно критична, а вот отправка слишком большого объема данных может вызвать переполнение буфера и потерю информации.