ML8511 자외선 측정 센서
       
 
이 매뉴얼은 주식회사 제이케이이엠씨(JK EMC) 에 의해서 번역, 수정, 작성 되었고 소유권 또한
주 식회사 제이케이이엠씨(JK EMC)의 것입니다. 소유권자의 허가를 받지 않고 무단으로 수정, 삭제하거나 배포 할 수 없습니다.

 

 

ML8511 UV Sensor 3.3/5V 공용 ( 자외선 센서 모듈 )


 
 




  1. ML8511 센서 소개
2. 아 두이노와 같이 사용하기
    2.1 센서 회로도및 외곽 치수
    2.2 아두이노 UNO R3 배선도
    2.3 아두이노 스케치 코드
    2.4 아두이노 스케치 코드 실행 결과

 
 ML8511 센서 소개

ML8511 센서는 자외선을 측정해주는 센서입니다.
이센서는 자외선의 광량을 측정하여 아날로그 신호로 출력합니다.
280~390nm사이의 빛을 가장 인식률이 높습니다.
연소광선과 유제광선스펙트럼으로 분류되며 측정된 값에 아날로그 전압으로 출력합니다.




Characteristic Value Unit
Supply Voltage 2.7 ~ 5 V
Supply Current
300~500 uA
Operating Temperature -20~70 °C
Wavelength of maximum sensitivity 365 nm




 
ML8511 회로도및 외곽치수

ML8511센서 회로도

     - ML8511 PDF 회로도 다운로드
     - ML8511 데이터시트 다운로드(http://www.jkelec.co.kr)
     - ML8511 DXF 캐드 파일 다운로드
ML8511


ML8511 센서 외곽(mm단위) 치수

      ML8511

 
 ML8511 아두이노 UNO R3 배선도

ML8511 <---> 아두이노
VCC <---> 5V, 3V
GND <---> GND
OUT <---> A0
ENABLE <---> 5V, 3V


- Fritzing 파일 다운로드


ML8511

 


 
ML8511 아두이노 스케치 코드

ML8511센서를 이용하여 자외선을 측정하여 시리얼 데이터로 출력하는 예제 이다.

아두이노 스케치 코드
     - ML8511 자외선 측정 데이터 표시 스캐치 파일 다운로드




//Hardware pin definitions
int UVOUT = A0; //Output from the sensor
int REF_3V3 = A1; //3.3V power on the Arduino board

void setup()
{
Serial.begin(9600);

pinMode(UVOUT, INPUT);
pinMode(REF_3V3, INPUT);

Serial.println("ML8511 example");
}

void loop()
{
int uvLevel = averageAnalogRead(UVOUT);
int refLevel = averageAnalogRead(REF_3V3);

//Use the 3.3V power pin as a reference to get a very accurate output value from sensor
float outputVoltage = 3.3 / refLevel * uvLevel;

float uvIntensity = mapfloat(outputVoltage, 0.99, 2.8, 0.0, 15.0); //Convert the voltage to a UV intensity level

Serial.print("output: ");
Serial.print(refLevel);

Serial.print("ML8511 output: ");
Serial.print(uvLevel);

Serial.print(" / ML8511 voltage: ");
Serial.print(outputVoltage);

Serial.print(" / UV Intensity (mW/cm^2): ");
Serial.print(uvIntensity);

Serial.println();

delay(100);
}

//Takes an average of readings on a given pin
//Returns the average
int averageAnalogRead(int pinToRead)
{
byte numberOfReadings = 8;
unsigned int runningValue = 0;

for(int x = 0 ; x < numberOfReadings ; x++)
runningValue += analogRead(pinToRead);
runningValue /= numberOfReadings;

return(runningValue);
}


float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}



 
ML8511 아두이노 스케치 코드 실행 결과

시리얼모니터

ML8511