// CDS 센서의 값(8~1015)을 9개 구간으로 나누어 해당하는 LED만 켜기
// 범위: 8~1015 (총 1008), 9개 구간 → 각 구간 약 112
// 핀 설정
const int CDS_PIN = A0;
const int LED_START_PIN = 2;
const int LED_COUNT = 9;
const int LED_END_PIN = LED_START_PIN + LED_COUNT - 1; // D10
// CDS 9개 구간의 정확한 경계값
// 각 구간: (1015-8)/9 = 112 폭
const int CDS_THRESHOLD[8] = {
    120, // LED1: 8~119   / LED2: 120~231
    232, // LED2: 120~231 / LED3: 232~343
    344, // LED3: 232~343 / LED4: 344~455
    456, // LED4: 344~455 / LED5: 456~567
    568, // LED5: 456~567 / LED6: 568~679
    680, // LED6: 568~679 / LED7: 680~791
    792, // LED7: 680~791 / LED8: 792~903
    904  // LED8: 792~903 / LED9: 904~1015
};
void setup()
{
    // LED 핀 설정
    for (int i = LED_START_PIN; i <= LED_END_PIN; i++)
    {
        pinMode(i, OUTPUT);
        digitalWrite(i, LOW);
    }
    // CDS 핀 설정 (입력)
    pinMode(CDS_PIN, INPUT);
    // 시리얼 통신 초기화 (디버깅용)
    Serial.begin(9600);
    Serial.println("CDS LED Indicator started!");
    Serial.println("CDS Value Mapping (Actual Range: 8~1015):");
    Serial.println("8~119: LED1(D2)   |  120~231: LED2(D3)   |  232~343: LED3(D4)");
    Serial.println("344~455: LED4(D5)  |  456~567: LED5(D6)  |  568~679: LED6(D7)");
    Serial.println("680~791: LED7(D8)  |  792~903: LED8(D9)  |  904~1015: LED9(D10)");
}
void loop()
{
    // CDS 값 읽기
    int cds_value = analogRead(CDS_PIN);
    // 경계값과 비교하여 LED 인덱스 결정
    int led_index = 0;
    for (int i = 0; i < 8; i++)
    {
        if (cds_value >= CDS_THRESHOLD[i])
        {
            led_index = i + 1;
        }
    }
    // 모든 LED 끄기
    for (int i = LED_START_PIN; i <= LED_END_PIN; i++)
    {
        digitalWrite(i, LOW);
    }
    // 선택된 LED만 켜기
    int active_pin = LED_START_PIN + led_index;
    digitalWrite(active_pin, HIGH);
    // 디버깅: 100ms마다 CDS 값과 점등된 LED 출력
    static unsigned long last_print_time = 0;
    if (millis() - last_print_time >= 100)
    {
        Serial.print("CDS: ");
        Serial.print(cds_value);
        Serial.print(" → LED ");
        Serial.print(led_index + 1);
        Serial.print(" (D");
        Serial.print(active_pin);
        Serial.println(")");
        last_print_time = millis();
    }
}
절대 이 배선도를 따라 전선을 연결하면 안됩니다.!
보드 망가집니다. ~
가상으로 움직임만 보여드려고 연결한 가짜 배선도입니다.