OKiR_Lektsia_5

Содержание

Слайд 2

Serial. Общаемся с компьютером

Набор функций Serial — это стандартный набор функций, который

Serial. Общаемся с компьютером Набор функций Serial — это стандартный набор функций,
используется для передачи данных через последовательный порт Arduino. Последовательный порт работает с двумя цифровыми пинами Ардуино 0-ой (RX) и 1-ый (TX). В большинстве плат ардуино доступен 1 интерфейс Serial.

Среда Arduino IDE не содержит отладчика, что создает определенные проблемы в поиске ошибок кода программы. Без ошибок программы сразу не пишутся. Формальные ошибки выявляются при компиляции, а с алгоритмическими и вычислительными ошибками намного сложнее. Основная функция отладки это увидеть состояние программы, узнать значение переменных. Это можно сделать, передав нужную информацию на компьютер через последовательный интерфейс. Физическое подключение платы Ардуино к компьютеру через USB кабель существует всегда. Среда Arduino IDE имеет монитор последовательного порта, позволяющий получать и посылать данные обмена с платой. Можно передать на компьютер любую информацию о состоянии программы и вывести ее на дисплей.

Слайд 3

Последовательный интерфейс UART.

UART в переводе это универсальный асинхронный приемопередатчик. Данные UART передаются

Последовательный интерфейс UART. UART в переводе это универсальный асинхронный приемопередатчик. Данные UART
последовательным кодом в следующем формате.

Каждый бит передается за равные промежутки времени. Время передачи одного бита определяется скоростью передачи.

Слайд 4

Часто используются следующие стандартные скорости передачи интерфейса UART.

Обмен информацией через UART происходит

Часто используются следующие стандартные скорости передачи интерфейса UART. Обмен информацией через UART
в двойном режиме, т.е. передача данных может происходить одновременно с приемом. Для этого в интерфейсе UART есть два сигнала:
TX – выход для передачи данных;
RX – вход для приема данных.
При соединении двух UART устройств выход TX одного устройства соединяется со входом RX другого. А сигнал TX второго UART подключается к входу RX первого.

Бод (англ. baud) в связи и электронике — единица измерения символьной скорости.

Слайд 5

Библиотека Serial для работы с UART Ардуино.

Для работы с аппаратными UART контроллерами

Библиотека Serial для работы с UART Ардуино. Для работы с аппаратными UART
в Ардуино существует встроенный класс Serial. Он предназначен для управления обменом данными через UART. Перед тем, как перейти к функциям класса Serial, необходимо понять разницу в формате данных обмена.

Через последовательный интерфейс данные всегда передаются в двоичном коде. Вопрос как эти данные интерпретировать, как воспринимать. Например, передан двоичный код “01000001” (десятичный 65). Как его отобразить на экране? Может быть передано число 65 и на экране надо вывести ”65”. А может это код буквы ”A”, тогда на экране надо написать ”A”. Просто необходимо знать в каком формате передаются данные.

В классе Serial данные могут передаваться в двух форматах:
как бинарный код;
как ASCII символы.

Слайд 6

ASCII — это таблица кодировки символов, в которой каждой букве, числу или

ASCII — это таблица кодировки символов, в которой каждой букве, числу или
знаку соответствует определенное число. В стандартной таблице ASCII 128 символов, пронумерованных от 0 до 127. В них входят латинские буквы, цифры, знаки препинания и управляющие символы.

ASCII кодировка

Слайд 7

Основные функции класса Serial.

Serial.begin

Разрешает работу порта UART и задает скорость обмена в

Основные функции класса Serial. Serial.begin Разрешает работу порта UART и задает скорость
бод (бит в сек). Для задания скорости передачи данных рекомендуется использовать стандартные значения из таблицы.

Serial.begin(38400);       // инициализация порта, скорость 38400 бод

Serial.end
Отключает порт UART, освобождает выводы RX и TX.

Serial.end();      // закрыть порт UART

Слайд 8

Serial. Available
Возвращает количество байт, принятых последовательным портом и записанных в буфер. Буфер

Serial. Available Возвращает количество байт, принятых последовательным портом и записанных в буфер.
последовательного порта может хранить до 64 байт. В случае пустого буфера возвращает 0.

int n; n= Serial. available();     // в n число принятых байтов

Serial.print
Выводит данные через последовательный порт UART в виде ASCII символов. Функция имеет различные формы вызова для разных форматов и типов данных.

Serial.print(“Буквы”);   // выводит строку “Буквы”

Слайд 11

Serial.println
Выводит данные через последовательный порт UART в виде ASCII символов с добавлением

Serial.println Выводит данные через последовательный порт UART в виде ASCII символов с
символов переноса строки (\r, код 13) и (\n, код 10). Т.е. следующее сообщение будет отображаться с новой строки. В остальном аналогична функции print().

int d= 83; Serial.print(d, DEC);   // вывод строки “83” Serial.println(d, DEC);   // вывод строки “83 \r \n”

Serial.write
Выводит двоичные данные через последовательный порт UART. Возвращает количество переданных байтов.

Слайд 12

Применение класса Serial.

Класс Serial встроенный. Для него не надо искать библиотеку и

Применение класса Serial. Класс Serial встроенный. Для него не надо искать библиотеку
подключать ее. Чтобы использовать UART достаточно в setup() разрешить работу порта и задать скорость:

void setup() {   Serial.begin(9600); // инициализируем порт, скорость 9600 }

Теперь можно передавать данные с помощью функций print() или write().

Serial.println("Message to monitor");  // сообщение в монитор последовательного порта

Слайд 13

Давайте выведем какое-нибудь сообщение. Это можно сделать в методе setup(), так как

Давайте выведем какое-нибудь сообщение. Это можно сделать в методе setup(), так как
нам не нужно повторять одну и ту же фразу бесконечно. Метод loop() оставляем пустым.