Quick

    광센서 종류별 특징과 아두이노 연결법

 

목록으로

안녕하세요, 나도메이커입니다.

광센서는 스마트 조명부터 스마트팜까지 활용 범위가 매우 넓은 기초 전자부품입니다. 이 글에서는 아두이노, 라즈베리파이, 젯슨 사용자를 위해 광센서의 종류별 특징과 실무적인 연결 팁을 체계적으로 정리해 드립니다.

아두이노와 라즈베리파이에서 활용 가능한 다양한 광센서 종류 비교

▶ 1. 광센서, 프로젝트 목적에 맞춰 고르자

광센서는 빛을 감지하는 원리에 따라 선택지가 나뉩니다. 프로젝트의 정밀도, 처리 속도, 사용 보드에 따라 적합한 센서가 달라지므로 아래 특징을 먼저 파악하는 것이 중요합니다.

▶?CDS (조도센서)

빛이 밝아지면 저항값이 낮아지는 소자입니다. 가격이 저렴하고 제어 방식이 단순해 아두이노 입문용 조명 프로젝트에 제격입니다. 다만 아날로그 값을 출력하므로 전압 분배 회로 구성이 필요합니다.

▶?포토 다이오드

빛을 전류로 변환하며 반응 속도가 매우 빠릅니다. 로봇의 라인 트레이싱이나 고속 광통신처럼 빠른 응답이 필요한 환경에 적합합니다.

▶?디지털 조도센서 (BH1750)

I2C 통신으로 정확한 럭스(Lux) 값을 디지털로 출력합니다. 라즈베리파이나 젯슨처럼 정밀한 데이터 수집이 필요한 환경에서는 BH1750 사용이 사실상 필수입니다.

▶ 2. 아두이노에서 CDS 센서 제대로 쓰는 법

CDS는 저항 변화를 감지해야 하므로 전압 분배 회로 구성이 필수입니다. 회로를 올바르게 구성하지 않으면 정확한 값을 읽을 수 없습니다.

아두이노 CDS 조도센서 전압 분배 회로 연결 방법

▶ 회로 연결

[5V 전원] → [CDS] → (아두이노 A0 핀 연결) → [10kΩ 저항] → [GND] 순으로 직렬 연결하세요.

▶ 저항 선정

보통 10kΩ 고정 저항을 풀다운 저항으로 사용합니다. 센서 민감도를 높이고 싶다면 저항값을 4.7kΩ이나 22kΩ으로 변경해 감지 범위를 조정할 수 있습니다.

▶ 데이터 확인 및 LED 제어

analogRead(A0) 함수로 0~1023 사이의 값을 읽은 뒤, map() 함수를 통해 PWM 값(0~255)으로 변환하면 주변 밝기에 반응하는 LED 밝기 자동 제어 회로를 완성할 수 있습니다.

▶ 3. 라즈베리파이와 젯슨 활용 전략

라즈베리파이와 젯슨은 아날로그 입력(ADC) 핀이 없으므로 CDS를 직접 연결할 수 없습니다. 이 경우 아래 두 가지 방법 중 프로젝트에 적합한 방식을 선택하세요.

라즈베리파이 BH1750 I2C 디지털 조도센서 연결 구성

▶ 디지털 센서 활용 (BH1750)

BH1750과 같은 I2C 방식 센서를 사용하세요. 점퍼 케이블 4개(VCC, GND, SDA, SCL)만 연결하면 전용 라이브러리를 통해 즉시 정밀한 조도 값을 읽을 수 있어 스마트팜, 환경 모니터링 프로젝트에 바로 적용 가능합니다.

▶ 카메라 모듈 활용 (젯슨 전용)

젯슨 보드라면 카메라 모듈의 영상 밝기를 계산해 광센서처럼 활용하는 고도화된 방식도 가능합니다. 별도의 센서 없이 영상 데이터에서 조도 정보를 추출할 수 있어 복합 프로젝트에 유리합니다.

▶ 4. 센서 노이즈 잡는 2가지 방법

데이터가 튀는 현상(Hunting)은 프로젝트의 신뢰도를 떨어뜨립니다. 아래 두 가지 방법을 함께 적용하면 안정적인 광센서 데이터를 확보할 수 있습니다.

이동 평균 필터와 바이패스 커패시터를 이용한 광센서 노이즈 제거

▶ 첫 번째. 이동 평균 필터 (Moving Average Filter)

단 한 번의 측정값을 그대로 사용하지 말고, 10회 연속으로 측정한 뒤 평균을 내세요. 아래 예시 코드를 참고하면 바로 적용할 수 있습니다.


// 이동 평균 필터 예시 코드
int total = 0;
for(int i=0; i<10; i++) {
total += analogRead(A0);
delay(10);
}
int averageValue = total / 10;

▶ 두 번째. 하드웨어 바이패스 커패시터

센서의 전원 단자와 GND 사이에 0.1μF 세라믹 커패시터를 배치하세요. 미세한 전원 노이즈를 걸러주어 센서 측정값을 훨씬 안정적으로 유지해 줍니다.

광센서 기준값 자동 설정 코드 예시 및 실환경 적용

◆ 실전 팁: 기준값 자동 설정

광센서를 실제 환경에서 사용할 때 가장 중요한 포인트는 '기준값(Threshold) 자동 설정'입니다. 고정된 숫자를 코드에 박아두면 환경 변화에 전혀 대응하지 못합니다. 시스템이 켜지면 3초 정도 주변 빛을 먼저 측정해 평균치를 낸 뒤, 그 값을 기준으로 문턱값을 자동으로 설정하도록 코드를 구성해 보세요. 단순한 실험용 회로에서 벗어나 실생활 환경에서 안정적으로 동작하는 완성도 높은 기기를 만들 수 있습니다.

이상으로 광센서의 종류 선택부터 아두이노 회로 구성, 라즈베리파이 연결 전략, 노이즈 제거 기법까지 실무에 바로 적용 가능한 핵심 내용을 정리했습니다. 다음에도 유익한 내용으로 찾아오겠습니다.

▼ 해당 프로젝트에서 나온 상품은 아래에서 확인 가능합니다 ▼

실습준비물

연관 컨텐츠

결제 및 주문

공지사항 목록