Главная chevron_right Уроки chevron_right Встроенные примеры chevron_right USB chevron_right Keyboard Message: отправка текста нажатием кнопки

Keyboard Message: отправка текста нажатием кнопки

Урок для Arduino Leonardo: при нажатии кнопки плата эмулирует USB-клавиатуру и отправляет текстовую строку с счётчиком нажатий.

В этом уроке Arduino Leonardo работает как USB-клавиатура: каждый раз, когда вы нажимаете кнопку, плата отправляет на компьютер текстовую строку с информацией о количестве нажатий. Откройте любой текстовый редактор, подключите плату — и наблюдайте, как текст появляется сам собой.

Важно! Команда Keyboard.print() буквально захватывает управление клавиатурой вашего компьютера. Если скетч запустится без контроля, вы можете потерять управление системой. Именно поэтому в этом примере используется кнопка: ввод текста происходит только при её нажатии. Всегда предусматривайте такой «аварийный выключатель» в проектах с эмуляцией клавиатуры.

Необходимое оборудование

Необходимое ПО

  • Любой текстовый редактор (Блокнот, gedit, TextEdit и т.д.)

Схема подключения

Подключите один вывод кнопки к пину 4 на Arduino, второй — к 5V. Резистор 10 кОм включите между пином 4 и GND — он будет подтягивать линию к земле (pull-down), чтобы пин не «висел в воздухе» при отпущенной кнопке.

Порядок работы:

  1. Загрузите скетч на плату.
  2. Отключите USB-кабель.
  3. Откройте текстовый редактор и поставьте курсор в поле ввода.
  4. Снова подключите плату через USB.
  5. Нажмите кнопку — в редакторе появится строка с номером нажатия.

Шаги 2–4 нужны для того, чтобы успеть поставить курсор до того, как плата получит управление клавиатурой. Это стандартная практика безопасности при работе с Keyboard.h.

Схема подключения: кнопка подключена к пину 4 платы Arduino Leonardo через макетную плату; питание 5V и GND подведены к шинам макетной платы.

Принципиальная схема

Принципиальная схема: кнопка (PUSH BUTTON / SWITCH) с подтягивающим резистором 10 кОм (10kΩ RESISTOR) подключена к пину 4 платы Arduino Leonardo. Резистор соединяет пин с GND, кнопка — с 5V.

Код

Как это работает

Скетч использует библиотеку Keyboard.h, встроенную в Arduino IDE для плат с нативной USB-поддержкой (Leonardo, Micro, Due и совместимые). При каждом нажатии кнопки:

  1. Счётчик нажатий увеличивается на 1.
  2. Функция Keyboard.print() отправляет строку — например: «You pressed the button 3 times.»
  3. Курсор в текстовом редакторе перемещается на новую строку (Keyboard.println()).

Пин 4 читается через digitalRead(). Пока кнопка не нажата, резистор удерживает пин в состоянии LOW. При нажатии пин переходит в HIGH — это и служит сигналом для отправки текста.

Типичные ошибки

  • Плата не определяется как клавиатура — убедитесь, что используете Leonardo, Micro или другую плату с нативным USB. Uno и Nano с этим скетчем не работают.
  • Текст вводится не туда — перед подключением платы обязательно поставьте курсор в нужное поле. Плата «не знает», какое окно активно.
  • Дребезг кнопки — если одно нажатие вызывает несколько строк, добавьте программный дебаунс (delay() или библиотеку Bounce2).
  • Потеря управления клавиатурой — если это произошло, отключите USB-кабель. Затем измените скетч, добавив условие или увеличив задержку перед вызовом Keyboard.print().

Как проверить результат

Откройте Блокнот (или любой текстовый редактор), поставьте курсор в поле ввода и нажмите кнопку несколько раз. Каждое нажатие должно добавлять новую строку вида:

You pressed the button 1 times.
You pressed the button 2 times.
You pressed the button 3 times.

Если строки появляются — всё работает правильно.

Дополнительные материалы

Больше базовых примеров можно найти в разделе built-in examples.

Подробное описание всех функций языка Arduino — в language reference.

Последнее обновление: 29.07.2015, SM