Лабораторная работа 6 Опрос Arduino с компьютера


Download 387.47 Kb.
Sana20.04.2020
Hajmi387.47 Kb.
TuriЛабораторная работа

Лабораторная работа 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'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2020
ma'muriyatiga murojaat qiling