Главная chevron_right Функции chevron_right USB chevron_right Keyboard.print()

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() или физическую кнопку-разрешение, без нажатия которой ввод не начнётся.