Menu
CoddyTech

Чтение символа из последовательного порта

Часть раздела Входные сигналы путешествия по Arduino на Coddy. Урок 15 из 22.

Последовательное соединение работает в обе стороны. Текст, введённый в поле монитора Serial и отправленный нажатием Отправить, поступает на плату по одному символу за раз и ждёт там в буфере, пока скетч не прочитает его.

Serial.available() сообщает, сколько символов ожидает чтения. Serial.read() извлекает следующий символ из буфера. Один символ помещается в переменную char, записанную в одинарных кавычках:

if (Serial.available() > 0) {
  char c = Serial.read();
  if (c == '1') {
    // Была введена 1
  }
}

'1' в одинарных кавычках — это символ 1, клавиша, которую ты нажимаешь. Это не число 1: плата хранит этот символ как код 49.

Монитор Serial также отправляет невидимый символ перевода строки, записанный как '\n', после всего, что ты вводишь. Скетч обрабатывает знакомые ему символы, а остальные пропускает.

challenge icon

Задание

Легко

LED подключён к выводу 13. Переключайте его через монитор последовательного порта:

  • когда символ ожидает чтения, считайте его в переменную char
  • '1' включает LED, '0' выключает его
  • любой другой символ, например символ новой строки, ничего не меняет

Нажмите Run, введите 1 или 0 в монитор последовательного порта и нажмите Send, затем Check.

Попробуйте сами

const int ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // Когда символ ожидает считывания, прочитайте его
  // '1' включает LED, '0' выключает его
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Входные сигналы

Потренируйтесь самостоятельно: Песочница Arduino