The Grove – UV Sensor is used for detecting the intensity of incident ultraviolet(UV) radiation. The sensor is based on the GUVA-S12D which has a wide spectral range of 200nm-400nm. The module connects to a Grove Analog Connecter and outputs a voltage which varies with the UV intensity.
UV Transparent Fused Quartz Window Available
If you are putting a Grove UV sensor in a weather proof container, you should use a far-UV transparent Silica Quartz plate for the window over the sensor.
However, remember most plastics and glass are basically impervious to UV radiation (that’s why your Photogray sun glasses don’t work well in a car) so you need to use a special plastic or what I prefer, Silica Quartz. These Quartz JGS1 windows will let the UV through.
Features
- High stability
- Good Sensitivity
- Low power consumption
- Schottky type photodiode sensor
- Wide response range
- Grove Interface
Specifications
Item |
Min |
Typical |
Max |
Unit |
Operating Voltage |
3.0 |
5.0 |
5.1 |
VDC |
Current |
|
0.31 |
|
mA |
Output Voltage |
|
|
|
mV |
Response wavelength |
240 |
~ |
370 |
nm |
Working Temperature |
-30 |
~ |
85 |
℃ |
Usage
UV sensors are used in many different applications.
The UV Sensor works by measuring sunlight intensity in the UV range. In this sensor the UV index and resulting voltage are in a linear relationship.
illumination intensity = 307 * Vsig
where:
Vsig is the value of voltage measured from the SIG pin of the Grove interface in VOlts.
illumination intensity unit: mW/m2 for the combination strength of UV light with wavelength range: 240nm~370nm
Note: To calculate the UV index value, please refer to http://www2.epa.gov/sunwise/uv-index. The EPA standard UV index can be estimated by:
UV Index = illumination intensity / 200
Example for Arduino
- Connect it to an Grove Analog Port (A0) on the Grove Sheild
- Plug the Grove - Base Shield into Arduino/Seeeduino and connect them to PC using a USB cable
// modified by Victor // to calculate UV index directly void setup(){ Serial.begin(9600); } void loop() { int sensorValue; long sum=0; for(int i=0;i<1024;i++)// accumulate readings for 1024 times { sensorValue=analogRead(A0); sum=sensorValue+sum; delay(2); } long meanVal = sum/1024; // get mean value Serial.print("The current UV index is:"); Serial.print((meanVal*1000/4.3-83)/21);// get a detailed calculating expression for UV index in schematic files. Serial.print("\n"); delay(20); }