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 );
}
반응형