Монитор последовательного интерфейса
Не всю информацию можно отобразить с помощью светодиодов, иногда нужно выводить какой-то текст или, наоборот, считывать текстовые команды. Т.е. взаимодействовать с программой во время ее выполнения. И в этом нам поможет монитор последовательного интерфейса или как его еще называют монитор порта. Это специальная область, с помощью которой можно взаимодействовать с программой: выводить туда какую-либо информацию(состояние кнопки, показания датчиков, текст) или считывать с нее введенные команды. Последовательное соединение на английском будет Serial.
Поэтому все функции, связанные с монитором последовательного интерфейса, начинаются словом Serial:
Serial.begin(9600) - команда для начала работы с монитором последовательного интерфейса. 9600 - скорость передачи данных в монитор последовательного интерфейса. Эта команда пишется в процедуре void setup();
Serial.println() - вывод данных с переносом строки. Как будто после вывода данных нажимается клавиша Enter;
Serial.available() - проверка введены ли команды в окно ввода команд в мониторе последовательного интерфейса;
Serial.read() - считывает введенные в монитор последовательного интерфейса команды.
Для отображения монитора последовательного интерфейса нажмите на соответствующую кнопку в правом нижнем углу, и он откроется.
Рисунок 1. Монитор последовательного интерфейса
Считываем состояние кнопки
Сборка схемы

Рисунок 2. Схема для считывания состояния кнопки
Выводим в монитор последовательного интерфейса данные о состоянии кнопки. Кнопка соединена по схеме PULL DOWN.
- Будет выведено 1 - если кнопка нажата;
- Будет выведено 0 - если кнопка отпущена.
Программа вывода состояния кнопки в монитор последовательного интерфейса
//создаем переменную для кнопки
#define button 7
void setup(){
//настраиваем пин, к которому подключена кнопка, как вход
pinMode(button, INPUT);
//настраиваем работу с монитором порта
Serial.begin(9600);
}
void loop(){
Serial.println(digitalRead(button)); //выводим в монитор порта состояние кнопки
delay(500); //ждем полсекунды
}
Программа вывода состояния кнопки и дополнительной информации
//создаем переменную для кнопки
#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); //ждем полсекунды
}
Считывание данных из монитора последовательного интерфейса и управление светодиодом
Сборка схемы

Рисунок 3. Схема для считывания данных из монитора последовательного интерфейса и управление светодиодом
Считываем данные с монитора порта. Для их сохранения используем переменную data символьного типа char. Так как введенные команды не сохраняются автоматически в мониторе порта, будем их выводить самостоятельно, использую команду Serial.print().
- Если data == 1 , то включаем светодиод;
- Если data == 0 , то выключаем.
Программа считывания данных и управления светодиодом
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);
}
}
}
Задания
Соберите схему с Arduino и двумя кнопками, подключенными к пинам 5 и 6 с помощью резисторов номиналом 10 кОм. Запрограммируйте Arduino чтобы при нажатии первой кнопки в монитор порта выводилась фраза «Button 1», а при нажатии второй кнопки «Button 2».
Соберите схему с Arduino и двумя светодиодами, подключенными к пинам 8 и 12 с помощью резисторов 390 Ом. Запрограммируйте Arduino чтобы при считывании из монитора порта значения «1» включался первый светодиод, а при считывании значения «2» он выключался. И, аналогично, при считывании из порта значения «3» должен включаться второй светодиод, а при считывании значения «4» он должен выключаться.