Лабораторная работа 6 Опрос Arduino с компьютера
Download 387.47 Kb.
|
Лаборатория 6
Лабораторная работа 6 Опрос Arduino с компьютера Основная функция, которую обеспечивает последовательный интерфейс, — вывод данных с Arduino в терминал компьютера. В предыдущих главах об этом уже упоминалось. В этом разделе более детально остановимся на данном вопросе и позже рассмотрим примеры приложений, которые отвечают на данные, которые вы отправляете, вместо того, чтобы просто выводить их в терминал. Этот процесс оди- наков для всех плат Arduino.
Для вывода данных в терминал существуют три функции: ♦ Serial.begin(baud_rate) \ ♦ Serial.print("Message"); ♦ Serial.println("Message"), где baudrate и Message — переменные, задаваемые пользователем. Как вы уже знаете, функция serial.begin о вызывается один раз в начале программы в setup (), чтобы настроить последовательный порт для связи. После этого можно вызвать функции serial.print о и Serial.println о для передачи данных в последовательный порт. Единственное различие между ними состоит в том, что функция serial.println о добавляет символ перевода в конце строки. Чтобы по экспериментировать с этими функциями, соберем простую схему, подключив потенциометр к контакту АО платы Arduino, как показано на рис. После подключения потенциометра загрузите простую программу, приведенную в листинге 1, которая выводит показания потенциометра в виде абсолютного значения и в процентах. Листинг1. Тестовая программа вывода значений потенциометра в последовательный порт –pot.ino // Тестовая программа вывода значений потенциометра // в последовательный порт const int POT=0; // Подключение потенциометра к аналоговому входу АО void setup () { Serial.begin(9600); // Инициализация последовательного порта //на скорости 9600 } void loop() { int val = analogRead(POT); // Чтение данных с потенциометра int per = map(val, 0, 1023, 0, 100); // Перевод в процентное значение Serial.print("Analog Reading: "); Serial.print(val); // Вывод аналогового значения Serial.print(" Percentage: "); Serial.print(per); // Вывод значения в процентах Serial.println("%"); delay(1000); // Ожидание 1 сек перед // получением новых данных } Использование специальных символов Вы также можете передавать различные "специальные" (или управляющие) символы, которые позволяют изменить форматирование последовательных данных при выводе на печать. Управляющий символ начинается с обратного слэша (\), за которым следует символ команды. Есть много специальных символов, но два из них представляют наибольший интерес: табуляция и переход на новую строку. Чтобы вставить символ табуляции, нужно добавить к строке управляющую последовательность \t. Символ перехода на новую строку вставляют, добавляя к строке \п. Это особенно полезно, если вы хотите перейти на новую строку в начале передаваемой строки, а не в конце, как делает функция seriai.printino. Если, по некоторым причинам, вы на самом деле хотите напечатать последовательность символов \п или \t в строке, это можно сделать с помощью последовательностей \\п или \\t, соответственно. Листинг 2 представляет собой модификацию листинга 1, но с использованием управляющих символов для отображения данных в табличной форме. Листинг 2. Табличная разметка с помощью управляющих символов – po_tabular.ino // Табличная разметка с использованием управляющих символов const int POT=0; // Подключение потенциометра к аналоговому входу АО void setup() { Serial.begin(9600); // Инициализация последовательного порта //на скорости 9600 } void loop() { Serial.println("\nAnalog Pin\tRaw Value\tPercentage"); Serial. println (" ") ; for (int i = 0; i < 10; i++) { int val = analogRead(POT); // Чтение данных потенциометра int per = map(val, 0, 1023, 0, 100);// Перевод в процентное // значение Serial.print("A0\t\t"); Serial.print(val); // Вывод аналогового значения Serial.print("\t\t"); Serial.print(per); // Вывод процентного значения Serial.println("%"); delay(1000); // Ожидание 1 сек перед // получением новых данных }
При повороте движка потенциометра данные, выдаваемые в последовательный порт, должны выглядеть примерно так, как на рис. Download 387.47 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling