Пример 30. Serial Port

Примеры

ПРИМЕРЫ

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

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

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

 
Любая плата Ардуино имеет, как минимум, один аппаратный последовательный интерфейс UART. Платы Arduino Mega и Arduino Due имеют по три порта.

Плата Arduino UNO имеет один порт UART, сигналы которого подключены к выводам 0 (сигнал RX) и 1 (сигнал TX). Сигналы имеют логические уровни TTL (0…5 В). Через эти выводы (0 и 1) можно подключить к плате другое устройство имеющее интерфейс UART.

Кроме функции связи с другими контроллерами порт UART платы Arduino UNO используется для загрузки в контроллер программы из компьютера. Для этого к этим же сигналам (RX и TX) подключены соответствующие выводы микросхемы ATmega16U2 – преобразователя интерфейса USB/UART. Микросхема преобразователя подключена через резисторы сопротивлением 1 кОм.

Фрагмент схемы платы Arduino UNO R3:

Фрагмент схемы платы Arduino UNO R3

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

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

В классе Serial данные могут передаваться в двух форматах:

  • как бинарный код;
  • как ASCII символы.

Например, монитор последовательного порта в программе Arduino IDE принимает данные как ASCII текст. Для того, чтобы он вывел на экран компьютера число «65» надо передать коды символов «6» и «5». А код «65» монитор отобразит как символ «A».

Монитор порта


Описание:

В данном примере продемонстрируем работу функции передачи и приема данных через последовательный порт. На компьютере мы будем передавать данные на плату Arduino, которая исходя из этих данных будет контролировать состояние RGB LED модуля. После загрузки скетча в плату откройте монитор порта (Ctrl + Shift + M). В соответствии с программой выберите скорость передачи данных 9600 бод. Теперь, отправляя «r», модуль засветится красным, «g»зеленым и «b»голубым.


Схема:

Подключение RGB LED модуля к Arduino


Скетч: