아두이노

[아두이노]조도센서를 이용한 회로구성과 조도값으로 변환

알까 2022. 10. 21. 16:35

안녕하세요.

 

이전에 온습도 측정센서를 이용해 아두이노 회로를 구성하고 수식을 계산하는 과정을 진행했습니다.

 

이번에는 조도센서를 이용하여 아두이노를 구성하고 그 값을 휴대폰 조도계의 값과 비교하여 수학적 모델링을 제작하고자 합니다.


1. 아두이노 회로구성

 

회로의 구성은 매우 간단합니다.

아두이노 회로구성

 

보기 편하도록 색상을 각각 다르게 구성하였습니다.

 

5v가 들어가는 선은 붉은 색

gnd가 들어가는 선은 검은색

a0가 들어가는 선은 녹색으로 표시하였습니다.

 

참고로 제가 사용한 저항은 10kΩ입니다.

 


2. 코드작성

 

제가 원하는 값은 "조도인지를 통한 결과값 확보"입니다.

 

그 값의 숫자보다도 조도에 따른 특정 변화가 나타나는 것이 중요합니다.

 

조도센서

이를 통한 코딩은 다음과 같습니다.

void setup() {
Serial.begin(9600); //서버와 아두이노와의 통신 값 지정
}

void loop() {
int cds = analogRead(A1); //아날로그 값을 읽어 cds에 저장
Serial.println(cds); //입력한 cds값을 출력
delay(200);
}

매우 간단합니다.

 

이 값을 입력한 후 결과를 출력하는 다음과 같은 결과가 출력됩니다.

 

시리얼 모니터 출력값
시리얼 플로터 결과값

 

이러한 결과값이 출력됩니다. 현재 결과값의 평균값은 약 162정도 되겠군요.


3. 휴대폰으로 조도값 측정

 

어플을 이용해 조도값 측정

 

앞서 조도센서를 통해 구한 결과값과 핸드폰 어플로 측정한 조도값을 비교해봅니다.

 

이렇게 비교한 값을 수식으로 정리하였고, 그 결과를 그래프로 그려보면 다음과 같습니다.

 

조도센서로 구한 결과값에 대한 휴대폰 조도값

 

여기서 x축은 조도센서를 통해 구한 결과값이고 y축은 휴대폰으로 구한 조도값입니다.

 

그 결과값들을 근사해 출력한 결과 다음과 같은 5차식이 나왔습니다.

 

앞으로 이 수식을 이용해서 아두이노 조도센서를 통한 결과값을 조도값으로 변환할 수 있습니다.