Ultrafialové (UV) záření je přirozenou součástí slunečního svitu. V rozumné míře stimuluje tvorbu vitamínu D v našem těle, ale při nadměrné expozici může způsobit spálení pokožky či poškození zraku. S kompaktním analogovým UV senzorem (osazeným fotodiodou pro spektrum UVA a UVB 200–370 nm s integrovaným operačním zesilovačem) si můžete snadno postavit vlastní monitor slunečního záření, kapesní měřič pro opalování nebo modul pro meteostanici, terárium či kontrolu germicidních UV lamp.

V tomto návodu si ukážeme, jak tento senzor správně zapojit k desce Arduino, jak z naměřeného analogového signálu odfiltrovat šum, přepočítat jej na výstupní napětí v milivoltech a podle mezinárodní stupnice WHO určit aktuální UV Index a úroveň rizika.

Pokud s deskami Arduino teprve začínáte, doporučujeme nahlédnout do našeho základního průvodce Jak začít s Arduino IDE.

Zapojení modulu

Modul komunikuje prostřednictvím lineárního analogového výstupu a vyžaduje pouze 3 vodiče.

  • VCC: Napájení 5V
  • GND: Společná zem (GND)
  • OUT / SIG: Analogový pin A0 (případně libovolný ADC pin) 

 

Přepočet napětí na UV Index (podle WHO)

Fotodioda senzoru reaguje na záření o vlnové délce 200 až 370 nm (UVA a UVB spektrum). Generovaný proud zesiluje vestavěný operační zesilovač, který na pinu OUT vytváří analogové napětí.

U senzoru odpovídá každých 100 mV (0,1 V) na výstupu přibližně jednoho UV Indexu podle stupnice Světové zdravotnické organizace (WHO):

UV IndexVýstupní napětí Vout (mV)Analogová hodnota (ADC)Kategorie rizikaDoporučená ochrana
0 < 50 mV < 10 Nízké / Žádné Bezpečný pobyt venku bez omezení
1 227 mV 46 Nízké Běžný pobyt venku, v létě sluneční brýle
2 318 mV 65 Nízké Běžný pobyt venku, v létě sluneční brýle
3 408 mV 83 Střední Vyhledávat stín kolem poledne, pokrývka hlavy, krém SPF 15+
4 503 mV 103 Střední Vyhledávat stín kolem poledne, pokrývka hlavy, krém SPF 15+
5 606 mV 124 Střední Vyhledávat stín kolem poledne, pokrývka hlavy, krém SPF 15+
6 696 mV 142 Vysoké Omezit pobyt na slunci 11–15 h, krém SPF 30+, brýle
7 795 mV 162 Vysoké Omezit pobyt na slunci 11–15 h, krém SPF 30+, brýle
8 881 mV 180 Velmi vysoké Vyhýbat se polednímu slunci, nutná kompletní UV ochrana
9 976 mV 200 Velmi vysoké Vyhýbat se polednímu slunci, nutná kompletní UV ochrana
10 1079 mV 221 Velmi vysoké Vyhýbat se polednímu slunci, nutná kompletní UV ochrana
11+ 1170+ mV ≥ 240 Extrémní Nebezpečné záření! Nechráněná kůže se spálí během minut
 

Vzorový kód pro Arduino IDE

Pro provoz tohoto senzoru není vyžadována žádná externí knihovna. Program načte hodnotu z analogového vstupu, přepočítá ji na milivolty a určí výsledný UV index, který vypisuje do Sériového monitoru (při rychlosti 9600 baud).

#include <Arduino.h>

// Připojení analogového UV senzoru
const int PIN_SENZORU = A0;

void setup() {
  Serial.begin(9600);
  pinMode(PIN_SENZORU, INPUT);
  Serial.println("UV senzor pripraven k mereni.");
}

void loop() {
  // Přečtení analogové hodnoty ze senzoru
  int analogHodnota = analogRead(PIN_SENZORU);

  // Přepočet na napětí v milivoltech (pro 5V Arduino)
  float napeti = (analogHodnota * 5.0 / 1023.0) * 1000.0;

  // Určení UV indexu podle naměřeného napětí
  int uvIndex = 0;
  if (napeti < 50) {
    uvIndex = 0;
  } else if (napeti < 227) {
    uvIndex = 1;
  } else if (napeti < 318) {
    uvIndex = 2;
  } else if (napeti < 408) {
    uvIndex = 3;
  } else if (napeti < 503) {
    uvIndex = 4;
  } else if (napeti < 606) {
    uvIndex = 5;
  } else if (napeti < 696) {
    uvIndex = 6;
  } else if (napeti < 795) {
    uvIndex = 7;
  } else if (napeti < 881) {
    uvIndex = 8;
  } else if (napeti < 976) {
    uvIndex = 9;
  } else if (napeti < 1079) {
    uvIndex = 10;
  } else {
    uvIndex = 11;
  }

  // Výpis naměřených hodnot do Sériového monitoru
  Serial.print("Analog: ");
  Serial.print(analogHodnota);
  Serial.print(" | Napeti: ");
  Serial.print(napeti, 0);
  Serial.print(" mV | UV Index: ");
  Serial.println(uvIndex);

  delay(1000); // Měření každou sekundu
}

}

Výstup ze Sériového monitoru (9600 baud)

Po nahrání kódu a otevření Sériového monitoru uvidíte přehledný výpis naměřených hodnot v reálném čase:

UV senzor pripraven k mereni.
Analog: 2 | Napeti: 10 mV | UV Index: 0
Analog: 48 | Napeti: 235 mV | UV Index: 1
Analog: 85 | Napeti: 415 mV | UV Index: 3
Analog: 145 | Napeti: 710 mV | UV Index: 6
Analog: 184 | Napeti: 895 mV | UV Index: 8
 

 

Tipy pro testování a praxi

  • Testování v interiéru vs. exteriéru: Běžná interiérová svítidla (LED žárovky, lustry) UV záření neprodukují, senzor proto v místnosti zcela správně ukazuje hodnotu 0. Pro rychlé ověření funkčnosti doporučujeme vzít senzor ven na denní světlo nebo přímo pod slunce (případně k otevřenému oknu), kde hodnota na monitoru ihned stoupne.
  • Měření za oknem: Okenní sklo spolehlivě pohlcuje téměř veškeré UVB paprsky a většinu UVA paprsků. Pro přesné změření venkovního UV indexu umístěte senzor venku nebo do otevřeného okna.
  • Směrování ke zdroji: Pro maximální přesnost měření namiřte fotodiodu senzoru přímo proti zdroji zážení.

Závěr

Analogový senzor UV záření představuje spolehlivé a cenově dostupné řešení pro sledování ultrafialového záření a ochranu zdraví před slunečním spálením. Díky jednoduchému 3-pinovému zapojení a přímému analogovému výstupu jej snadno začleníte do vlastních meteostanic, zahradních systémů i kapesních měřičů.

 

Použité komponenty:

Vývojová deska Arduino UNO R3 (nebo Arduino Nano): https://dratek.cz/arduino-platforma/232777-klon-arduino-uno-r3-ch340.html

Analogový senzor ultrafialového (UV) záření 240 ~ 370nm, 3,3 ~ 5V DC: https://dratek.cz/arduino-platforma/231217-analogovy-senzor-ultrafialoveho-uv-zareni-200-370nm-3-3-5v-dc.html

Propojovací kabely DuPont (samice-samec / samice-samice): https://dratek.cz/arduino-platforma/1214-40-x-m-f-dupont-kabel-20-cm.html

USB kabel pro napájení a programování: https://dratek.cz/arduino-platforma/5042-usb-kabel-propojovaci-usb-2.0-a-b.html

FB tw

Další podobné články