Menu
CoddyTech

디스플레이 숫자 세기

Coddy Arduino 여정의 디스플레이와 센서 섹션에 포함된 레슨. 24개 중 3번째.

showDigit()를 사용하면 숫자 하나를 표시할 때 함수 호출 한 번이면 됩니다. for 루프를 사용하면 모든 숫자를 차례로 전달할 수 있습니다:

for (int n = 0; n <= 9; n++) {
  showDigit(n);
  delay(500);
}

조건식이 마지막 숫자를 결정합니다. n <= 9는 9를 포함해 그때까지 실행되고, n < 9는 8에서 멈춥니다.

루프를 loop() 안에 넣으면, 카운트가 끝났을 때 loop()가 다시 실행되고 카운트는 0부터 다시 시작됩니다.

challenge icon

챌린지

쉬움

showDigit()이 준비되었습니다. 디스플레이에서 숫자를 세어 보세요:

  • 0, 1, 2부터 시작해 9까지 표시합니다
  • 각 숫자를 500 ms 동안 표시합니다
  • 9 다음에는 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);  // 꺼짐
    }
  }
}

void setup() {
  for (int i = 0; i < 7; i++) {
    pinMode(segmentPins[i], OUTPUT);
  }
}

void loop() {
  // 0부터 9까지 각각 0.5초씩 표시
}
quiz icon실력 점검

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

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

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