본문으로 바로가기

  아두이노(Arduino) 기초 센서 1편 - CDS 조도센서  


애드라이프의 아두이노 모든 포스팅 리스트를 보고 싶으신 분은 공지 읽어주세요.




안녕하세요. 애드라이프 입니다.

드디어!!! 센서를 다루는 편으로 접어들었네요.

센서는 정말 무궁무진하게 많은 종류가 있습니다. 저도 아직 모르는 센서들이 수도 없이 많죠.

센서는 지금도 여러방면으로 개발되고 있고 사용되고 있을 테니까요.


이번에는 조도센서를 사용해볼 예정입니다.

조도센서는 무엇일까요?

간단하게 설명 하자면 빛의 밝기를 감지하는 센서라고 생각하시면 될껍니다.


빛의 세기가 밝을 수록 CDS의 저항이 작아지고 빛의 세기가 약할 수록 저항이 커지는 기본이론을 바탕으로

만들어진 모듈을 가지고 이번 포스팅을 진행 하겠습니다.


아두이노 조도센서 모듈

제가 사용하는 조도센서모듈입니다.▲



CDS와 조금한 칩저항이 보이시나요?

가변저항의 원리와 같이 칩저항과 CDS의 저항의 전압 분배값을 출력해주는 센서입니다.

이 모듈을 사용하여 회로도를 작성해 보았습니다. ▼


아두이노 Fritzing을 이용한 조도센서 제어 회로

계속 TINKERCAD에 없다고 회로도를 안그리기 뭐해서..찾아보다 결국 Fritzing으로 그리게 되었네요.

CDS모듈과 그 값을 이용해서 뭘 응용해 볼까 하다가 가로등이 생각나더군요.

그래서 어두면 켜지고 밝으면 꺼지는 가로등을 대신해서 LED를 하나 달아 두었습니다.

이전 포스팅 까지는 기본편과 응용편이 나눠져 있었는데요.

센서편 부터는 간단한 응용은 한꺼번에 다루도록하겠습니다.


아 그리고 이번에 새로 사용하게 된 Fritzing에 관해서도 조만간 포스팅 하도록 하겠습니다.




그럼 바로 프로그램을 살펴볼까요?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
int Cds = A0;                                    //cds의 out을 아날로그 포트 A0에 연결
int led = 2;                                    //cds의 밝기에 따라 ON/OFF해줄 led를 디지털 포트 2번에 연결해줍니다.
 
void setup() {
    Serial.begin(9600);                            //cds값을 출력해줄 통신속도를 9600으로 설정합니다.
    pinMode(2, OUTPUT);                            //LED를 제어할 디지털핀 2번을 OUT으로 설정합니다.
}
void loop() {
    int cdsValue = analogRead(Cds);                //cds의 값을 cdsValue함수에 저장합니다.
 
    Serial.print("cds =  ");                    //아두이노IDE의 시리얼 모니터에 해당문자를 출력해줍니다.
    Serial.println(cdsValue);                    //아두이노IDE의 시리얼 모니터에 해당값을 출력하고 줄바꿈 해줍니다.
    if (cdsValue > 500) {                        //cds의 값이 500보다  클경우 실행되는 if문입니다.
        digitalWrite(led, HIGH);                //디지털 포트 2번에 연결된 LED를 켜줍니다.
        Serial.println("LED ON (cds > 500)");    //아두이노IDE의 시리얼 모니터에 해당문자를 출력해줍니다.
    }
    else {                                        //cds의 값이 500보다  클경우 실행되는 else문입니다.                
        digitalWrite(led, LOW);                    //디지털 포트 2번에 연결된 LED를 꺼줍니다.
        Serial.println("LED OFF (cds < 500)");    //아두이노IDE의 시리얼 모니터에 해당문자를 출력해줍니다.
    }
    delay(200);                                    //200ms동안 기다립니다.
}
cs

이번엔 주석이 매우 자세하죠? 프로그램에 대한 설명이 좀 부족할 수도 있겠다 싶어서 보충해 봤습니다.

테스트하는 저희 집 LED등에 밝기를 CDS를 통해 ADC값으로 보니 200~300정도의 값이 들어오던군요.

그리고 CDS모듈을 그냥 뒤집기만 해도 800~900의 값이 나와서 기준값을 프로그램에서 500으로 했습니다.


여러분들도 주변의 환경을 고려해서 기준값을 선정해주세요.

프로그램 업로드와 기본적인 아두이노IDE 세팅에 대해서는 공지글의 개발환경 구축을 참고하세요.





아두이노 시리얼 모니터에 조도센서값 출력

아두이노 IDE 시리얼 모니터의 결과▲ 


지금까지 아두이노(Arduino) 기초 센서 1편 - CDS 조도센서에 관한 포스팅이였습니다.

마지막으로 동영상으로 결과 확인 하시면서 이번 포스팅을 끝내도록 하겠습니다.

티비소리가 들리니 소리는 음소거 상태로 화면만 보는 것을 추천드립니다.

by 애드라이프