Keyboard Message: отправка текста нажатием кнопки
Урок для Arduino Leonardo: при нажатии кнопки плата эмулирует USB-клавиатуру и отправляет текстовую строку с счётчиком нажатий.
В этом уроке Arduino Leonardo работает как USB-клавиатура: каждый раз, когда вы нажимаете кнопку, плата отправляет на компьютер текстовую строку с информацией о количестве нажатий. Откройте любой текстовый редактор, подключите плату — и наблюдайте, как текст появляется сам собой.
Важно! Команда
Keyboard.print()буквально захватывает управление клавиатурой вашего компьютера. Если скетч запустится без контроля, вы можете потерять управление системой. Именно поэтому в этом примере используется кнопка: ввод текста происходит только при её нажатии. Всегда предусматривайте такой «аварийный выключатель» в проектах с эмуляцией клавиатуры.
Необходимое оборудование
- Arduino Leonardo, Micro, or Due board
- тактовая кнопка (momentary pushbutton)
- резистор 10 кОм
Необходимое ПО
- Любой текстовый редактор (Блокнот, gedit, TextEdit и т.д.)
Схема подключения
Подключите один вывод кнопки к пину 4 на Arduino, второй — к 5V. Резистор 10 кОм включите между пином 4 и GND — он будет подтягивать линию к земле (pull-down), чтобы пин не «висел в воздухе» при отпущенной кнопке.
Порядок работы:
- Загрузите скетч на плату.
- Отключите USB-кабель.
- Откройте текстовый редактор и поставьте курсор в поле ввода.
- Снова подключите плату через USB.
- Нажмите кнопку — в редакторе появится строка с номером нажатия.
Шаги 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.
- Функция
Keyboard.print()отправляет строку — например:«You pressed the button 3 times.» - Курсор в текстовом редакторе перемещается на новую строку (
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