Модификаторы клавиатуры и специальные клавиши

Описание

Когда функциям Keyboard.write(), Keyboard.press() и Keyboard.release() передаётся печатаемый ASCII-символ в качестве аргумента, они имитируют нажатие соответствующих клавиш. Эти функции также могут обрабатывать ASCII-символы, требующие нажатия клавиши в сочетании с Shift или, на международных клавиатурах, AltGr. Например:

Keyboard.write('a');  // press and release the 'A' key
Keyboard.write('A');  // press Shift and 'A', then release both

Однако типичная клавиатура имеет множество клавиш, которые не соответствуют печатаемому ASCII-символу. Для имитации этих клавиш библиотека предоставляет набор макросов, которые можно передавать в качестве аргументов в Keyboard.write(), Keyboard.press() и Keyboard.release(). Например, комбинация клавиш Shift+F2 может быть сгенерирована так:

Keyboard.press(KEY_LEFT_SHIFT);  // press and hold Shift
Keyboard.press(KEY_F2);          // press and hold F2
Keyboard.releaseAll();           // release both

Обратите внимание, что для одновременного нажатия нескольких клавиш необходимо использовать Keyboard.press(), а не Keyboard.write(), так как последняя просто «нажимает» клавиши (нажимает и немедленно отпускает их).

Доступные макросы перечислены ниже.

Модификаторы клавиатуры

Эти клавиши предназначены для изменения обычного действия другой клавиши при одновременном нажатии.

Клавиша

Шестнадцатеричное значение

Десятичное значение

Примечания

KEY_LEFT_CTRL

0x80

128

KEY_LEFT_SHIFT

0x81

129

KEY_LEFT_ALT

0x82

130

Option на Mac

KEY_LEFT_GUI

0x83

131

Логотип ОС, Command на Mac

KEY_RIGHT_CTRL

0x84

132

KEY_RIGHT_SHIFT

0x85

133

KEY_RIGHT_ALT

0x86

134

Также AltGr, Option на Mac

KEY_RIGHT_GUI

0x87

135

Логотип ОС, Command на Mac

Специальные клавиши

Это все клавиши, которые не соответствуют печатаемому ASCII-символу и не являются модификаторами.

В алфавитно-цифровом кластере

Клавиша

Шестнадцатеричное значение

Десятичное значение

KEY_TAB

0xB3

179

KEY_CAPS_LOCK

0xC1

193

KEY_BACKSPACE

0xB2

178

KEY_RETURN

0xB0

176

KEY_MENU

0xED

237

Навигационный кластер

Клавиша

Шестнадцатеричное значение

Десятичное значение

KEY_INSERT

0xD1

209

KEY_DELETE

0xD4

212

KEY_HOME

0xD2

210

KEY_END

0xD5

213

KEY_PAGE_UP

0xD3

211

KEY_PAGE_DOWN

0xD6

214

KEY_UP_ARROW

0xDA

218

KEY_DOWN_ARROW

0xD9

217

KEY_LEFT_ARROW

0xD8

216

KEY_RIGHT_ARROW

0xD7

215

Цифровая клавиатура

Клавиша

Шестнадцатеричное значение

Десятичное значение

KEY_NUM_LOCK

0xDB

219

KEY_KP_SLASH

0xDC

220

KEY_KP_ASTERISK

0xDD

221

KEY_KP_MINUS

0xDE

222

KEY_KP_PLUS

0xDF

223

KEY_KP_ENTER

0xE0

224

KEY_KP_1

0xE1

225

KEY_KP_2

0xE2

226

KEY_KP_3

0xE3

227

KEY_KP_4

0xE4

228

KEY_KP_5

0xE5

229

KEY_KP_6

0xE6

230

KEY_KP_7

0xE7

231

KEY_KP_8

0xE8

232

KEY_KP_9

0xE9

233

KEY_KP_0

0xEA

234

KEY_KP_DOT

0xEB

235

Escape и функциональные клавиши

Библиотека может имитировать функциональные клавиши до F24.

Клавиша

Шестнадцатеричное значение

Десятичное значение

KEY_ESC

0xB1

177

KEY_F1

0xC2

194

KEY_F2

0xC3

195

KEY_F3

0xC4

196

KEY_F4

0xC5

197

KEY_F5

0xC6

198

KEY_F6

0xC7

199

KEY_F7

0xC8

200

KEY_F8

0xC9

201

KEY_F9

0xCA

202

KEY_F10

0xCB

203

KEY_F11

0xCC

204

KEY_F12

0xCD

205

KEY_F13

0xF0

240

KEY_F14

0xF1

241

KEY_F15

0xF2

242

KEY_F16

0xF3

243

KEY_F17

0xF4

244

KEY_F18

0xF5

245

KEY_F19

0xF6

246

KEY_F20

0xF7

247

KEY_F21

0xF8

248

KEY_F22

0xF9

249

KEY_F23

0xFA

250

KEY_F24

0xFB

251

Клавиши управления функциями

Это три клавиши, расположенные над навигационным кластером.

Клавиша

Шестнадцатеричное значение

Десятичное значение

Примечания

KEY_PRINT_SCREEN

0xCE

206

Print Screen или PrtSc / SysRq

KEY_SCROLL_LOCK

0xCF

207

KEY_PAUSE

0xD0

208

Pause / Break

Международные раскладки клавиатуры

Некоторые национальные раскладки определяют дополнительные клавиши. Например, шведская и датская раскладки определяют KEY_A_RING как 0xB7, что соответствует клавише справа от «P», обозначенной как «A» в этих раскладках и «{ / [» в американской раскладке. Чтобы использовать эти определения, необходимо подключить соответствующий файл Keyboard.h. Например:

#include <Keyboard.h>
#include <Keyboard_sv_SE.h> // extra key definitions from Swedish layout

void setup() {
  Keyboard.begin(KeyboardLayout_sv_SE); // use the Swedish layout
  Keyboard.write(KEY_A_RING);
}

void loop() {} // do-nothing loop

Для получения списка определений клавиш, специфичных для раскладки, смотрите соответствующий файл Keyboard.h в исходных кодах библиотеки.