當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Arduino 鍵盤修飾符和特殊鍵用法及代碼示例

說明

當給定一個可打印的 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 文件。

相關用法


注:本文由純淨天空篩選整理自arduino.cc大神的英文原創作品 Keyboard Modifiers and Special Keys。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。