아두이노에 연결된 버튼의 상태를 확인하기 위한 라이브러리입니다.
소스 코드 : dang-gun/Arduino_ButtonClickCheck
상태가 변하지 않았을 때, 상태가 변했을 때의 출력을 다르게 해줍니다.
이 상태를 이용하여 버튼의 상태가 변했을 때 한 번만 동작하도록 쉽게 프로그래밍이 가능합니다.
이후 아래 설명에 따라 설치해 주세요.
'Arduino 1.8.19'에서 테스트 되었습니다.
아두이노 소프트웨어 폴더의 'libraries' 폴더에 'ButtonClickCheck' 폴더를 생성합니다.
이곳에 파일을 넣습니다.
- ButtonClickCheck.h
- ButtonClickCheck.cpp
아두이노 소프트웨어를 실행하고 소스 코드에 다음 줄을 추가합니다.
#include <ButtonClickCheck.h>
아래 코드를 스케치에 넣고 테스트해 보세요.
#include <ButtonClickCheck.h>
#define Button01 2
#define Button02 4
//테스트 1
ButtonClickCheck BCC_1(HIGH);
//테스트 2
//ButtonClickCheck BCC_2(HIGH);
ButtonClickCheck BCC_2(Button02, LOW);
void setup()
{
Serial.begin(9600);
pinMode(Button01, INPUT_PULLUP);
pinMode(Button02, INPUT_PULLUP);
}
void loop()
{
//컴퓨터에 신호를 준다.
int nBtnState01 = BCC_1.ClickCheck(digitalRead(Button01));
//int nBtnState02 = BCC_2.ClickCheck(digitalRead(Button02));
int nBtnState02 = BCC_2.ClickCheck();
Serial.print(nBtnState01);
Serial.print(" : ");
Serial.println(nBtnState02);
delay(500);
}
Name | Description |
---|---|
ButtonClickCheck(int nButtonUpLevel) | 버튼 판단을 위한 라이브러리 @param nButtonUpLevel 버튼이 눌리지 않았을때 판단값. LOW or HIGH |
ButtonClickCheck(uint8_t uintPin, int nButtonUpLevel) | 버튼 판단을 위한 라이브러리(사용할 핀 지정) @param uintPin 핀을 미리 지정한다. @param nButtonUpLevel 버튼이 눌리지 않았을때 판단값. LOW or HIGH |
int ClickCheck() | 저장된 핀번호의 값을 읽어 클릭정보를 판단한다. @return 1=Up, 2=Down, 3=First Down, 4=First Up 1=Up : 버튼이 눌리지 않은 상태 2=Down : 버튼이 눌린 상태 3=First Down : 버튼이 Up에서 Down으로 바뀐 상태(바뀔때 한번만 출력됨) 4=First Up : 버튼이 Down에서 Up으로 바뀐 상태(바뀔때 한번만 출력됨) |
int ClickCheck(int nDigitalRead) | 전달된 값을 읽어 클릭정보를 판단한다. @param nDigitalRead 입력된 디지털 값(전달된 값) @return 1=Up, 2=Down, 3=First Down, 4=First Up 1=Up : 버튼이 눌리지 않은 상태 2=Down : 버튼이 눌린 상태 3=First Down : 버튼이 Up에서 Down으로 바뀐 상태(바뀔때 한번만 출력됨) 4=First Up : 버튼이 Down에서 Up으로 바뀐 상태(바뀔때 한번만 출력됨) |
BtnPush2Set(bool bBtnPush2Value) | 기존 상태 값인 'bBtnPush2'를 원하는 값으로 지정한다. @param bBtnPush2Value 기존 상태값에 저장할 데이터. on=true, off=false |
프로젝트를 '포크(Fork)'하여 '새로운 벤치(new branch)'를 만든 후 '풀 리퀘스트(pull request)'해주세요.
갱신되지 않는 기여자 목록은 기여자에서 확인할 수 있습니다.