아두이노 우노 R4 HID 키보드 제어
키보드 [USB]
설명
키보드 기능을 사용하면 32u4 또는 SAMD 마이크로 기반 보드에서 마이크로의 기본 USB 포트를 통해 연결된 컴퓨터로 키 입력을 전송할 수 있습니다.
참고: 키보드 라이브러리를 사용하여 가능한 모든 ASCII 문자, 특히 인쇄되지 않는 문자를 전송할 수 있는 것은 아닙니다.
이 라이브러리는 수정자 키 사용을 지원합니다. 수정자 키는 동시에 누를 때 다른 키의 동작을 변경합니다. 지원되는 키 및 사용법에 대한 자세한 내용은 여기를 참조하세요.
참고 및 경고
이러한 핵심 라이브러리를 사용하면 32u4 및 SAMD 기반 보드(레오나르도, 에스플로라, 제로, 듀 및 MKR 제품군)가 연결된 컴퓨터에 기본 마우스 및/또는 키보드로 표시될 수 있습니다.
마우스 및 키보드 라이브러리 사용 시 주의할 점: 마우스 또는 키보드 라이브러리가 계속 실행 중이면 보드를 프로그래밍하기 어려울 수 있습니다. Mouse.move() 및 Keyboard.print()와 같은 함수는 커서를 이동하거나 키 입력을 연결된 컴퓨터로 전송하므로 이를 처리할 준비가 되었을 때만 호출해야 합니다. 이 기능을 켜려면 물리적 스위치와 같은 제어 시스템을 사용하거나 제어할 수 있는 특정 입력에만 응답하는 것이 좋습니다. 이를 처리하는 몇 가지 방법은 마우스 및 키보드 예제를 참조하세요.
마우스 또는 키보드 라이브러리를 사용할 때는 먼저 Serial.print()를 사용하여 출력을 테스트하는 것이 가장 좋습니다. 이렇게 하면 어떤 값이 보고되고 있는지 확인할 수 있습니다.
함수
Keyboard.begin()
Keyboard.end()
Keyboard.press()
Keyboard.print()
Keyboard.println()
Keyboard.release()
Keyboard.releaseAll()
Keyboard.write()
그냥 내친김에 정리한다. 머 잠도 안오고 특별히 할 일도 없다. 이러니 지루할 틈이 없다. 삶이 참 주옥같다. ^^
Keyboard.begin() | 설명: 레오나르도 또는 듀 보드와 함께 사용할 경우 Keyboard.start()는 컴퓨터에 연결된 키보드 에뮬레이션을 시작합니다. 제어를 종료하려면 Keyboard.end()를 사용합니다. 구문 Keyboard.begin() Keyboard.begin(layout) 매개변수 layout: 사용할 키보드 레이아웃. 이 매개변수는 선택 사항이며 기본값은 KeyboardLayout_en_US입니다. 키보드 레이아웃 현재 라이브러리는 다음과 같은 국가별 키보드 레이아웃을 지원합니다: KeyboardLayout_da_DK: 덴마크 KeyboardLayout_de_DE: 독일 KeyboardLayout_en_US: 미국 KeyboardLayout_es_ES: 스페인 KeyboardLayout_fr_FR: 프랑스 KeyboardLayout_it_IT: 이탈리아 KeyboardLayout_sv_SE: 스웨덴 반환값 Nothing 예제 코드 #포함 <키보드.h> void setup() { // 2번 핀을 입력으로 설정하고 // 풀업 저항을 켜서 높은 전압이 되도록 합니다. // 접지에 연결되지 않는 한: pinMode(2, INPUT_PULLUP); Keyboard.start(); } void loop() { //버튼이 눌린 경우 if (digitalRead(2) == LOW) { //메시지 전송 Keyboard.print("Hello!"); } } 참고 및 경고 사용자 지정 레이아웃은 기존 레이아웃을 복사하고 수정하여 만들 수 있습니다. 키보드 라이브러리의 KeyboardLayout.h 파일에 있는 지침을 참조하세요. |
Keyboard.end() | 설명: 연결된 컴퓨터에 대한 키보드 에뮬레이션을 중지합니다. 키보드 에뮬레이션을 시작하려면 키보드.시작()을 사용합니다. 구문: Keyboard.end() 매개변수: None 리턴: 아무것도 예제 코드 #include <Keyboard.h> void setup() { //키보드 통신 시작 Keyboard.start(); //키 입력 전송 Keyboard.print("Hello!"); //키보드 통신 종료 Keyboard.end(); } void loop() { // 아무것도 하지 않음 } |
Keyboard.press() |
설명: 호출하면 키보드에서 키를 누르고 있는 것처럼 Keyboard.press()가 작동합니다. 수정자 키를 사용할 때 유용합니다. 키 누름을 종료하려면 Keyboard.release() 또는 Keyboard.releaseAll()을 사용합니다. press()를 사용하기 전에 Keyboard.begin()을 호출해야 합니다. 구문 Keyboard.press(키) 매개변수 키: 누를 키입니다. 허용되는 데이터 유형: char 반환값 전송된 키 누름 수입니다. 데이터 유형: size_t. 예제 코드 #포함 <키보드.h> // OSX에서 이 옵션을 사용합니다: char ctrlKey = KEY_LEFT_GUI; // 윈도우와 리눅스에서 이 옵션을 사용합니다: // char ctrlKey = KEY_LEFT_CTRL; void setup() { // 핀 2를 입력으로 만들고 풀업 저항을 켜서 // 풀업 저항을 켜서 접지에 연결되지 않는 한 // 접지에 연결되지 않는 한: pinMode(2, INPUT_PULLUP); // 키보드에 대한 제어를 초기화합니다: Keyboard.start(); } void loop() { while (digitalRead(2) == HIGH) { // 핀 2가 낮아질 때까지 아무것도 하지 않습니다. delay(500); } delay(1000); // 새 문서: Keyboard.press(ctrlKey); Keyboard.press('n'); delay(100); Keyboard.releaseAll(); // 새 창이 열릴 때까지 기다립니다: delay(1000); } |
Keyboard.print() | 설명: 하나 이상의 키 입력을 연결된 컴퓨터로 전송합니다. 키보드.print()는 키보드.시작()을 시작한 후에 호출해야 합니다. 구문 Keyboard.print(character) Keyboard.print(characters) 매개변수 character: 키 입력으로 컴퓨터에 전송할 문자 또는 정수입니다. characters: 키 입력으로 컴퓨터에 전송할 문자열입니다. 반환값 전송된 키 입력 수입니다. 데이터 유형: size_t. 예제 코드 #포함 <키보드.h> void setup() { // 2번 핀을 입력으로 설정하고 // 풀업 저항을 켜서 높은 전압이 되도록 합니다. // 접지에 연결되지 않는 한: pinMode(2, INPUT_PULLUP); Keyboard.start(); } void loop() { //버튼이 눌린 경우 if (digitalRead(2) == LOW) { //메시지 전송 Keyboard.print("Hello!"); } } 참고 및 경고 Keyboard.print() 명령을 사용하면 아두이노가 키보드를 대신합니다! 명령을 사용하기 전에 제어권이 있는지 확인하세요. 키보드 제어 상태를 전환하는 푸시 버튼이 효과적입니다. |
Keyboard.println() | 설명: 하나 이상의 키 입력을 연결된 컴퓨터로 전송한 다음 Enter 키를 누릅니다. 키보드.println()은 Keyboard.begin()을 시작한 후에 호출해야 합니다. 구문 Keyboard.println() Keyboard.println(character) Keyboard.println(characters) 매개변수 character: 키 입력으로 컴퓨터에 전송할 문자 또는 정숫자, 그 뒤에 Enter를 입력합니다. characters: 키 입력으로 컴퓨터에 전송할 문자열, 그 뒤에 Enter를 입력합니다. 반환값: 전송된 키 입력 수입니다. 데이터 유형: size_t. 예제 코드 #포함 <키보드.h> void setup() { // 2번 핀을 입력으로 설정하고 // 풀업 저항을 켜서 높은 전압이 되도록 합니다. // 접지에 연결되지 않는 한: pinMode(2, INPUT_PULLUP); Keyboard.start(); } void loop() { //버튼이 눌린 경우 if (digitalRead(2) == LOW) { //메시지 전송 Keyboard.println("안녕하세요!"); } } 참고 및 경고 Keyboard.println() 명령을 사용하면 아두이노가 키보드를 대신합니다! 명령을 사용하기 전에 제어권이 있는지 확인하세요. 키보드 제어 상태를 전환하는 푸시 버튼이 효과적입니다. |
Keyboard.release() | 설명: 지정된 키를 놓습니다. 자세한 내용은 Keyboard.press()를 참조하세요. 구문: Keyboard.release(key) 매개변수 키: 해제할 키입니다. 허용되는 데이터 타입: 문자. 반환값 해제된 키의 개수입니다. 데이터 타입: size_t. 예제 코드 #포함 <키보드.h> // OSX에서 이 옵션을 사용합니다: char ctrlKey = KEY_LEFT_GUI; // 윈도우와 리눅스에서 이 옵션을 사용합니다: // char ctrlKey = KEY_LEFT_CTRL; void setup() { // 핀 2를 입력으로 만들고 풀업 저항을 켜서 // 풀업 저항을 켜서 접지에 연결되지 않는 한 // 접지에 연결되지 않는 한: pinMode(2, INPUT_PULLUP); // 키보드에 대한 제어를 초기화합니다: Keyboard.start(); } void loop() { while (digitalRead(2) == HIGH) { // 핀 2가 낮아질 때까지 아무것도 하지 않습니다. delay(500); } delay(1000); // 새 문서: Keyboard.press(ctrlKey); Keyboard.press('n'); delay(100); Keyboard.release(ctrlKey); Keyboard.release('n'); // 새 창이 열릴 때까지 기다립니다: delay(1000); } |
Keyboard.releaseAll() | 설명: 현재 누르고 있는 모든 키를 해제합니다. 자세한 내용은 Keyboard.press()를 참조하세요. 구문: Keyboard.releaseAll() 매개변수: None 리턴: 아무것도 예제 코드 #포함 <키보드.h> // OSX에서 이 옵션을 사용합니다: char ctrlKey = KEY_LEFT_GUI; // 윈도우와 리눅스에서 이 옵션을 사용합니다: // char ctrlKey = KEY_LEFT_CTRL; void setup() { // 핀 2를 입력으로 만들고 풀업 저항을 켜서 // 풀업 저항을 켜서 접지에 연결되지 않는 한 // 접지에 연결되지 않는 한: pinMode(2, INPUT_PULLUP); // 키보드에 대한 제어를 초기화합니다: Keyboard.start(); } void loop() { while (digitalRead(2) == HIGH) { // 핀 2가 낮아질 때까지 아무것도 하지 않습니다. delay(500); } delay(1000); // 새 문서: Keyboard.press(ctrlKey); Keyboard.press('n'); delay(100); Keyboard.releaseAll(); // 새 창이 열릴 때까지 기다립니다: delay(1000); } |
Keyboard.write() | 설명 연결된 컴퓨터로 키 입력을 보냅니다. 이는 키보드의 키를 눌렀다 놓는 것과 비슷합니다. 일부 ASCII 문자나 추가 키보드 수정자 및 특수 키를 보낼 수 있습니다. 키보드에 있는 ASCII 문자만 지원됩니다. 예를 들어 ASCII 8(백스페이스)은 작동하지만 ASCII 25(대체)는 작동하지 않습니다. 대문자를 보낼 때 Keyboard.write()는 키보드에서 입력하는 것처럼 Shift 명령과 원하는 문자를 함께 보냅니다. 숫자 유형을 전송하는 경우 ASCII 문자로 전송합니다(예: Keyboard.write(97)은 'a'를 전송합니다). ASCII 문자의 전체 목록은 ASCIITable.com을 참조하세요. 구문 Keyboard.write(character) 매개변수 character: 컴퓨터로 전송할 문자 또는 정수입니다. 문자로 허용되는 모든 표기법으로 전송할 수 있습니다. 예를 들어, 아래 모두 허용되며 동일한 값인 65 또는 ASCII A를 전송할 수 있습니다: Keyboard.write(65); // ASCII 값 65 또는 A를 보냅니다. Keyboard.write('A'); // 따옴표로 묶은 문자와 동일함 Keyboard.write(0x41); // 16진수로도 동일합니다. Keyboard.write(0b01000001); // 바이너리로 동일하게 (이상한 선택이지만 작동합니다) 반환값 전송된 바이트 수입니다. 데이터 유형: size_t. 예제 코드 #include <Keyboard.h> void setup() { // 2번 핀을 입력으로 설정하고 // 풀업 저항을 켜서 높은 전압이 되도록 합니다. // 접지에 연결되지 않는 한: pinMode(2, INPUT_PULLUP); Keyboard.start(); } void loop() { //버튼이 눌린 경우 if (digitalRead(2) == LOW) { //SEND ASCII 'A', Keyboard.write(65); } } 참고 및 경고 키보드.쓰기() 명령을 사용하면 아두이노가 키보드를 대신합니다! 명령을 사용하기 전에 제어 권한이 있는지 확인하세요. 키보드 제어 상태를 전환하는 푸시 버튼이 효과적입니다. |
참조
예제: 키보드 앤 마우스 컨트롤: 하나의 프로그램에서 마우스와 키보드 명령을 보여줍니다.
예제: KeyboardMessage: 버튼을 눌렀을 때 텍스트 문자열을 전송합니다.
예제: 키보드 로그아웃: 키 명령으로 현재 사용자를 로그아웃합니다.
예제: 키보드 시리얼: 직렬 포트에서 바이트를 읽고 키 입력을 다시 보냅니다.
예제: KeyboardReprogram: Arduino IDE에서 새 창을 열고 간단한 깜박임 프로그램을 사용하여 보드를 다시 프로그래밍합니다.
'아두이노우노 R4' 카테고리의 다른 글
아두이노 우노 R4 Minima USB HID (0) | 2024.03.15 |
---|---|
아두이노 우노 R4 Minima 핵 꿀팁 Cheat Sheet (2) | 2024.03.14 |
아두이노 우노 R4 Minima 모든 꿀팁 (1) | 2024.03.13 |
uno r4 키보드 기능 안 될 때 시도해볼 것 (0) | 2024.03.09 |
아두이노 우노 R4 WiFi 마우스, 키보드 제어 방법 (1) | 2024.03.06 |
Arduino Uno R4 빠르게 시작하기 (1) | 2024.03.04 |
아두이노 우노 R4 HID 장애인 키보드 구현 (1) | 2024.02.29 |
16*2 LCD 디스플레이 두 개를 아두이노와 연결하기 (1) | 2024.02.26 |
더욱 좋은 정보를 제공하겠습니다.~ ^^