Keyboard.print()
Keyboard.print() отправляет символ, строку или число на компьютер, имитируя последовательный ввод с USB-клавиатуры — удобнее, чем управлять каждым нажатием через Keyboard.press().
Полная статья
Описание
Keyboard.print() передаёт на подключённый компьютер один символ, строку или число — так, как если бы пользователь вводил их с физической клавиатуры. Каждый символ автоматически преобразуется в нажатие и отпускание соответствующей клавиши. Это удобнее, чем Keyboard.press(), который требует вручную управлять каждым нажатием.
Прежде чем вызывать Keyboard.print(), обязательно инициализируйте USB-эмуляцию с помощью Keyboard.begin(). Без этого шага функция не будет работать.
Синтаксис
Keyboard.print(character)Keyboard.print(characters)
Параметры
character— один символ или числовое значение, которое нужно «напечатать» на компьютере.characters— строка символов, которая будет введена последовательно, клавиша за клавишей.
Возвращает
Число успешно отправленных нажатий клавиш. Тип возвращаемого значения: size_t. Если функция вернула 0, скорее всего, эмуляция клавиатуры не была инициализирована или переданное значение не удалось преобразовать в допустимый символ.
Пример кода
#include <Keyboard.h>
void setup() {
// настраиваем пин 2 как вход и включаем
// подтягивающий резистор, чтобы на входе был HIGH,
// если не подключено к GND:
pinMode(2, INPUT_PULLUP);
Keyboard.begin();
}
void loop() {
//если кнопка нажата
if (digitalRead(2) == LOW) {
//отправляем сообщение
Keyboard.print("Hello!");
}
}
Где применяется
- Макроклавиатура: одна физическая кнопка на Arduino отправляет готовую фразу, команду или шаблон текста.
- Автоматизация ввода: тестовые стенды, где нужно многократно вводить одинаковые данные в форму или терминал.
- Специализированные устройства ввода: адаптивные клавиатуры для людей, которым сложно пользоваться стандартными средствами ввода.
- Быстрый запуск команд: ввод коротких команд в строку поиска или командную строку по нажатию одной кнопки.
Практические замечания
Keyboard.print()работает только на платах с нативной поддержкой USB HID: Leonardo, Micro, Due и совместимых. На Uno и Mega эта функция недоступна.- Результат зависит сразу от двух раскладок: той, что задана в
Keyboard.begin(layout), и той, что активна в операционной системе. Если они не совпадают, компьютер получит не те символы, которые вы ожидали. - Когда нужно завершить ввод переносом строки, используйте
Keyboard.println()— это удобнее, чем вручную добавлятьEnterв конец строки. - Скетч с
Keyboard.print()начинает «печатать» сразу после подключения платы к компьютеру. Чтобы случайно не испортить открытый документ или не отправить нежелательную команду, добавьте задержку вsetup()или физическую кнопку-разрешение, без нажатия которой ввод не начнётся.