본문 바로가기

Information/MICOM & SBC

아두이노(Arduino) CDS(조도)센서, 빛을 측정하자

이 글의 원문은 : http://tindevil.com/site/post/3788  입니다. 관련 파일이 있는경우에는 원문을 확인해주세요.


아두이노에 사용해본 센서를 포스팅 해봅니다.
CDS센서이구요. (일명 단순 조도센서입니다.) LUX단위로 빛의양을 측정하고 뭐~ 그런 거창한건 아니구요
그냥 밝다 어둡다개념을 구분하는 정도로 쓴다고 생각하시면 될 것 같습니다.

upload file

센서는 사진과 같이 단순하게 걍 센서에 저항달리고 끝입니다. (--)
이전 포스팅에서 했던 Nokia 5110 LCD 를 이용해서 출력해볼까 해요~ Serial monitor 를 이용해도되지만~
ㅎㅎ 그냥입니다...  (겨울만 되면 손이트고 피가 나네요 ㅠㅠ)

upload file

사실 이건 포스팅하고 할 것이 없는거에요;; 왜냐면 CDS센서가 아날로그 출력이기 때문이에요~
즉~ 아날로그 값만 보면 끝이라는거죠. 그래도 뭐! 궁금하신분이 계실까봐서 이러는 거에요~
연결은 위 사진처럼 합니다. 5V를 쓴다고 나와있네요.. 
A0핀에 데이터선을 연결했구요. 소스는

int CDSValue = analogRead(A0);


위 와 같이 기술하면 CDSvalue 에 해당 값이 들어오게됩니다 (__;;)
값은 10비트로 분해하면 0~1023까지의 같이 오구요. 밝을수록 값이 낮아집니다.
이걸 이용해서 Nokia 5110 LCD의  Back Light 값을 변경해보았어요 ^^ 어두우면(<=900) 불이 켜지도록..

//#include "font_6x82.h" //라이브러리참조하면 이 줄이 추가되는데 주석처리해줍니다. (안하면 오류남)
#include <Nokia5110.h>
#include "arduino.h"

//라이브러리로 만들어놔서리 클래스를 사용합니다.
Nokia5110 Nokia; //for nokia 5110 lcd display

void setup()
{
//백라이트를 켜기위해서 출력모드로 설정하고 바로 출력합니다.
pinMode(2,OUTPUT); //사진상에보듯이 2번핀에 백라이트를 연결했습니다.
digitalWrite(2,HIGH); //백라이트 ON

//set digital pin
Nokia.LCD5110_SCK_PIN = 7; //그림에서처럼 핀을 맞춥니다.
Nokia.LCD5110_MO_PIN = 6;
Nokia.LCD5110_DC_PIN = 5;
Nokia.LCD5110_RST_PIN = 4;
Nokia.LCD5110_CS_PIN = 3;
Nokia.LCD5110_init();
Nokia.LCD5110_clear(); //이건 화면을 지우는 명령어임

}

void loop()
{
int CDSValue = analogRead(A0);
Nokia.set_XY(1,5); // 위치설정
Nokia.LCD5110_Write_Dec(CDSValue); //CDS value

if(CDSValue < 900) {
digitalWrite(2,LOW); //백라이트 OFF
} else {
digitalWrite(2,HIGH); //백라이트 ON
}

Nokia.set_XY(1,1); //표시할위치를 설정
Nokia.LCD5110_write_string("tindevil.com"); //문자 출력
Nokia.set_XY(1,3); //위치설정
Nokia.LCD5110_write_string("Hello World"); //문자 출력
Nokia.set_XY(8,5); // 위치설정
Nokia.LCD5110_Write_Dec(millis()); //작동된 milli second 출력
delay(1000); //그냥 지연 ㅋㅋ
}


뭐;;보시면 아시겠지만 900 미만이면 끄고~ 이상이면 켜고~ 하는 단순한 코드가 그냥 들어가 있습니다. -_-;;

아~ 싱겁네요 이 센서 ㅎ_ㅎ;;;