조도 센서 사용하기 (CDS)
1. CDS 조도 센서
빛 세기를 측정할 때 사용되는 CDS 센서(포토레지스터)는 이름에서 알 수 있듯 황화 카드뮴으로 만들어져있다. CDS 센서는 빛의 밝기에 따라 저항 값이 변화는 가변 저항과 같다.
빛의 밝아지면 저항 값이 떨어지고, 어두워지면 저항이 떨어진다. 센서 제조사마다 조금씩 다르지만 20옴~200k옴까지 변한다. 문제는 빛이 세질 수록 저항이 떨어져서 연결된 아두이노에 과전류가 흐를 수 있다. 아두이노에서 아날로그 데이터는 전압으로 측정하므로, 풀업 저항을 이용하여 과전류를 예방하고 조도 값을 측정할 수 있다.
다만, CDS센서는 싼 만큼 엄청난 오차범위를 가지므로 Lux 계산에는 사용하지 말고 단순히 Threshold값에 대한 동작에 사용하는 것이 좋다.
2. 회로도
대략 10k 옴을 이용하면 아무리 광센서의 저항이 적어져도 과전류의 걱정은 없다. CDS 센서만으로는 할 수 있는게 없으니 LED를 이용해서 적당히 어두워지면 LED를 켜는 동작을 수행하자.
3. 소스코드
// CDS 센서 A0
// LED 8
const int cds_pin = 0;
const int led_pin = 7;
void setup() {
// 핀모드 OUT 설정
pinMode(led_pin, OUTPUT);
}
void loop() {
// analog 데이터 읽기
// Pull Up 저항으로 회로를 구성하면 어두울수록 값이 커진다.
// Pull Down 저항으로 회로를 구성하면 밝을수록 값이 커진다.
// 이 회로는 풀업으로 구성되어있다.
int dark = analogRead(cds_pin);
// 어두움의 세기가 500이상이면 LED를 켠다.
digitalWrite(led_pin, dark > 500);
delay(1000);
}
직선상에 5V - 저항 - CDS 센서 - GND를 연결하고, 밝기를 세게하면 저항이 떨어지므로 CDS 센서에 전압은 떨어지게 된다. 즉, 어두울수록 analog 값이 커진다.
만약 밝을 수록 값이 커지길 원한다면 풀다운 저항으로 구성하면 된다.
'라즈베리파이, 아두이노' 카테고리의 다른 글
[간단한 아두이노 코딩] 12. 스텝 모터 드라이버(DM741, ULN2003) 사용하기 (0) | 2020.11.24 |
---|---|
[간단한 아두이노 코딩] 11. 피에조 부저 사용하기 + 젓가락 행진곡 (0) | 2020.11.24 |
[간단한 아두이노 코딩] 9. XYZ 가속도 센서 사용하기(GY-61) (0) | 2020.11.24 |
[간단한 아두이노 코딩] 8. 세븐 세그먼트 + 디코더 사용하기 (2) | 2020.11.24 |
[간단한 아두이노 코딩] 7. 세븐 세그먼트 사용하기 (4) | 2020.11.24 |