조도 센서는 빛의 밝기에 의해 저항 값이 조절 되는 일종의 반도체성 가변 저항으로 실제로 도시의 수많은 가로등 on OFF에 사용되는 센서이다.
그 저항 값은 실제 사용하는 곳에서 손가락으로 가린 상태에서 멀티메터로 저항 값을 측정하면 된다. 태양 빛을 정면으로 받을 때 70옴 수준에서 완전히 가렸을 때 60K옴의 값을 가진다.
아두이노에서 변동하는 빛의 밝기 하에서 조도센서의 저항 값을 알아내기 위해서는 앞 블로그에서 만들어 보았던 전압 측정 회로를 다음과 같이 배선을 수정할 필요가 있다.
즉 1K옴과 조도센서의 저항을 직렬로 합한 양단에 5V 전압을 가해준다. 이 값은 코딩 전에 멀티메터로 실측해서 입력하면 오차 보정에 더욱 좋다. 그대로 해도 문제는 없다.
아울러 이 1K옴 저항에 걸리는 전압을 측정하기 위해 아날로그 입력 A0에 연결 배선한다.
1K옴 저항은 가급적이면 정밀한 것을 고른다. 하지만 멀티메터가 있으면 실측값으로 설정하면 된다.
일단 코딩 완성이 확인 될 때까지는 시리얼로 출력해서 체크하도록 한다. 작동이 잘되면 마지막 FND 용 시리얼 출력만 남기고 모두 // 처리한다.
배선도에는 나타내지 않았지만 4쪽짜리 FND 를 사용하여 K옴 단위로 출력하면 조도 센서의 저항 값 변동을 읽기 쉽다.
조도 센서의 저항 값 6K옴을 분기점으로 하여 그 이상이면 어두워진다는 뜻이므로 청색 L
ED를 on 시킨다.
창가의 그늘 진 곳에서 조도 센서 저항 값 변동에 따른 LED on OFF를 동영상을 통해서 관찰해 보자.
cds_sensor_LED_01
float arduVolt = 5.0; //아두이노 전압 실측치
float r = 997.0; //1K옴 실측치
int ledPin = 11;
void setup() {
Serial.begin(9600);
pinMode(ledPin,OUTPUT);
}
void loop() {
int analogV = analogRead(A0);//0-1023
// Serial.println(analogV);
float V = arduVolt*analogV/(1023.0);//1K옴 저항 전압 환산
// Serial.print(V);
// Serial.println("Volt");
float i = V/r;//1K옴 저항 전류 계산, 암페어
float cdsV = arduVolt-V;//조도센서 전압 계산
float cdsR = cdsV/i;//조도센서 저항 계산
float cdsRk=cdsR/1000.0; //k옴으로 환산
Serial.println(cdsRk,1);//시리얼 모니터 또는 FND출력
// Serial.println(": Ohm");
if( cdsR<6000) { // 6K옴 이하면 on
analogWrite(ledPin,0);//밝으면 끄기
}
else {
analogWrite(ledPin,127);//어두우면 켜기
}
delay(5000);
}
'아두이노프로세싱 프로그래밍' 카테고리의 다른 글
HTML/자바스크립트 계산기 프로그램 예제 (0) | 2017.04.15 |
---|---|
초보자를 위한 조도센서 LED ON OFF에서 저항 값 변동 프로세싱에 의한 그래픽 관찰 (0) | 2017.04.12 |
아두이노 초보자를 위한 멜로디톤 연주(클레멘타인 곡 업데이트) (0) | 2017.04.05 |
아두이노 초보자를 위한 “온습도 센서 DHT11 측정 결과의 FND(Finite Numeric Display) 7 세그먼트 디스플레이” (0) | 2017.04.01 |
아두이노 초보자를 위한 “아두이노 코딩에 의한 배터리 전압 정밀 측정”(업데이트) (0) | 2017.03.29 |