Инструменты пользователя

Перевод этой страницы:

Инструменты сайта


Боковая панель

Для чего нужен ОрбиКрафт

Подсистемы конструктора

Инструкции по работе с ОрбиКрафт

Уроки

Лабораторная оснастка

Знакомство с Arduino

Полезная нагрузка на базе Arduino

Обратная связь

Новости

arduino_s_04

4. Монитор последовательного интерфейса

Не всю информацию можно отобразить с помощью светодиодов, иногда нужно выводить какой-то текст или, наоборот, считывать текстовые команды. Т.е. взаимодействовать с программой во время ее выполнения. И в этом нам поможет монитор последовательного интерфейса или как его еще называют монитор порта. Это специальная область, с помощью которой можно взаимодействовать с программой: выводить туда какую-либо информацию(состояние кнопки, показания датчиков, текст) или считывать с нее введенные команды. Последовательное соединение на английском будет Serial.

Поэтому все функции, связанные с монитором последовательного интерфейса, начинаются словом Serial.

Serial.begin(9600) - команда для начала работы с монитором последовательного интерфейса. 9600 - скорость передачи данных в монитор последовательного интерфейса. Эта команда пишется в процедуре void setup().

Serial.println() - вывод данных с переносом строки. Как будто после вывода данных нажимается клавиша Enter.

Serial.available() - проверка введены ли команды в окно ввода команд в мониторе последовательного интерфейса.

Serial.read() - считывает введенные в монитор последовательного интерфейса команды.

Для отображения монитора последовательного интерфейса нажмите на соответствующую кнопку в правом нижнем углу, и он откроется.

4.1 Считываем состояние кнопки

4.1.1 Сборка схемы

Выводим в монитор последовательного интерфейса данные о состоянии кнопки. Кнопка соединена по схеме PULL DOWN. Будет выведено 1 - если кнопка нажата, и 0 - если отпущена.

4.1.2 Программа вывода состояния кнопки в монитор последовательного интерфейса

//создаем переменную для кнопки
#define button 7
 
void setup(){
  //настраиваем пин, к которому подключена кнопка, как вход
  pinMode(button, INPUT);
  //настраиваем работу с монитором порта
  Serial.begin(9600);
}
 
void loop(){
  Serial.println(digitalRead(button)); //выводим в монитор порта состояние кнопки
  delay(500);                          //ждем полсекунды
}

4.1.3 Программа вывода состояния кнопки и дополнительной информации

//создаем переменную для кнопки
#define button 7
 
void setup(){
  //настраиваем пин, к которому подключена кнопка, как вход
  pinMode(button, INPUT);
  //настраиваем работу с монитором порта
  Serial.begin(9600);
}
 
void loop(){
  Serial.print("Button state: ");      //выводим в монитор порта фразу "Button state: "
  Serial.println(digitalRead(button)); //выводим состояние кнопки
  delay(500);                          //ждем полсекунды
}

4.2 Считывание данных из монитора последовательного интерфейса и управление светодиодом

4.2.1 Сборка схемы

Считываем данные с монитора порта. Для их сохранения используем переменную data символьного типа char. Так как введенные команды не сохраняются автоматически в мониторе порта, будем их выводить самостоятельно, использую команду Serial.print().

  • Если data == 1 , то включаем светодиод.
  • Если data == 0 , то выключаем.

4.2.2 Программа считывания данных и управления светодиодом

int led = 5;   //создаем переменную для светодиода
char data = 0; //создаем переменную для хранения введенных в монитор последовательного интерфейса команд
 
void setup(){
  Serial.begin(9600);   //настраиваем работу с монитором порта
  pinMode(led, OUTPUT); //настраиваем пин со светодиодом как выход
}
 
void loop(){
  if (Serial.available() > 0){    //проверяем поступили ли команды в монитор порта
    data = Serial.read();         //считываем полученные команды
    Serial.print(data);           //выводим в монитор порта полученную команду
    if (data == 'R'){             //если переменная data == 'R' - включаем светодиод,
      digitalWrite(led, HIGH);
    }
    else if (data == 'r'){        //а если 'r' - выключаем светодиод
      digitalWrite(led, LOW);
    }
  }
}

Подробнее о Serial.begin() можно прочитать здесь http://arduino.ru/Serial/Begin

Подробнее о Serial.print() можно прочитать здесь http://arduino.ru/Reference/Serial/Print

Подробнее о Serial.read() можно прочитать здесь http://arduino.ru/Reference/Serial/Read


Задания

1. Соберите схему с Arduino и двумя кнопками, подключенными к пинам 5 и 6 с помощью резисторов номиналом 10 кОм. Запрограммируйте Arduino чтобы при нажатии первой кнопки в монитор порта выводилась фраза «Button 1», а при нажатии второй кнопки «Button 2».

2. Соберите схему с Arduino и двумя светодиодами, подключенными к пинам 8 и 12 с помощью резисторов 390 Ом. Запрограммируйте Arduino чтобы при считывании из монитора порта значения «1» включался первый светодиод, а при считывании значения «2» он выключался. И, аналогично, при считывании из порта значения «3» должен включаться второй светодиод, а при считывании значения «4» он должен выключаться.

arduino_s_04.txt · Последние изменения: 2020/05/07 22:59 — golikov

Инструменты страницы