Menu
CoddyTech

조도 막대

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

링은 숫자를 막대 형태로 표시할 수 있습니다. 숫자가 클수록 더 많은 픽셀이 켜집니다. 여기서 숫자는 조도입니다.

야간 조명 수업에서처럼, A0의 조도 센서 측정값은 빛이 강해질수록 낮아집니다. 먼저 값을 반전시켜 숫자가 클수록 빛이 강하도록 하세요.

int light = 1023 - analogRead(A0);
int count = map(light, 0, 1023, 0, 16);

그런 다음 링을 지우고 count에서 1을 뺀 값까지 픽셀 0부터 켜세요.

ring.clear();
for (int i = 0; i < count; i++) {
  ring.setPixelColor(i, yellow);
}
ring.show();

clear()를 사용하면 막대의 길이가 줄어들 수 있습니다. 이 함수가 없으면 밝을 때 켜졌던 픽셀이 어두워져도 계속 켜져 있습니다.

challenge icon

챌린지

중급

조도 센서는 A0에, 링은 핀 6에 연결되어 있습니다. 라이트 바를 만드세요:

  • 조도가 높을수록 숫자가 커지도록 측정값을 반전하세요
  • 측정값을 0~16픽셀 범위에 매핑하세요
  • 링을 초기화하고, 픽셀 0부터 해당 개수만큼 픽셀을 켠 다음 표시하세요

실행을 누르고 보드의 조도를 바꾼 다음 확인을 누르세요.

직접 해보기

#include <Adafruit_NeoPixel.h>

// 16개 픽셀, 데이터는 핀 6으로 전달
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);

uint32_t yellow = ring.Color(255, 160, 0);

void setup() {
  ring.begin();
}

void loop() {
  int reading = analogRead(A0);  // 빛이 밝아질수록 값이 낮아짐
  // 밝을수록 더 많은 픽셀을 켬
  delay(50);
}
quiz icon실력 점검

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

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

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