
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 Index | Výstupní napětí Vout (mV) | Analogová hodnota (ADC) | Kategorie rizika | Doporuč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