1. 이론 소개
- 온도 센서(DHT11, DHT22, LM35 등): 주변 환경의 온도를 측정합니다.
- 가변 저항기: 저항 값을 조절할 수 있는 장치로, 이를 통해 전기 신호의 강도를 변경할 수 있습니다.
- RGB LED: 빨강, 초록, 파랑 색상의 LED를 결합한 것으로, 각 색상의 밝기를 조절하여 다양한 색상을 만들 수 있습니다.
2. 준비물
- 아두이노 보드 (Uno, Mega 등)
- 온도 센서 (DHT11, DHT22, LM35 등)
- RGB LED
- 가변 저항기 (10kΩ 권장)
- 저항 (220Ω, 각 LED 핀에 하나씩)
- 점퍼 와이어
- 브레드보드
3. 비슷한 센서 모델
- 온도: DS18B20 (방수 기능이 있는 모델)
4. 추천 보드 및 간단한 설명
- 아두이노 Uno: 다양한 프로젝트에 적합하며 초보자에게 친숙
- 아두이노 Mega: 더 많은 I/O 핀을 제공, 복잡한 프로젝트에 적합
5. 회로 구성
- 온도 센서의 핀을 아두이노에 연결
- RGB LED의 각 색상 핀을 아두이노의 PWM 핀에 연결
- 각 색상 핀에 220Ω 저항 연결
- 가변 저항기의 중앙 핀을 아두이노의 아날로그 핀에 연결 (예: A0)
6. 코딩 내용(주석 포함)
#include <DHT.h>
#define DHTPIN A0 // DHT 센서 핀
#define DHTTYPE DHT11 // DHT 타입
DHT dht(DHTPIN, DHTTYPE);
const int potPin = A1; // 가변 저항기 핀
const int redPin = 9; // 레드 LED 핀
const int greenPin = 10; // 그린 LED 핀
const int bluePin = 11; // 블루 LED 핀
void setup() {
dht.begin();
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
float temp = dht.readTemperature(); // 온도 읽기
int potValue = analogRead(potPin); // 가변 저항기 값 읽기
int brightness = map(potValue, 0, 1023, 0, 255); // 밝기 조절
// 온도에 따른 색상 조절
if (temp < 20) {
analogWrite(redPin, 0);
analogWrite(greenPin, 0);
analogWrite(bluePin, brightness);
} else if (temp >= 20 && temp < 30) {
analogWrite(redPin, 0);
analogWrite(greenPin, brightness);
analogWrite(bluePin, 0);
} else {
analogWrite(redPin, brightness);
analogWrite(greenPin, 0);
analogWrite(bluePin, 0);
}
delay(1000); // 딜레이
}
7. 코딩 내용 설명
이 코드는 온도 센서로부터 읽은 온도에 따라 RGB LED의 색상을 변경합니다. 또한, 가변 저항기를 통해 LED의 밝기를 조절합니다. 예를 들어, 낮은 온도에서는 파란색, 중간 온도에서는 녹색, 높은 온도에서는 빨간색으로 설정됩니다.
8. 코드 업로드 및 테스트
- 아두이노 IDE에 코드를 입력하고 업로드
- 온도 변화에 따라 LED 색상의 변화 확인
- 가변 저항기를 조절하면서 LED 밝기 변화 확인
9. 응용 업그레이드
- 다양한 온도 범위에 따라 더 많은 색상 조합 구현
- 온도와 밝기 데이터를 LCD 화면에 표시
- 외부 환경 데이터와 연동하여 자동 조명 시스템 구축
10. 전문용어 및 설명
- DHT: 디지털 온습도 센서
- PWM (Pulse Width Modulation): 디지털 신호의 폭을 조절하여 아날로그 신호와 같은 효과를 내는 기술
11. 기타
온도 센서의 정확도는 환경에 따라 달라질 수 있으므로, 정확한 사용을 위해서는 여러 조건에서 테스트하는 것이 좋습니다.
'아두이노' 카테고리의 다른 글
버튼과 LED로 게임 내 상태 표시 (0) | 2023.12.02 |
---|---|
조도 센서와 초음파 센서를 사용한 환경 모니터링 및 경고 (0) | 2023.12.02 |
가변 저항기와 부저로 소리 높이 및 주파수 조절 (0) | 2023.12.02 |
버튼과 조도 센서를 사용하여 LCD 화면 스크롤링 (0) | 2023.12.02 |
초음파 센서와 LED로 물체 감지 시 LED 패턴 표시 (0) | 2023.12.02 |