🧪 예제 따라하기메뉴
코딩하기 · 예제 따라하기

기기 코딩 22 / 31

어두우면 켜지는 무드등

빛 센서로 밝기를 재서, 어두워지면 LED가 저절로 켜지게 만들어요.

  • 준비물: 빛 센서(CdS) 1개, 10kΩ 저항 1개, 빨간 LED 1개, 220Ω 저항 1개, 점퍼선 5개
연결 표
부품 다리아두이노 UnoESP32
빛 센서 한쪽 다리5V3V3
빛 센서 다른 쪽 다리 + 10kΩ 저항 한쪽 (같은 줄)A0GPIO 34
10kΩ 저항 다른 쪽GNDGND
보드 핀 → 220Ω → LED 긴 다리, 짧은 다리 → GND10번GPIO 25

빛 센서는 밝을수록 전기가 잘 통하는 부품이에요. 저항과 함께 연결하면 밝을수록 큰 숫자, 어두울수록 작은 숫자가 읽혀요.

코드
// 어두우면 켜지는 무드등
#ifdef ARDUINO_ARCH_ESP32
const int LED = 25, SENSOR = 34;← ESP32 보드면 이쪽 번호를 써요 (보드에 따라 자동으로 골라져요)
const int DARK = 1200;← ESP32는 0~4095. 이보다 작으면 '어둡다'
#else
const int LED = 10, SENSOR = A0;
const int DARK = 300;← Uno는 0~1023
#endif
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(115200);← 센서 값을 화면에서 보려고요
}
void loop() {
int light = analogRead(SENSOR);← 지금 밝기
Serial.println(light);
if (light < DARK) {← 어두우면
digitalWrite(LED, HIGH);
} else {← 밝으면
digitalWrite(LED, LOW);
}
delay(200);
}
  • 확인: 시리얼 모니터(115200)를 열고 센서를 손으로 가렸다 뗐다 하며 숫자가 바뀌는지 봐요.
  • 방마다 밝기가 달라요. 손으로 가렸을 때 숫자와 뗐을 때 숫자의 중간쯤으로 DARK 값을 고쳐요.

바꿔 보기: ① 어두울수록 더 밝게 켜지게(analogWrite와 map) ② 어두워지면 노란불, 아주 어두우면 빨간불 ③ 시리얼 플로터로 밝기 그래프 보기

💬 막히면 도우미에게 물어보세요

오류가 나면 오류 문구를 그대로 붙여 넣으면 더 정확해요. 예: “무드등이 어두울수록 더 밝게 켜지게 하려면 어떻게 해요?”