기타 프로젝트/공개 프로그램

[Arduino] Button Click Check - 버튼 상태 저장 및 확인 라이브러리

당근천국 2023. 5. 19. 15:30

Button Click Check

아두이노에 연결된 버튼의 상태를 확인하기 위한 라이브러리입니다.

소스 코드 : dang-gun/Arduino_ButtonClickCheck

 

상태가 변하지 않았을 때, 상태가 변했을 때의 출력을 다르게 해줍니다.
이 상태를 이용하여 버튼의 상태가 변했을 때 한 번만 동작하도록 쉽게 프로그래밍이 가능합니다.

 

연관글 영역

 

 

목차

주요 기능

  • 버튼의 마지막 상태 저장
  • 버튼의 상태 변화 감지

시작 하기

  • 깃허브의 'Releases'에서 파일을 다운로드하거나
  • 'ButtonClickCheck.h', 'ButtonClickCheck.cpp'를 생성하고 소스를 복사하여 넣어주세요.

이후 아래 설명에 따라 설치해 주세요.

필요 조건

'Arduino 1.8.19'에서 테스트 되었습니다.

설치

아두이노 소프트웨어 폴더의 'libraries' 폴더에 'ButtonClickCheck' 폴더를 생성합니다.

이곳에  파일을 넣습니다.

- ButtonClickCheck.h

- ButtonClickCheck.cpp

Arduino_ButtonClickCheck_001

 

아두이노 소프트웨어를 실행하고 소스 코드에 다음 줄을 추가합니다.

#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);
}

ButtonClickCheck_001_001ButtonClickCheck_001_003

문서

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

수정 이력

2023-05-17 :

  • BtnPush2Set 기능 추가
  • 저장소 분리

2023-05-15 :

  • 주석 정리

2023-05-11 :

  • '4=First Up' 기능 추가

2019-07-28 :

  • 개발 완료

기여 방법

프로젝트를 '포크(Fork)'하여 '새로운 벤치(new branch)'를 만든 후 '풀 리퀘스트(pull request)'해주세요.

저자 및 기여자

갱신되지 않는 기여자 목록은 기여자에서 확인할 수 있습니다.

라이선스

MIT