본문 바로가기

아두이노우노 R4

키보드 자동화 샘플 코드 2

반응형

 

현재까지 구현한 코드

 

 

#include "Keyboard.h"
#include "Mouse.h"

// set pin numbers for the five buttons:
// https://fishpoint.tistory.com/9357
// https://creatorjoseph.com/268
// https://docs.arduino.cc/language-reference/en/functions/usb/Keyboard/keyboardModifiers/

const int startlow = 12; 

const int yellow = 3; //SW1
const int blue = 4;    //SW2
const int green = 11;   //SW3
const int red = A3;   //SW1
const int black = A2;   //SW1
const int white = A1;   //SW1


void setup() {  // initialize the buttons' inputs:

  pinMode(startlow, INPUT); //when 12 num pin goes Low, Start!
  pinMode(yellow, INPUT);
  pinMode(blue, INPUT);
  pinMode(green, INPUT);
  pinMode(red, INPUT);
  pinMode(black, INPUT);
  pinMode(white, INPUT);

  Serial.begin(9600);
  
  // initialize mouse control:
  Mouse.begin();
  Keyboard.begin();

  while (digitalRead(startlow) == HIGH) {  // 12번 핀 LOW 입력받을때 시작 High면 정지상태 유지 - 꼭 필요함
    delay(100);
  }

  Serial.println("Auto Keyboard Start");
}

void loop() {
  
  while (digitalRead(startlow) == HIGH) {  // 12번 핀 GND 아니면 동작 안하도록, 반드시 추가
    delay(100);
  }

  //Serial.println("start low");

  if (digitalRead(yellow) == LOW){ //마우스 우클릭 이미지 다른 이름으로 저장 끝

    Serial.println("yellow Button");
    Mouse.click(MOUSE_RIGHT);
    delay(100);
    Keyboard.write('v');
    delay(600);
    Keyboard.press(KEY_LEFT_ALT); // 오른쪽 ALT키를 길게 누릅니다.
    delay(200);
    Keyboard.press('s'); // s 누르기
    //delay(200);
    Keyboard.releaseAll(); // 둘 다 놓기
    //delay(100);
    //Keyboard.releaseAll();
    Serial.println("operate yellow end");
  }

  if (digitalRead(blue) == LOW){ // 한글 드래그 한것 지우고 ctrl-enter, delete, 개요 1적용, 엔터 2번
    Serial.println("blue Button");
    Keyboard.press(KEY_LEFT_CTRL);  //왼쪽 컨트롤 키
    Keyboard.press(KEY_RETURN);
    delay(100);
    Keyboard.releaseAll();
    Keyboard.write(KEY_DELETE);
    //delay(500);
    Keyboard.press(KEY_LEFT_CTRL); //
    Keyboard.press(51);
    Keyboard.releaseAll();
    Keyboard.press(KEY_LEFT_CTRL); //
    Keyboard.press(51);
    Keyboard.releaseAll();
    delay(100);
    Keyboard.write(KEY_KP_1); //숫자 키패드 1 - END 줄 끝으로 간다
    Keyboard.write(KEY_RETURN);
    delay(200);
    Keyboard.write(KEY_RETURN);
    Keyboard.releaseAll();

    Serial.println("operate blue end");
  }
  if (digitalRead(green) == LOW)  // 백스페이스 지우기 세 번
  {  
    Serial.println("green Button");
    Keyboard.write(KEY_BACKSPACE);
    delay(200);
    Keyboard.write(KEY_BACKSPACE);
    delay(200);
    Keyboard.write(KEY_BACKSPACE);
    //delay(500);
    Serial.println("operate green end");
  }
  if (digitalRead(red) == LOW)  // 백스페이스 문자 하나를 지우고 클립보드 내용을 복사 - HTML 코드 수정에 이용
  {  
    Serial.println("red Button");
    Keyboard.write(KEY_BACKSPACE);
    delay(200);
    Keyboard.press(KEY_LEFT_CTRL); // ctrl-v 붙여넣기 과정
    Keyboard.write('v');    
    delay(200);
    Keyboard.releaseAll();
    Serial.println("operate red end");
  }
  if (digitalRead(black) == LOW)  //구현 예정
  {  
    Serial.println("black Button");
    delay(500);
    Serial.println("operate black end");
  }
  if (digitalRead(white) == LOW)  // 구현 예정
  {  
    Serial.println("white Button");
    delay(500);
    Serial.println("operate white end");
  }

}

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^