Санкт-Петербург
Гродно, Республика Беларусь

Датчик ультрафиолета ML8511 (UV sensor) DFRobot SEN0175

С данным модулем Вы сможете делать замеры уровня ультрафиолетового излучения Перейти к полному описанию

1 520 руб.

 

Артикул: 23867534

 

есть в наличии (2)
есть в наличии (1)

 

Описание

С данным модулем Вы сможете делать замеры уровня ультрафиолетового излучения. Не секрет, что слишком сильное ультрафиолетовое излучение может вызывать ожоги на коже и пагубно влиять на некоторые области человеческого глаза.

Приблизительно 90% УФ-В спектра поглощается озоном, но если верить данным ученых, слой озона уменьшается из года в год. Проверить данную гипотезу можно самостоятельно с помощью данного датчика.

Характеристики


Рабочее напряжениеDC 5V
Рабочая температура
-20~70°C
Распознаваемые типы ультрафиолета
УФ-А (UV-A), УФ-Б (UV-B)
Распознаваемая длина УФ волны
280-390nm
Размер
30 x 22mm


Схема подключения


Схема подключения проста и не требует дополнительных компонентов


Пример кода

/***************************************************
 * UV Sensor v1.0-ML8511
 ***************************************************
 * This example reads UV intensity from UV Sensor v1.0-ML8511.
 * 
 * Created 2014-9-23
 * By Phoebe
 * 
 * GNU Lesser General Public License.
 * See <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>> for details.
 * All above must be included in any redistribution
 ****************************************************/
 
/***********Notice and Trouble shooting***************
 * 1.Connect ML8511 UV Sensor to Arduino A0
 * 2.This code is tested on Arduino Uno, Leonardo, Mega boards.
 ****************************************************/
 
 
int ReadUVintensityPin = A0; //Output from the sensor
 
void setup()
{
  pinMode(ReadUVintensityPin, INPUT);
  Serial.begin(9600); //open serial port, set the baud rate to 9600 bps
  Serial.println("Starting up...");
}
 
void loop()
{
  int uvLevel = averageAnalogRead(ReadUVintensityPin);
 
  float outputVoltage = 5.0 * uvLevel/1024;
  float uvIntensity = mapfloat(outputVoltage, 0.99, 2.9, 0.0, 15.0);
 
  Serial.print("UVAnalogOutput: ");
  Serial.print(uvLevel);
 
  Serial.print(" OutputVoltage: ");
  Serial.print(outputVoltage);
 
  Serial.print(" UV Intensity: ");
  Serial.print(uvIntensity);
  Serial.print(" mW/cm^2");
 
  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);  
 
}
 
//The Arduino Map function but for floats
//From: <a href="http://forum.arduino.cc/index.php?topic=3922.0">http://forum.arduino.cc/index.php?topic=3922.0</a>
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;
}