1. 연구 모듈/비분류
아두이노에서 스위치 사용하기 (내부풀업 방식)
사용자-1
2021. 8. 20. 07:38
???? - 3. 누를 것이 필요해! (내부풀업 사용)
보통은 스위치에 풀다운 저항을 붙여서 많이 사용하는데, 여기서는 귀차니즘에 굴복하라!는 일일과제 달성을 위하여 내부 풀업 저항을 이용한 방법을 확인해보겠습니다. 이 경우, 출력값이 버튼을 누르지 않았을 때 HIGH, 눌렀을 경우에 LOW로 들어오게 됩니다.
배선도
소스
void setup() { pinMode(4, INPUT_PULLUP); } void loop() { int buttonD4 = digitalRead(4); if (buttonD4 == LOW) { Serial.println("button pressed!"); } }
실행 결과
- 위 소스를 테스트해보면 위에서 말한대로 입력이 들어오는 것을 확인할 수 있다.
- 하지만 실사용의 경우에는 아래와 같이 previous 값 관리를 해야 버튼이 한번 눌릴 때 이벤트 처리가 여러번 되는 것을 방지할 수 있다.
void setup() { pinMode(4, INPUT_PULLUP); } int buttonD4Prev = HIGH; void loop() { int buttonD4 = digitalRead(4); if (buttonD4Prev == HIGH && buttonD4 == LOW) { Serial.println("button pressed!"); } buttonD4Prev = buttonD4; }