GUVA-S12SD是一款高灵敏度的紫外线检测二极管,类似光电二极管那样,它是专门针对波长介于240-370nm的紫外线检测二极管。
由该器件构成的模块
电路原理图:
工作参数:
1、供电电压2.5V~5V,工作电流是微安级
2、检测波长范围:240nm-370nm
3、检测角度:130度
由于是模拟输出,在使用ESP8266测试场合,可以直接将SIG输出端直接接到ADC引脚上,程序代码如下:
// ESP8266驱动GUVA-S12SD紫外线传感器示例 // 注意事项:传感器VCC请连接至3.3V const int sensorPin = A0; // ESP8266的模拟输入引脚 // 定义参考电压(通常是3.3V,但实际可能有偏差,建议用万用表测量) const float VREF = 3.3; // ESP8266的ADC分辨率为10位(0-1023) const int ADC_RESOLUTION = 1023; void setup() { Serial.begin(115200); // 初始化串口通信 Serial.println("ESP8266 GUVA-S12SD UV Sensor Test"); Serial.println("================================="); } void loop() { // 1. 读取模拟值(0-1023) int adcValue = analogRead(sensorPin); // 2. 将ADC值转换为电压值(单位:伏特) float voltage = (adcValue * VREF) / ADC_RESOLUTION; // 3. 根据传感器特性计算紫外线强度 // GUVA-S12SD的灵敏度通常在~0.1V per UV index左右。 // 一个常见的估算公式是:紫外线指数 ≈ 电压值 * 10 // 注意:这是一个近似值,精确计算请参考传感器数据手册的响应曲线。 float uvIndex = voltage * 10.0; // 4. 将结果打印到串口监视器 Serial.print("ADC Value: "); Serial.print(adcValue); Serial.print(" | Voltage: "); Serial.print(voltage, 2); // 保留2位小数 Serial.print(" V"); Serial.print(" | Estimated UV Index: "); Serial.println(uvIndex, 1); // 保留1位小数 // 5. 等待1秒后进行下一次读取 delay(1000); }
测试过程中,为了显著性增加紫外线照射,使用了烘干指甲油用的紫外线小装置,可以看到数据的明显变化