Чтение символа из последовательного порта
Часть раздела Входные сигналы путешествия по 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', после всего, что ты вводишь. Скетч обрабатывает знакомые ему символы, а остальные пропускает.
Задание
Легко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' выключает его
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Входные сигналы
3Последовательный ввод
Чтение символа из последовательного портаТекстовые командыСкорость мигания через последовательный портМигание по командеПотренируйтесь самостоятельно: Песочница Arduino