[아두이노] 조도센서 사용해보기



안녕하세요 대짜이찐입니다.

이번엔 간단하게 조도센서를 제어하는 방법을 예제를 통해 배워보겠습니다.
조도 센서는 황화카드뮴(cds)을 소자로 제작하며, cds 센서라고도 합니다.
일상생활에서는 어두워질 때 밝아지는 가로등과 자동차의 헤드라이트 등에 많이 쓰입니다.

조도 센서는 극성이 없고, 빛의 양 따라 전도율이 달라집니다. 
밝을수록 전도율이 높아져 저항이 낮아지고, 어두울수록 전도율이 낮아져서 저항이 높아집니다.


핀이 2개뿐이기 때문에 센서의 값을 받기 위해서는 저항을 이용해서 전압 분배를 해줘야 합니다. 
조도 센서 내부의 저항의 변화로 인해 Vout을 통해
아두이노로 입력되는 전압은 변하게 되고 이를 아날로그 입력핀을 통해 값을 얻습니다.

아래 예제는 조도 센서와 led를 사용해서 어두워지면 led의 불이 켜지는 코드입니다.

준비물 :  아두이노 우노, 점퍼선, 브레드 보드, 조도 센서, 220Ω 저항 1개, 10kΩ 저항 1개, LED 1개

/*
조도센서 LED 예제
어두우면(아날로그값 중간 이하) led의 불이 켜지는 예제
www.devicemart.co.kr
*/

int led = 12;       // 12번핀 led를 변수 led에 대입

void setup()
{                   
 pinMode(led,OUTPUT);  // led를 출력모드로 설정
 Serial.begin(9600);  // 속도 9600으로 통신 시작
}

void loop() 
{                              
 int val= analogRead(A1);  //  A1 아날로그 값을 읽어서 val에 저장
 Serial.println(val);   // val 값을 출력

 if(val<512// 아날로그 값이 중간 이하라면 LED를 켜라
 {
  digitalWrite(led,HIGH);
 }

 else // 아날로그 값이 중간 이상이라면 LED를 꺼라
 {
  digitalWrite(led,LOW);
 }
delay(100); 
}

소스 코드 중에
-analogRead() 함수는 analogRead(pin)로 사용합니다.
입력된 핀 번호에 해당하는 핀으로부터 아날로그 신호를 0~1023의 값으로 읽어오는 함수입니다.

감사합니다.

댓글 쓰기

0 댓글