기기 코딩 22 / 31
어두우면 켜지는 무드등
빛 센서로 밝기를 재서, 어두워지면 LED가 저절로 켜지게 만들어요.
- 준비물: 빛 센서(CdS) 1개, 10kΩ 저항 1개, 빨간 LED 1개, 220Ω 저항 1개, 점퍼선 5개
| 부품 다리 | 아두이노 Uno | ESP32 |
|---|---|---|
| 빛 센서 한쪽 다리 | 5V | 3V3 |
| 빛 센서 다른 쪽 다리 + 10kΩ 저항 한쪽 (같은 줄) | A0 | GPIO 34 |
| 10kΩ 저항 다른 쪽 | GND | GND |
| 보드 핀 → 220Ω → LED 긴 다리, 짧은 다리 → GND | 10번 | GPIO 25 |
빛 센서는 밝을수록 전기가 잘 통하는 부품이에요. 저항과 함께 연결하면 밝을수록 큰 숫자, 어두울수록 작은 숫자가 읽혀요.
// 어두우면 켜지는 무드등#ifdef ARDUINO_ARCH_ESP32const int LED = 25, SENSOR = 34;← ESP32 보드면 이쪽 번호를 써요 (보드에 따라 자동으로 골라져요)const int DARK = 1200;← ESP32는 0~4095. 이보다 작으면 '어둡다'#elseconst int LED = 10, SENSOR = A0;const int DARK = 300;← Uno는 0~1023#endifvoid 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) ② 어두워지면 노란불, 아주 어두우면 빨간불 ③ 시리얼 플로터로 밝기 그래프 보기
💬 막히면 도우미에게 물어보세요
오류가 나면 오류 문구를 그대로 붙여 넣으면 더 정확해요. 예: “무드등이 어두울수록 더 밝게 켜지게 하려면 어떻게 해요?”