[Arduino] Arduino pro micro 호환보드로 키보드 입력 발생시키기

스윗포테이토·2022년 11월 30일
2

아두이노 프로 마이크로

키보드 및 마우스 이벤트를 발생시키려면 해당 기능을 지원하는 보드를 써야 한다.
정식 보드로는 아두이노 레오나르도 보드가 있고, 호환 보드로 아두이노 프로 마이크로 보드가 있어서 그걸 사용해보기로 했다.

우선 IDE에서 레오나르도 보드를 선택한 후, 시리얼로 연결을 확인해보는 코드를 넣어서 돌려보았다.

void setup(){
	Serial.begin(9600);
}
void loop(){
	Serial.println("connected");
}


Arduino IDE 2.0.2를 사용중인데, 이런 오류가 나는 것을 볼 수 있다. 시도해보니 1.x 버전 IDE에서는 이런 문제가 생기지 않았다.
아마 호환보드라서 이런 문구가 출력되는거 같은데 시리얼 출력을 확인해보니 코드는 정상적으로 올라간 것을 알 수 있었다.

라이브러리 참조

#include <Keyboard.h>

보드가 아두이노 레오나르도가 선택되지 않았다면 라이브러리를 찾을 수 없다고 뜰 수 있으니 주의!!

샘플코드

아직 버튼 등을 달기 전이라 그냥 루프 함수에 키보드 입력을 넣어봤다.
그러나 문제는 조건문 등의 사용 없이 그냥 입력하게 되면 키보드 입력이 무한으로 들어가서 컴퓨터가 먹통이 될 수 있다.

따라서 아래와 같이 한번만 출력하는 코드를 짜보았는데,

#include <Keyboard.h>
bool flag = true;
void setup(){
	Serial.begin(9600);
    Keyboard.begin();
}
void loop(){
    if (flag){
    	flag = false;
        Keyboard.print('A');
        Serial.println('A');
    }
}

전혀 되지 않았다. flag를 int형으로 바꾸고 숫자를 5000등으로 크게 주어도 출력되지 않았는데, 이유는 시리얼 포트나 키보드 입력이 연결되기 전에 이미 loop()함수가 5000번 이상 돌기 때문인 것 같다. delay(500)을 주어 동작 속도를 늦추었더니 키보드 입력이 되는 것을 확인할 수 있었다.

profile
나의 삽질이 미래의 누군가를 구할 수 있다면...

0개의 댓글