본문 바로가기
카테고리 없음

아두이노(Arduino) 아날로그 입력과 출력(Part2. 조도센서를 이용해 Auto Light 만들기)

by 드린이 2023. 2. 20.

안녕하세요!! 드린이입니다 ::))

 

지난 포스팅을 통해서 아두이노(Arduino)의 아날로그 출력을 이용하여 부저(스피커) 예제를 실습하고 부저와 초음파 센서의 결합으로 진정한 후방감지기를 만들어 보았습니다. 오늘은 CDS 센서를 이용한 예제를 알아보고 이후에 CDS 센서와 LED의 결합으로 Auto Light를 기능을 구현해 보도록 하겠습니다.

 

CDS 센서는?

일반적인 CDS 센서

CDS 센서의 또 다른 이름은 포토레지스터(Photoresistor)입니다. CDS 센서는 센서에서 받아들이는 빛의 양을 측정하는 센서로 즉 조도 센서입니다. 센서에서 받아들이는 빛에 따라 내부 저항값이 변하며, 밝을 경우 내부 저항값이 감소하고 어두울 경우 내부 저항값이 증가하는 특성을 가지게 됩니다.

CDS의 특성

또 CDS 센서는 저항과 마찬가지로 극성이 없는 무극성 부품이다. 일반적으로 저항 1개와 직렬로 연결하여 회로를 구성한다.

조도센서(CDS)의 일반적인 회로 연결

 

CDS 센서를 이용하여 빛의 양을 측정하기 위해 아래의 그림과 같이 CDS 센서와 저항을 UNO 보드에 연결하고 아래의 코드를 입력합니다.

 

CDS 연결 회로

UNO보드와 CDS의 연결도

CDS 연결 소드코드


int
cds = 0;            // 변수 csd를 선언하고 0을 대입

void setup() {
  Serial.begin(9600);     // 시리얼 통신을 시작 (통신속도는 9600)
}

void loop() {
  cds = analogRead(A0);    // 변수 cds에 아날로그 A0에 입력되는 신호를 대입
  Serial.println(cds);    // 시리얼 모니터에 변수 cds 출력
  delay(100);              // 0.1초 대기
}

코드 입력을 완료하고 UNO 보드에 업로드 하면, 시리얼 모니터를 통하여 검출된 빛의 양이 나오는 것을 확인할 수 있습니다.


다음은 CDS 센서와 LED를 이용하여 빛의 밝기에 따라서 자동으로 LED가 켜지고, 꺼지는 Auto Light 기능을 구현해 보겠습니다. Auto Light 기능 구현을 위해 아래의 그림과 같이 CDS 센서와 저항 그리고 LED를 UNO 보드에 연결하고 아래의 코드를 입력합니다.

 

Auto Light 연결도

Auto Light 연결도


Auto Light  소스코드


int
cds = 0;            // 변수 csd를 선언하고 0을 대입

void setup() {
  Serial.begin(9600);     // 시리얼 통신을 시작 (통신속도는 9600)
  pinMode(2,OUTPUT);
}

void loop() {
  cds = analogRead(A0);    // 변수 cds에 아날로그 A0에 입력되는 신호를 대입
  Serial.println(cds);    // 시리얼 모니터에 변수 cds 출력
  delay(100);

  if(cds < 400){
    digitalWrite(2,HIGH);
  }
  else{
    digitalWrite(2,LOW);
  }
}


코드 입력을 완료하고 UNO 보드에 업로드 하면, CDS 센서를 손으로 가려 CDS 센서로 유입되는 빛의 양을 줄이면 자동으로 LED의 불빛이 켜지고, 손을 치워 CDS 센서로 유입되는 빛의 양을 증가시키면 자동으로 LED의 불빛이 꺼지는 모습을 확인할 수 있습니다.


동작이 자연스럽지 못하거나 잘 안되는 경우에는 ‘if(cds < 400)’에서 400의 숫자를 올리거나 내려서 다시 해보면 조금 더 자연스러운 동작이 가능합니다. CDS 센서는 자동차의 오토 라이트 기능과 가로등의 자동 전멸기 등 다양한 분야에서 사용됩니다.

CDS센서의 구조와 사용


오늘은 아두이노(Arduino)의 CDS 센서와 LED를 이용하여 Auto Light 기능을 만드는 예제에 대해서 알아보았습니다. 다음 포스팅에서는 더 쉽고 간단한 예제를 가지고 돌아오도록 하겠습니다.


감사합니다::))