说明
当给定一个可打印的 ASCII 字符作为参数时,函数 Keyboard.write()
、 Keyboard.press()
和 Keyboard.release()
模拟相应按键上的动作。这些函数还可以处理需要结合 Shift 键或国际键盘上的 AltGr 键的 ASCII 字符。例如:
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() ,因为后者只是 “hits” 键(它按下并立即释放它们)。
下面列出了可用的宏:
键盘修饰符
这些键是为了修改另一个键的正常动作,当这两个键被组合按下时。
钥匙 | 十六进制值 | 十进制值 | 注意 |
---|---|---|---|
KEY_LEFT_CTRL | 0x80 | 128 | |
KEY_LEFT_SHIFT | 0x81 | 129 | |
KEY_LEFT_ALT | 0x82 | 130 | Mac 上的选项 (⌥) |
KEY_LEFT_GUI | 0x83 | 131 | 操作系统徽标,Mac 上的命令 (⌘) |
KEY_RIGHT_CTRL | 0x84 | 132 | |
KEY_RIGHT_SHIFT | 0x85 | 133 | |
KEY_RIGHT_ALT | 0x86 | 134 | Mac 上还有 AltGr、Option (⌥) |
KEY_RIGHT_GUI | 0x87 | 135 | 操作系统徽标,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 |
退出键和函数键
该库可以模拟高达 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 | 打印屏幕或PrtSc /SysRq |
KEY_SCROLL_LOCK | 0xCF | 207 | |
KEY_PAUSE | 0xD0 | 208 | 暂停休息 |
国际键盘布局
一些国家布局定义了额外的键。例如,瑞典和丹麦布局将 KEY_A_RING
定义为 0xB7
,这是 “P” 右侧的键,在这些布局上标记为 “Å”,在美国布局上标记为 “{”/“[”。为了使用这些定义,必须包含正确的 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
有关 layout-specific 键定义的列表,请参阅库源中的相应 Keyboard_*.h 文件。