Keyboard.begin()
Keyboard.begin() запускает эмуляцию USB-клавиатуры, после чего плата воспринимается системой как HID-устройство ввода. Поддерживает выбор раскладки через параметр layout.
Полная статья
Описание
Функция Keyboard.begin() активирует режим эмуляции USB-клавиатуры — после её вызова плата начинает представляться компьютеру как HID-устройство ввода. Всё, что вы отправите через библиотеку Keyboard, будет восприниматься системой как нажатия реальных клавиш.
Работает только на платах с нативной поддержкой USB: Leonardo и Arduino Due. На обычном Uno эта функция недоступна.
Чтобы остановить эмуляцию, вызовите Keyboard.end().
Синтаксис
Keyboard.begin()Keyboard.begin(layout)
Параметры
layout: раскладка клавиатуры, которую будет использовать плата при отправке символов. Параметр необязателен — если его не указывать, применяется раскладка KeyboardLayout_en_US (американская).
Раскладка важна, потому что символы кодируются через скан-коды, а не через Unicode. Если раскладка на плате не совпадает с раскладкой операционной системы, на экране появятся не те символы. Например, при отправке @ с раскладкой en_US на немецкой системе результат будет неожиданным.
Раскладки клавиатуры
Библиотека поддерживает следующие национальные раскладки:
KeyboardLayout_da_DK: ДанияKeyboardLayout_de_DE: ГерманияKeyboardLayout_en_US: СШАKeyboardLayout_es_ES: ИспанияKeyboardLayout_fr_FR: ФранцияKeyboardLayout_hu_HU: ВенгрияKeyboardLayout_it_IT: ИталияKeyboardLayout_pt_PT: ПортугалияKeyboardLayout_sv_SE: Швеция
Если нужной раскладки в списке нет, её можно создать самостоятельно: скопируйте любой существующий файл раскладки из библиотеки и адаптируйте под свою локаль. Подробные инструкции находятся в файле KeyboardLayout.h.
Возврат
Ничего
Пример кода
#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.begin()один раз вsetup()— до любых других вызовов библиотеки Keyboard. - Если ваша ОС настроена на раскладку, отличную от
en_US, передайте нужныйlayoutявно, иначе символы будут отображаться неправильно. - После подключения платы к компьютеру дайте системе секунду-другую на распознавание устройства, прежде чем начинать отправку нажатий — иначе первые символы могут потеряться.
- Эмуляция клавиатуры работает параллельно с Serial: вы можете одновременно выводить отладочные сообщения через
Serial.print()и отправлять нажатия клавиш. - Если плата начала бесконтрольно «печатать» символы и вы не успеваете загрузить новый скетч, зажмите кнопку Reset в момент начала загрузки — это даст IDE время подключиться до запуска
loop().