라즈베리파이, 아두이노

[간단한 아두이노 코딩] 10. 조도 센서 사용하기 (CDS)

포도알77 2020. 11. 24. 10:16

조도 센서 사용하기 (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 값이 커진다.

 만약 밝을 수록 값이 커지길 원한다면 풀다운 저항으로 구성하면 된다.

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사