Лабораторные работы        Технологии+Бизнес

 

Цель работы


Научиться взаимодействовать с контроллером Arduino через последовательный порт.

Задачи работы

  1. Разработка скетча для управления светодиодом на плате через последовательный порт.
  2. Знакомство с монитором последовательного порта.
  3. Оповещение о переключении светодиода.

Инструменты для выполнения работы

  1. Компьютер.
  2. Плата Arduino с USB выходом (например, Arduino Leonardo).

Теоретическая часть

Для программного взаимодействия с последовательным портом предназначены объекты стандартной библиотеки Arduino под названиями Serial, Serial1, Serial2 и т.д. Как правило, на каждой плате есть один последовательный порт, которому соответствует объект Serial. Данный порт при подключении к ПК позволяет обмениваться данными с компьютером поверх USB. Если микроконтроллер от компьютера отключен, то Serial позволяет обмениваться данными с другими устройствами через цифровые пины 0 и 1. Исключение составляет только Arduino Leonardo, у которой Serial всегда используется для взаимодействия через USB, а для цифровых пинов 0 и 1 используется отдельный объект Serial1.
Задание: соберите информацию о том, у каких микроконтроллеров есть дополнительные объекты для последовательных портов (Serial1, Serial2 и т.д.) и к каким пинам они подключены.
 
 

Выполнение работы

Разработка скетча для управления светодиодом на плате через последовательный порт


Создаем новый скетч с названием SerialTest. В функции setup() инициализируем последовательный порт и 13-й пин для управления светодиодом:
Serial.begin(9600);
pinMode(13,OUTPUT);


В функции loop() проверяем, нет ли данных в последовательном порту. Читаем данные, и если пришел символ "1", включаем светодиод, во всех остальных случаях выключаем:
while(Serial.available())
    digitalWrite(13,(Serial.read()=='1')?HIGH:LOW);
 

Знакомство с монитором последовательного порта

Открываем монитор последовательного порта (Инструменты -> Монитор порта):



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

Оповещение о переключении светодиода

Доработаем скетч так, чтобы в мониторе порта отображалась информация о переключении светодиода. Для этого поменяем код функции loop():

while(Serial.available())
{
    char c=Serial.read();
    if(c=='1')
    {
        digitalWrite(13,HIGH);
        Serial.println("Led On");
    }
    else
    {
        digitalWrite(13,LOW);
        Serial.println("Led Off");
    }
}
    Проверяем монитор порта, теперь при переключении светодиода должны отображаться оповещения.
    Задание: добавьте скриншот окна монитора порта с оповещениями о переключении светодиода
     

    Лабораторные работы        Технологии+Бизнес