[아두이노] CdS 조도 센서의 ‘비선형성’과 감도 설계, 그리고 선형화까지
조도 센서를 쓰다 보면 이런 느낌을 받습니다.
“어느 구간은 잘 반응하는데, 어느 구간은 거의 안 변한다…”
이건 센서 문제가 아니라,
👉 전압 분배 회로 자체가 ‘비선형’이기 때문입니다.
1. 기본 원리 (수식 깨짐 방지 버전)
CdS 센서는 빛에 따라 저항이 변합니다.
- 밝을 때 → 저항 ↓
- 어두울 때 → 저항 ↑
아두이노는 전압만 읽기 때문에 전압 분배 회로를 사용합니다.
전압 분배 공식
Vout = Vin × (Rsensor / (Rfixed + Rsensor))2. 핵심: 이 식은 비선형이다
이 식은 직선이 아니라 “곡선”입니다.
즉,
- 입력: 센서 저항
- 출력: 전압
👉 둘 사이 관계는 비선형
그래서 나타나는 현상:
- 초반 → 민감 (전압 많이 변함)
- 후반 → 둔감 (전압 거의 안 변함)
3. 감도의 정체
감도는 단순 전압 차이가 아니라:
👉 저항 변화 대비 전압 변화량
즉,
감도 ≈ ΔV / ΔR4. 가장 중요한 포인트
Rsensor ≈ Rfixed 일 때 감도 최대이 구간이 가장 가파른 영역입니다.
5. 왜 저항 선택이 중요할까
고정 저항은 단순 부품이 아닙니다.
👉 “어디 구간을 민감하게 볼지 결정하는 장치”
Case 1: Rfixed = 1kΩ
- 밝은 영역 → 감도 좋음
- 어두운 영역 → 거의 변화 없음
이유:
Rsensor >> Rfixed → Vout ≈ Vin👉 전압이 5V 근처에 붙어버림
Case 2: Rfixed = 10kΩ
- 전체 영역에서 고르게 변화
👉 가장 일반적인 선택
6. 감도 분포 개념
감도는 일정하지 않습니다.
👉 특정 구간에서만 높고, 나머지는 낮습니다.
그래서:
고정 저항을 바꾸는 것 = 감도 위치를 이동시키는 것
7. 그럼 선형으로 만들 수 있을까?
가능합니다. 3가지 방법이 있습니다.
8. 방법 1: 소프트웨어 선형화 (추천)
센서 값 → 보정해서 사용
예시:
int raw = analogRead(A0);
// 간단한 로그 보정 예시
float corrected = log(raw + 1);또는:
- Lookup Table (LUT)
- 보간(interpolation)
👉 가장 현실적이고 많이 사용됨
9. 방법 2: 아날로그 회로
- Op-Amp 사용
- 로그 증폭기
👉 하드웨어로 선형화
10. 방법 3: 센서 교체
CdS 대신 디지털 센서 사용
- BH1750
- TSL2561
👉 내부에서 이미 선형화 완료
11. 엔지니어 관점
이걸 이렇게 보면 된다:
전압 분배 회로 = 비선형 확대기
고정 저항 = 확대 위치 선택기
12. 한 줄 요약
센서는 원래 비선형이고,
고정 저항은 감도를 어디에 집중할지 정하는 장치다.
마무리
센서가 둔한 게 아니다.
👉 우리가 잘못 보고 있는 것
이걸 이해하면:
- 센서를 “사용”하는 수준에서
👉 “설계”하는 수준으로 올라간다.
댓글
댓글 쓰기