' + 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 += '안녕하세요, 나도메이커입니다.
광센서는 스마트 조명부터 스마트팜까지 활용 범위가 매우 넓은 기초 전자부품입니다. 이 글에서는 아두이노, 라즈베리파이, 젯슨 사용자를 위해 광센서의 종류별 특징과 실무적인 연결 팁을 체계적으로 정리해 드립니다.
![]()
광센서는 빛을 감지하는 원리에 따라 선택지가 나뉩니다. 프로젝트의 정밀도, 처리 속도, 사용 보드에 따라 적합한 센서가 달라지므로 아래 특징을 먼저 파악하는 것이 중요합니다.
빛이 밝아지면 저항값이 낮아지는 소자입니다. 가격이 저렴하고 제어 방식이 단순해 아두이노 입문용 조명 프로젝트에 제격입니다. 다만 아날로그 값을 출력하므로 전압 분배 회로 구성이 필요합니다.
빛을 전류로 변환하며 반응 속도가 매우 빠릅니다. 로봇의 라인 트레이싱이나 고속 광통신처럼 빠른 응답이 필요한 환경에 적합합니다.
I2C 통신으로 정확한 럭스(Lux) 값을 디지털로 출력합니다. 라즈베리파이나 젯슨처럼 정밀한 데이터 수집이 필요한 환경에서는 BH1750 사용이 사실상 필수입니다.
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)은 프로젝트의 신뢰도를 떨어뜨립니다. 아래 두 가지 방법을 함께 적용하면 안정적인 광센서 데이터를 확보할 수 있습니다.
![]()
단 한 번의 측정값을 그대로 사용하지 말고, 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초 정도 주변 빛을 먼저 측정해 평균치를 낸 뒤, 그 값을 기준으로 문턱값을 자동으로 설정하도록 코드를 구성해 보세요. 단순한 실험용 회로에서 벗어나 실생활 환경에서 안정적으로 동작하는 완성도 높은 기기를 만들 수 있습니다.
이상으로 광센서의 종류 선택부터 아두이노 회로 구성, 라즈베리파이 연결 전략, 노이즈 제거 기법까지 실무에 바로 적용 가능한 핵심 내용을 정리했습니다. 다음에도 유익한 내용으로 찾아오겠습니다.
▼ 해당 프로젝트에서 나온 상품은 아래에서 확인 가능합니다 ▼