' + re_word; if(data.autoList[i].PROD_NAME != ''){ html += ' '+data.autoList[i].PROD_NAME+''; } html += '
' html += '' + comma(Math.floor(data.autoList[i].PROD_PRICES)) + ' 원'; html += '' + re_word + '
'; html += '' + comma(Math.floor(data.resultList[i].prod_priceS)) + ' 원'; html += ''+data.catgStep1List[i].split('@@')[1]+'
'; html += '안녕하세요, 나도메이커입니다.
'광센서'는 스마트 조명부터 스마트팜까지 활용 범위가 매우 넓습니다. 오늘은 아두이노와 라즈베리파이, 젯슨 사용자를 위해 광센서의 종류별 특징과 실무적인 연결 팁을 알려드리겠습니다.
![]()
■ 목차
광센서는 빛을 감지하는 원리에 따라 선택지가 나뉩니다. 목적에 맞는 센서를 고르는 것이 프로젝트 완성도를 결정짓는 첫걸음입니다.
▶ CDS(조도센서)
빛이 밝아지면 저항값이 낮아지는 소자입니다. 저렴하고 제어가 단순해 아두이노 입문용 조명 프로젝트에 제격입니다.
▶ 포토 다이오드
빛을 전류로 변환하며 반응 속도가 매우 빠릅니다. 로봇의 라인 트레이싱이나 고속 광통신에 적합합니다.
▶ 디지털 조도센서(BH1750)
I2C 통신으로 정확한 럭스(Lux)값을 출력합니다. 라즈베리파이나 젯슨처럼 정밀한 데이터 수집이 필요한 환경에서 필수적으로 활용됩니다.
CDS는 저항 변화를 감지해야 하므로 전압 분배 회로 구성이 필수입니다.
![]()
▶ 회로 연결
[5V 전원] → [CDS] → (아두이노 A0 핀 연결) → [10kΩ 저항] → [GND] 순으로 직렬 연결하세요.
▶ 저항 선정
보통 10k옴 고정 저항을 풀다운 저항으로 사용합니다. 센서 민감도를 높이고 싶다면 저항값을 4.7k옴이나 22k옴으로 변경해 감지 범위를 조정할 수 있습니다.
▶ 데이터 확인
analogRead(A0) 함수로 0~1023 값을 읽은 뒤, map() 함수를 통해 PWM값(0~255)으로 변환하면 LED 밝기를 손쉽게 제어할 수 있습니다.
라즈베리파이와 젯슨은 아날로그 입력(ADC) 핀이 없으므로 CDS 센서를 직접 연결하기 어렵습니다. 아래 방법으로 대응하세요.
![]()
▶ 디지털 센서 활용
BH1750과 같은 I2C 방식 센서를 사용하면 점퍼 케이블 4개(VCC, GND, SDA, SCL)만 연결해도 라이브러리를 통해 즉시 정밀한 조도 값을 읽을 수 있습니다.
▶ 카메라 활용
젯슨 보드라면 카메라 모듈의 영상 밝기를 계산해 광센서처럼 활용하는 고도화된 방식도 가능합니다. 단순 조도 측정을 넘어 영상 기반의 지능형 조명 제어로 확장할 수 있습니다.
데이터가 튀는 현상(Hunting)은 프로젝트의 신뢰도를 떨어뜨립니다. 다음 두 가지 방법으로 해결하세요.
![]()
▶ 첫째, 이동 평균 필터(Moving Average Filter)
한 번의 값을 믿지 말고, 10번 정도 연속으로 측정해 평균을 내세요. 데이터가 한결 부드러워집니다.
▶ 둘째, 하드웨어 바이패스 커패시터
센서의 전원 단자와 GND 사이에 0.1μF 세라믹 커패시터를 배치하세요. 미세한 전원 노이즈를 걸러주어 센서 값을 훨씬 안정적으로 잡아줍니다.
광센서를 쓸 때 가장 중요한 것이 '기준값 잡기'입니다.
![]()
고정된 숫자를 문턱값으로 쓰면 설치 환경이 바뀔 때마다 동작이 달라져 신뢰성이 크게 떨어집니다. 시스템이 켜지면 3초 정도 주변 빛을 먼저 측정해 평균치를 계산하고, 그 값을 기준으로 문턱값을 자동으로 설정하도록 코드를 구성해보세요. 이 방법 하나만으로도 단순한 실험 장치에서 벗어나 실생활 환경에서 안정적으로 동작하는 제대로 된 기기를 만들 수 있습니다.

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