본문 바로가기
Hardware/MCU(Arduino,ESP8266)

아두이노 + 자외선(UV) 센서 모듈 사용법

by lovey25 2020. 5. 2.

아두이노를 이용해서 자외선 센서 모듈을 사용하는 방법과 자외선을 측정해본 결과입니다.

준비물

  • 아두이노(나노를 사용했어요.)
  • 자외선 센서 모듈
  • 점프 케이블

자외선 센서 모듈

자외선 센서

약 200~370nm 파장 범위의 빛의 강도를 측정하는 아날로그 센서입니다. 자외선의 강도를 출력 전압으로 읽어올 수 있으며 출력전압이 자외선 지수에 맞도록 캘리브레이션이 되어 있어서 출력전압에 10을 곱해주면 그 값이 자외선지수가 된다고 합니다. 사용도 간편하고 반응 속도도 빠르며 전력소모도 적은 편리한 센서 모듈입니다.

사양 (Specification)

  • 작동 전압 : DC 3.3V ~ 5V
  • 출력 전압 : DC 0~1V
  • 시험 정확도 : ±1UV INDEX
  • 전류 : 0.06mA,최대 0.1mA
  • 응답 파장 : 200nm~370nm
  • 응답 시간 : 0.5초 미만
  • 작동 온도 : -20도~85도
  • 크기 : 19.8x15mm

Datasheet

Ultravoilet(UV) Light Radiation Sensor [4486] _ Sunrom Electronics_Technologies.pdf
0.42MB
UVsensor_GUVA-S12SD.pdf
0.15MB

Hardware (회로구성)

연결은 간단합니다. 그라운드 연결해주고 VCC는 아두이노의 5V 혹은 3.3V 중 아무거나 연결해주면 되고 센서의 Out 단자를 아두이노의 아날로그 단자 아무곳이나 연결해주면 됩니다. 전 A1단자 사용했습니다.

Software (아두이노 펌웨어 코딩)

코드의 핵심은 analogRead()함수를 이용해서 아날로그 단자에 걸리는 전압값을 읽어오는 것입니다.

/*
 Name:		UV_measuring.ino
 Created:	2019-04-05 오전 10:45:05
 Author:	everyX
  UV센서가 측정한 자외선 강도를 아두이노 아날로그 포트로 읽어서 시리얼모니터로 확인
*/

void setup() {
	Serial.begin(9600);		// 시리얼 포트 초기화
}

void loop() {
	uint16_t rawVal;                    // 정수변수 선언 (범위: 0~65535)
	rawVal = analogRead(1);             // A1 포트값을 0~1023사이의 값으로 데이터 수집
	float vVal = rawVal * 5 / 1023.0;   // 전압값으로 변환
	Serial.println("UV detecting...");
	Serial.print("Raw Value(0-1023) : ");
	Serial.print(rawVal);               // 측정값 시리얼 모니터로 출력
	Serial.print(" = ");
	Serial.print(vVal,3);               // 변환된 전압값을 소수점 3자리까지 출력
	Serial.println("[V]");
	Serial.print("UV Index(0 - 10) : ");
	Serial.println(vVal * 10,1);        // 전압값 x10으로 UVI 변환값 출력
	delay(500);                         // 0.5초간 대기
}

아두이노의 아날로그 단자에 걸리는 전압은 0~5V까지를 10bit 해상도로 분해하여주기 때문에 analogRead()함수의 반환값은 0~1023사이의 숫자료 표현이 됩니다. 그래서 0이면 0V 1023이면 5V라는 의미가 됩니다.

따라서 읽어온 숫자를 전압으로 변환해서 실수변수인 "vVal"에 저장하는 과정을 추가했습니다. 그리고 Datasheet에서 출력되는 전압은 자외선 지수의 10%값으로 캘리브레이션 되어 있다고 했기 때문에 마지막에 출력전압에 10을 곱해서 자외선 지수를 한번더 표시하도록 하였습니다.

결과

오늘은 구름이 가득낀 날씨여서 자외선이 많지 않은지 측정값이 거의 없어서 LED스탠트를 이용해서 테스트를 해 봤습니다.

센서를 LED에 바짝 가져다 대면 약하긴 하지만 자외선이 소량 측정이 됩니다.

측정된 raw값이 20이고 이값을 전압으로 환산하면 약 0.098V라고 합니다. 매우 약하지만 자외선 지수로 1에 근접한 자외선이 측정이 되네요.

실제 센서에서 나오는 전압을 측정해보면 0.091V 가량으로 비슷하긴 하지만 약간 차이는 있네요. 나중에 해가 쨍쨍한날 밖에 나가서 측정해보고 기상청의 자외선 지수 발표수치와도 비교해보면 재미있을것 같네요.

 

끝!

728x90

댓글0