Chapter 21: 온도에 따른 LED 색상 표시기 만들기¶
🎯 이 장에서 배우는 것¶
- [ ] RGB LED로 다양한 색상을 표현할 수 있다
- [ ] 온도 범위에 따라 LED 색상을 변경할 수 있다
⏱️ 예상 학습 시간: 약 40분
📚 핵심 개념¶
개념: RGB LED¶
비유: RGB LED는 세 가지 물감이 들어있는 팔레트와 같아요!
빨강(R), 초록(G), 파랑(B) 세 가지 빛을 섞어서 다양한 색을 만들어요.
flowchart LR
R["🔴 빨강"] --> MIX["🎨 RGB LED"]
G["🟢 초록"] --> MIX
B["🔵 파랑"] --> MIX
MIX --> COLOR["다양한 색상!"]
| 조합 | R | G | B | 결과 |
|---|---|---|---|---|
| 빨강 | 255 | 0 | 0 | 🔴 |
| 초록 | 0 | 255 | 0 | 🟢 |
| 파랑 | 0 | 0 | 255 | 🔵 |
🔨 따라하기¶
Step 1: RGB LED 색상 함수 만들기¶
코드:
import machine
from machine import Pin, PWM
# RGB LED 핀 설정
red = PWM(Pin(13))
green = PWM(Pin(12))
blue = PWM(Pin(14))
def set_color(r, g, b):
"""RGB 색상 설정"""
red.duty(r * 4) # 0~255 → 0~1023 변환
green.duty(g * 4)
blue.duty(b * 4)
# 테스트: 파란색
set_color(0, 0, 255)
실행 결과:
LED가 파란색으로 켜짐
Step 2: 온도별 색상 표시¶
코드:
def show_temp_color(temp):
"""온도에 따른 색상 표시"""
if temp < 18:
set_color(0, 0, 255) # 추움: 파랑
elif temp < 26:
set_color(0, 255, 0) # 적당: 초록
else:
set_color(255, 0, 0) # 더움: 빨강
# 테스트
show_temp_color(15) # 파랑
show_temp_color(22) # 초록
show_temp_color(30) # 빨강
flowchart LR
T["🌡️ 온도"] --> C1{18℃ 미만?}
C1 -->|예| B["🔵 파랑<br/>추워요"]
C1 -->|아니오| C2{26℃ 미만?}
C2 -->|예| G["🟢 초록<br/>쾌적해요"]
C2 -->|아니오| R["🔴 빨강<br/>더워요"]
📝 전체 코드¶
from machine import Pin, PWM, ADC
import time
# RGB LED 설정
red = PWM(Pin(13))
green = PWM(Pin(12))
blue = PWM(Pin(14))
# 온도 센서
sensor = ADC(0)
def set_color(r, g, b):
red.duty(r * 4)
green.duty(g * 4)
blue.duty(b * 4)
def read_temp():
value = sensor.read()
return (value / 1023.0) * 100 # 간단 변환
def show_temp_color(temp):
if temp < 18:
set_color(0, 0, 255) # 파랑
elif temp < 26:
set_color(0, 255, 0) # 초록
else:
set_color(255, 0, 0) # 빨강
# 실행
while True:
temp = read_temp()
show_temp_color(temp)
print(f"온도: {temp:.1f}℃")
time.sleep(1)
⚠️ 주의할 점¶
RGB 값 범위: 0~255 사이 값만 사용하세요!
# ❌ 오류
set_color(300, 0, 0)
# ✅ 올바름
set_color(255, 0, 0)
✅ 점검하기¶
- RGB LED에서 노란색을 만들려면 어떤 색을 섞어야 할까요?
정답 확인
빨강 + 초록 = 노랑 → set_color(255, 255, 0)- 온도 기준을 20℃, 28℃로 바꾸려면 어디를 수정할까요?
정답 확인
if temp < 20: 와 elif temp < 28: 으로 숫자만 변경!🔗 다음 장 미리보기¶
🎵 다음 장에서는 피에조 부저로 알림음 만들기를 배워요. LED와 소리를 함께 사용해볼까요?