Menu
CoddyTech

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은 디스플레이에 계속 표시됩니다.

challenge icon

챌린지

쉬움

버저는 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() {
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

디스플레이와 센서의 모든 레슨

직접 연습해 보세요: Arduino 플레이그라운드