디스플레이 숫자 세기
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부터 다시 시작됩니다.
챌린지
쉬움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초씩 표시
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
디스플레이와 센서의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드