Menu
CoddyTech

LED 이진 카운터

Coddy Arduino 여정의 출력 섹션에 포함된 레슨. 24개 중 19번째.

네 개의 LED는 컴퓨터가 숫자를 저장하는 방식인 이진수로 0부터 15까지의 숫자를 나타낼 수 있습니다. 각 LED의 자릿값은 바로 앞 자릿값의 두 배입니다. 즉 1, 2, 4, 8입니다. 켜진 LED는 그 값을 더합니다:

  • 5는 4 + 1입니다: 4와 1의 값을 가진 LED가 켜집니다
  • 10은 8 + 2입니다
  • 15는 네 개 모두입니다

각 자릿값을 비트라고 하며, 값이 1인 자리부터 0으로 번호를 매깁니다. bitRead(number, n)은 숫자의 n번째 비트인 1 또는 0을 반환합니다:

bitRead(5, 0);  // 1: 5에는 1이 있습니다
bitRead(5, 1);  // 0: 5에는 2가 없습니다
bitRead(5, 2);  // 1: 5에는 4가 있습니다

1은 HIGH이고 0은 LOW이므로, 비트 i를 LED i에 바로 연결할 수 있습니다:

for (int i = 0; i < 4; i++) {
  digitalWrite(ledPins[i], bitRead(count, i));
}

여기서 ledPins[0]인 핀 2는 오른쪽에 있는 LED이며, 숫자의 마지막 자릿값처럼 1의 값을 가집니다.

challenge icon

챌린지

중급

네 개의 LED가 이진수로 세도록 하세요:

  • count를 0으로 시작합니다
  • bitRead()를 사용해 LED에 표시합니다. 비트 i는 ledPins[i]에 표시합니다
  • 250 ms 기다린 다음 1을 더하고, 15 이후에는 다시 0에서 시작합니다

Run을 누른 다음 Check를 누르세요.

직접 해보기

int ledPins[] = {2, 3, 4, 5};  // 각각 1, 2, 4, 8의 값을 가짐
int count = 0;

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

void loop() {
  // count를 이진수로 표시하고 250 ms 기다린 다음 값을 1씩 증가시킴 (15 다음에는 0으로 돌아감)
}
quiz icon실력 점검

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

출력의 모든 레슨

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