Arduino

[Arduino] 아두이노 푸시 버튼(push button) 사용하기, INPUT, INPUT_PULLUP

Let it out 2024. 2. 2. 16:55

 

 

푸시 버튼은 여러 이름으로 불린다. ex) 버튼, 스위치

 

푸시 버튼을 제어하는 방법에는 두가지가 있다.
1. INPUT : 푸시 버튼을 한번 누르면 0
2. INPUT_PULLUP : 푸시 버튼을 누르고 있으면 0, 떼면 1


INTPUT과 INPUT_PULLUP 의 회로도는 조금 다르다.

 

 

INPUT 회로도

 

 

INPUT 예제

푸시 버튼의 상태를 시리얼 모니터에 출력한다.
프로그램을 실행 시키면 시리얼 모니터에 0, 1, 0, 0, 1 이런 식으로 값이 나온다.
이것은 플로팅 값이라고 하는데 0 과 1 중 정해지지 않은 값이 랜덤으로 나오는 것이다.
이 상태에서 버튼을 한번 누르면 0으로 고정 된 값이 나온다.
#define PUSH_PIN 9
void setup()
{
  pinMode( PUSH_PIN, INPUT );
  Serial.begin(9600);
}
void loop()
{
  int value = digitalRead( PUSH_PIN );
  Serial.println( value );
}

 

 
 

INPUT_PULLUP 회로도

저항은 220옴 사용해주면 된다.

 

 
 

INPUT_PULLUP 예제

프로그램을 실행 하면 시리얼 모니터에 (1,1,1,1,1) 쭉 1로 출력이 된다.
이 상태에서 버튼을 누르고 떼지 않으면 (0,0,0,0,0)으로 나온다.
버튼에서 손을 떼면 다시 1이된다.
#define PUSH_PIN 9
void setup()
{
  pinMode( PUSH_PIN, INPUT_PULLUP );
  Serial.begin(9600);
}
void loop()
{
  int value = digitalRead( PUSH_PIN );
  Serial.println( value );
}
반응형