說明
當給定一個可打印的 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()
,因為後者隻是 “hits” 鍵(它按下並立即釋放它們)。Keyboard.write()
下麵列出了可用的宏:
鍵盤修飾符
這些鍵是為了修改另一個鍵的正常動作,當這兩個鍵被組合按下時。
鑰匙 | 十六進製值 | 十進製值 | 注意 |
---|---|---|---|
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 文件。
相關用法
- Arduino long用法及代碼示例
- Arduino Arduino_EMBRYO_2 - setLengthXY()用法及代碼示例
- Arduino ~用法及代碼示例
- Arduino ArduinoBLE - bleDevice.advertisedServiceUuidCount()用法及代碼示例
- Arduino const用法及代碼示例
- Arduino Ethernet - server.begin()用法及代碼示例
- Arduino ArduinoBLE - BLEService()用法及代碼示例
- Arduino digitalWrite()用法及代碼示例
- Arduino ArduinoBLE - bleCharacteristic.subscribe()用法及代碼示例
- Arduino Servo - attach()用法及代碼示例
- Arduino write()用法及代碼示例
- Arduino Arduino_LSM9DS1 - readGyroscope()用法及代碼示例
- Arduino ArduinoSound - FFTAnalyzer.input()用法及代碼示例
- Arduino MKRGSM - gprs.attachGPRS()用法及代碼示例
- Arduino WiFiNINA - WiFi.config()用法及代碼示例
- Arduino MKRGSM - sms.read()用法及代碼示例
- Arduino MKRNB - getCurrentCarrier()用法及代碼示例
- Arduino Scheduler - Scheduler.startLoop()用法及代碼示例
- Arduino Arduino_LSM9DS1 - magneticFieldAvailable()用法及代碼示例
- Arduino MKRWAN - available()用法及代碼示例
- Arduino ArduinoBLE - BLE.poll()用法及代碼示例
- Arduino ArduinoBLE - bleCharacteristic.hasDescriptor()用法及代碼示例
- Arduino Ethernet - EthernetUDP.parsePacket()用法及代碼示例
- Arduino WiFi101 - WiFi.subnetMask()用法及代碼示例
- Arduino TFT - PImage.width()用法及代碼示例
注:本文由純淨天空篩選整理自arduino.cc大神的英文原創作品 Keyboard Modifiers and Special Keys。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。