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);
}测试过程中,为了显著性增加紫外线照射,使用了烘干指甲油用的紫外线小装置,可以看到数据的明显变化

我要赚赏金
