Последовательный порт, параллельный, UART, передача данных с компьютера на микроконтроллер

 

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

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

 

Управление контроллером от компьютера через последовательный порт

int val = 0; //создаём переменную для хранения информации с компьютера

int state=LOW; //состояние светодиода (выкл/вкл)

 

void setup()

{

pinMode(13,OUTPUT); //13 ножка - выход(светодиод)

Serial.begin(9600); //устанавливаем последовательное соединение

}

 

void loop()

{

val = Serial.read(); //читаем информацию с компьютера

if (val == '1') //если считали с компьютера цифру 1, то

{

state = !state; //меняем состояние диода на противоположное

//(HIGH->LOW или LOW->HIGH)

Serial.println("Diode switched!"); //выводим сообщение

//"диод переключился"

}

//проверяем статус и включаем или выключаем светодиод

if (state == HIGH)

digitalWrite(13,HIGH);

else

digitalWrite(13,LOW);

}

 

Связь по последовательному порту называемая как универсальный асинхронный прием/передача (UART). Как правило, она используется для программирования и отладки Arduino через порт USB. Существуют разные датчики и приборы, которые используют UART в качестве основной связи, и иногда нам нужно объединять два и больше Arduino между собой для обмена информацией.

 

Обмен данными между двумя Arduino при помощи программного UART

Рисунок 7 – Объединение двух контроллеров посредством UART

 

Текст программы для управляющего микроконтроллера:

// Подключение библиотеки Software Serial

#include <SoftwareSerial.h>

 

//Объявление дискретных каналы контроллера для связи

SoftwareSerial softSerial(8, 9); // RX, TX

 

void setup()

{

Serial.begin(9600); // Задание скорости передачи данных

softSerial.begin(9600); // Инициализация программного

// последовательного порта

}

void loop()

{

if (Serial.available()) // Проверка получения команд от компьютера

{

softSerial.write(Serial.read()); //Отправка команды на UART

}

}

 

 

Текст программы для управляемого микроконтроллера:

#include <SoftwareSerial.h> // Подключение библиотеки Software Serial

// Назначение задействованных дискретных каналов

SoftwareSerial softSerial(8, 9); // RX, TX

int LED = 13;

 

void setup()

{

softSerial.begin(9600);

pinMode(LED, OUTPUT); // Определение выхода светодиода

}

 

void loop()

{

if (softSerial.available()) //Проверка наличия информации в буфере

{

// Чтение одного символа из буфера и запись его в переменную

int com = softSerial.read();

if (com == 'x')

{

digitalWrite(LED, LOW); // Выключение светодиода

}

else if (com == 'a')

{

digitalWrite(LED, HIGH); // Включение светодиода

}

}

}

 

Задания:

1) соберите схему с микроприводом, позволяющую задавать скорость его вращения с компьютера через последовательный порт. Если значение задаваемой скорости больше 255 или меньше 0, то микроконтроллер должен возвращать на компьютер соответствующее предупреждение;

2) соберите схему соединения двух микроконтроллеров посредством интерфейса UART и проверьте его работу;

3) соберите схему из двух микроконтроллеров, один из которых подключён к компьютеру. К одному из них должен подключаться потенциометр, а ко второму – микропривод, скорость которого должна определяться положением потенциометра и передаваться от одного контроллера к другому. Также значение скорости должно выводиться на монитор порта. Должна быть реализована возможность останова микропривода командой с компьютера, переданной по последовательному порту.








Дата добавления: 2018-09-24; просмотров: 877;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.