В этом уроке мы познакомимся со встроенной в Arduino IDE утилитой — монитором последовательного интерфейса. Это удобный для работы инструмент.

Необходимые компоненты

qПлата для прототипирования;

qArduino Nano.

Практическое задание

Рассмотрим взаимодействие контроллера ArduinoNano с портом.

  1. Сначала напишем простой скетч, который будет записывать в порт фразу с заданной периодичностью (листинг У3.1).

Листинг У3.1

void setup () {        // Функция setup () вызывается

                       // при старте программы

Serial.begin(9600); // Инициализируем, чтобы открыть порт.

                    // (9600)- это скорость работы

                    // порта 9600 битов (бод)

}

void loop(){ //Функция loop () — это основной цикл программы

Serial.println("Ardino Nano"); //Печатает данные в порт

delay(1000);//Задержка  1 секунда

}

  1. Загрузим этот скетч  в контроллер (Файл | Загрузить).
  2. 3.Для начала обмена данными необходимо открыть монитор, выбрав в меню команду Сервис| Монитор порта (рис. У3.1).

Screenshot 8

Рис. У3.1. Открытие монитора порта

  1. Мы видим, что контроллер непрерывно пересылает нашу фразу в порт (рис. У3.2)

Screenshot 9

Рис. У3.2. Пересылка данных в порт

Теперь наладим обратную связь. Мы будем пересылать команду посредством порта Arduino, чтобы она включала и выключала встроенный на плате светодиод.

  1. Для этого напишем следующий скетч (листинг У3.2).

Листинг У3.2

int outputPin = 13;           // здесь храним номер контакта
int val;                      // здесь будет храниться принятый символ
void setup()
{
  Serial.begin(9600);         // установка порта на

                              // скорость 9600 бит/сек
  pinMode(outputPin, OUTPUT); // устанавливаем 13-й контакт

                              // в режим вывода
}
void loop()
{
  if (Serial.available()) {       // если есть принятый символ,
    val = Serial.read();          //  то читаем его и сохраняем в val
    if (val == 'H') {                // если принят симовол 'H',...
      digitalWrite(outputPin, HIGH); // то включаем светодиод
    }
    if (val == 'L') {                // если принят симовол 'L',
      digitalWrite(outputPin, LOW);  // то выключаем светодиод
    }
  }
}

  1. Загрузим скетч У3.2 в контроллер (Файл | Загрузить).
  2. Теперь необходимо открыть монитор порта и отправлять из него на Arduinoсимволы H и L. То есть, вводим в поле ввода символы H или L и нажимаем кнопку Послать (рис. У3.3). Пересылая с компьютера в порт Arduino команды, мы управляем встроенным светодиодом (рис. У4.4).

Screenshot 10

Рис. У3.3. Пересылка на Arduinoсимвола H

Screenshot 11

Рис. У3.4. Управление встроенным светодиодом: а — диод включен (принят символ H); б — диод выключен (принят символ L)