Arduino:Справочник языка Arduino/Библиотеки/Keyboard/Keyboard.write()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция Keyboard.write()[1]

Отправляет нажатие на клавишу на компьютер, к которому подключена Arduino. То же самое, как если бы вы нажали и отпустили клавишу на вашей клавиатуре. С ее помощью можно отсылать некоторые ASCII-символы или дополнительные клавиши-модификаторы.

Этой функцией поддерживаются только те ASCII-символы, которые имеются на клавиатуре. Например, ASCII «8» работать будет (это  ← Backspace ), а ASCII «26» (это «подмена символа») — уже нет. Когда вам нужны заглавные буквы, эта функция отсылает  ⇧ Shift  плюс нужный символ — то есть происходит то же самое, как если бы вы сами печатали на клавиатуре. Если отправить через эту функцию цифровое значение, то она воспримет его как номер ASCII-символа, то есть если написать Keyboard.write(97), вы тем самым отправите символ «a».

Полный список ASCII-символов можно посмотреть в этой таблице.

Внимание!

При использовании Keyboard.write() клавиатурный функционал перейдет под управление Arduino. Поэтому перед тем, как использовать эту команду, убедитесь, что ваша цепь настроена таким образом, чтобы не терять управление компьютером. Для этого можно воспользоваться, к примеру, специальной кнопкой, которая будет включать/выключать управление клавиатурой при помощи Arduino.

Синтаксис

Keyboard.write(character)

Параметры

character  символ, который нужно отправить компьютеру. Может быть отправлен в любом обозначении, которое применимо к символам. К примеру, все перечисленные ниже способы отправляют одно и то же значение  «65», что в ASCII-таблице означает «A».
Keyboard.write(65);         // отправляет «65», что в ASCII-таблице означает «А» 
Keyboard.write('A');        // то же самое, но нужный символ поставлен в кавычки
Keyboard.write(0x41);       // то же самое, но в шестнадцатеричном виде
Keyboard.write(0b01000001); // то же самое, но в бинарном виде (странный выбор, но работать будет)

Что возвращает

Количество отправленных байтов (int).

Пример

void setup() {
  // Делаем 2-ой контакт входным и включаем подтягивающий резистор,
  // чтобы значение на контакте всегда было HIGH,
  // за исключением случаев, когда он будет подключен к «земле»:
  pinMode(2, INPUT_PULLUP);
  Keyboard.begin();
}

void loop() {
  // Если кнопка нажата...
  if(digitalRead(2)==LOW){
    //  ...отправляем ASCII-символ «A»:
    Keyboard.write(65);
  }
}

См.также


Внешние ссылки