본문 바로가기

Embedded System/Arduino Board

[Arduino] 아두이노 포토레지스터 ( CDS ) 사용하기 (11)

반응형

 


 

안녕하세요.

이번 포스트에서는 아두이노에서 밝기에 대한 정보를 입력 받아 밝기를 조건으로 LED를 켜보는 내용에 대해 알아보겠습니다.


포토레지스터(Photoresistor)는 빛의 강도에 따라 저항값이 변하는 빛 감지 센서입니다. 주로 조도(밝기)를 측정하거나 빛의 존재 여부를 감지하는 데 사용됩니다. 포토레지스터는 저항값이 빛의 강도에 반비례하여 작동합니다. 즉, 빛이 강해지면 저항값이 낮아지고, 빛이 약해지면 저항값이 높아집니다.

※1.  포토레지스터의 기본 원리

포토레지스터는 빛을 감지하는 재료로 구성되어 있으며, 이 재료는 일반적으로 **황화카드뮴(CdS)**을 사용합니다. CdS는 반도체 특성을 가지며, 빛을 받으면 전도도가 증가합니다. 이로 인해 저항값이 낮아집니다.

주요 특성

  1. 감도: 포토레지스터의 저항값은 주로 가시광선(약 400~700nm)에 반응합니다.
  2. 응답 시간: 포토레지스터는 빛의 변화에 대해 빠르게 반응하지만, 몇 밀리초의 지연이 있을 수 있습니다.
  3. 비선형성: 포토레지스터의 저항값과 빛의 강도 간의 관계는 비선형적입니다. 따라서 정확한 조도 측정에는 보정이 필요할 수 있습니다.
  4. 온도 의존성: 포토레지스터의 저항값은 온도 변화에 따라 달라질 수 있습니다.

 

※2. Wiring (배선 연결)

포토레지스터를 사용하여 빛의 강도를 측정하려면, 간단한 전압 분배 회로를 구성할 수 있습니다. 일반적으로 아날로그 입력 핀을 사용하여 마이크로컨트롤러(예: Arduino)와 연결합니다.

기본 회로

  1. 포토레지스터: 한 쪽 끝은 전원(Vcc)에 연결됩니다.
  2. 저항: 포토레지스터의 다른 쪽 끝과 접지(GND) 사이에 연결됩니다.
  3. 아날로그 입력: 포토레지스터와 저항 사이의 접점에서 전압을 측정하여 아날로그 입력 핀에 연결합니다.

CDS를 사용하여 밝기에 따라서 LED가 On/Off되는 동작을 구현하겠습니다.

 

 

 

※3. 소스코드 및 동작

1. 소스코드

CDS를 통해 LED를 제어하는 코드를 실행해 보겠습니다. (소스코드는 첨부파일 제공해 드리겠습니다.)

11_CDS.ino
0.00MB

const int cdsPin = A0;  // CDS 센서가 연결된 아날로그 핀
const int ledPin = 13;  // LED가 연결된 디지털 핀

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int cdsValue = analogRead(cdsPin);  // CDS 센서에서 값 읽기
  Serial.println(cdsValue);           // 시리얼 모니터에 CDS 값 출력

  // CDS 값이 일정 임계값(예: 500) 이하인 경우 LED 켜기
  if (cdsValue <= 50) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }

  delay(1000);  // 1초간 대기
}

 

 

2. 하드웨어 연결 및 동작 확인

CDS를 강제로 가져서 밝기를 어둡게 할때 LED가 켜짐을 확인할 수 있습니다.

 

 

이상으로 아두이노에서 CDS를 다루는 방법에 대한 설명을 마치겠습니다.

감사합니다.

 

반응형