버튼 두 개 동시에 사용하기
Coddy Arduino 여정의 입력 섹션에 포함된 레슨. 22개 중 7번째.
각 버튼에는 고유한 핀과 고유한 digitalRead()가 있습니다. 보드는 버튼을 하나씩 읽지만, 너무 빠르게 읽기 때문에 여러분에게는 동시에 읽는 것처럼 보입니다.
공장 기계에는 서로 멀리 떨어진 두 개의 버튼이 있는 경우가 많으며, 두 버튼을 모두 누르고 있는 동안에만 작동합니다. 양손이 버튼 위에 있으므로 어느 손도 칼날 가까이에 있을 수 없습니다. 이 규칙은 조건 결합에서 사용하는 &&입니다:
bool left = digitalRead(2) == LOW;
bool right = digitalRead(3) == LOW;
if (left && right) {
// 두 버튼이 모두 눌려 있음
}두 핀 모두 INPUT_PULLUP이 필요합니다. 하나라도 빠뜨리면 해당 핀이 부동 상태가 되고, 이 경우 LOW로 읽혀 버튼을 항상 누르고 있는 것처럼 됩니다.
챌린지
쉬움버튼은 핀 2와 3에 연결되어 있고, 둘 다 GND에 연결되어 있으며, LED는 핀 13에 있습니다. 두 버튼을 모두 누르고 있는 동안에만 LED를 켜세요:
- 핀 2와 3을
INPUT_PULLUP으로 설정합니다 - 각 버튼의 값을
bool에 읽어들입니다 - 두 버튼을 모두 누르면 LED를 켜고, 그렇지 않으면 끕니다
실행을 누르고, 버튼 하나를 누른 다음 두 버튼을 모두 누른 뒤 확인을 누르세요.
직접 해보기
const int leftPin = 2;
const int rightPin = 3;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
// 두 버튼 핀을 INPUT_PULLUP으로 설정하세요
}
void loop() {
// 두 버튼의 상태를 읽고, 두 버튼을 모두 누르고 있는 동안에만 LED를 켜세요
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
입력의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드