0까지 카운트다운
Coddy Arduino 여정의 디스플레이와 센서 섹션에 포함된 레슨. 24개 중 4번째.
서보 스윕에서처럼 for 루프는 카운트다운할 수 있습니다. 높은 값에서 시작하고, 숫자가 0 이상인 동안 계속 실행하며, 매번 n--로 1씩 줄입니다:
for (int n = 5; n >= 0; n--) {
showDigit(n);
delay(1000);
}이 코드는 5, 4, 3, 2, 1, 0을 표시합니다. n > 0을 사용하면 1에서 멈추고 0은 표시하지 않습니다.
카운트다운은 반복해서가 아니라 한 번만 실행되어야 합니다. setup()의 코드는 한 번 실행되므로, 카운트다운과 0이 된 다음에 일어날 동작을 그곳에 넣으세요. loop()는 비워 두어도 되며, 0은 디스플레이에 계속 표시됩니다.
챌린지
쉬움버저는 9번 핀에 연결되어 있습니다. 발사 카운트다운을 만드세요:
setup()에서 5부터 0까지 초당 하나씩 숫자를 세세요- 0에서
tone(buzzerPin, 880, 1000)으로 버저를 울리세요 - 디스플레이에 0을 표시한 채로 두세요
Run을 누른 다음 Check를 누르세요.
직접 해보기
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8}; // a, b, c, d, e, f, g
// 숫자 하나당 패턴 하나입니다. 오른쪽부터 읽으며, 마지막 비트는 세그먼트 a입니다.
// gfedcba
const byte digits[10] = {
0b0111111, // 0
0b0000110, // 1
0b1011011, // 2
0b1001111, // 3
0b1100110, // 4
0b1101101, // 5
0b1111101, // 6
0b0000111, // 7
0b1111111, // 8
0b1101111 // 9
};
void showDigit(int n) {
for (int i = 0; i < 7; i++) {
if (bitRead(digits[n], i) == 1) {
digitalWrite(segmentPins[i], LOW); // 켜짐
} else {
digitalWrite(segmentPins[i], HIGH); // 꺼짐
}
}
}
const int buzzerPin = 9;
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// 여기서 5부터 0까지 카운트다운한 다음 부저를 울립니다
}
void loop() {
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
디스플레이와 센서의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드