Xadow - Sensor UV

O Xadow UV Sensor é adequado para medir a radiação UV na luz solar. Ele pode detectar o comprimento de onda UV de 290 ~ 400 nm. O UV Sensor fornece um valor de tensão digital correspondente à intensidade da luz UV. Com o diagrama de tensão de saída e UV, podemos saber facilmente o índice UV atual. O Xadow UV Sensor pode ser alimentado por 3,3 V e é compatível com o sistema Xadow.
Especificação
- Pode detectar faixas de UV-A e UV-B
- Detecção de comprimento de onda UV: 290 ~ 400nm
- Comprimento de onda de sensibilidade máxima: 330nm
- Circuito ADC integrado, alta precisão de conversão
- Precisão de teste: ±0,1 índice UV
- Temperatura de operação: -25 ~ 70 ℃
- Dimensões: 25,43mm x 20,35mm
Demonstração
O Xadow UV Sensor pode fornecer um valor de tensão correspondente ao índice UV. Como existe uma relação linear entre a tensão de saída e o índice UV, você também pode ver diretamente o índice UV por meio de uma fórmula. A seguir mostramos como usar o sensor UV para saber o índice UV e exibi-lo na tela OLED.
Instalação de Hardware
Ao conectar o Xadow UV Sensor ao Xadow Main Board, você deve se atentar à direção da conexão. O método de conexão é que o canto sem preenchimento de um módulo Xadow precisa ser conectado ao ângulo reto de outro módulo (veja os quatro cantos de cada módulo Xadow).
Baixar Código
- Agora você pode carregá-lo para o Xadow Main Board copiando e colando no Arduino IDE.
#include <Wire.h>
#include <SeeedOLED.h>
#include <Streaming.h>
#define ADDR_ADC121 0x5A
#define V_REF 3.00
#define REG_ADDR_RESULT 0x00
#define REG_ADDR_ALERT 0x01
#define REG_ADDR_CONFIG 0x02
#define REG_ADDR_LIMITL 0x03
#define REG_ADDR_LIMITH 0x04
#define REG_ADDR_HYST 0x05
#define REG_ADDR_CONVL 0x06
#define REG_ADDR_CONVH 0x07
unsigned int getData;
float analogVal=0;
float UVIndex = 0;
void init_adc()
{
Wire.beginTransmission(ADDR_ADC121); // transmit to device
Wire.write(REG_ADDR_CONFIG); // Configuration Register
Wire.write(0x20);
Wire.endTransmission();
}
void setup()
{
Wire.begin();
Serial.begin(38400);
SeeedOled.init(); //initialize SEEED OLED display
SeeedOled.clearDisplay(); // clear the screen and set start position to top left corner
init_adc();
}
void loop()
{
readVoltage();
//SeeedOled.clearDisplay();
SeeedOled.setTextXY(1,0);
SeeedOled.putString("Voltage: ");
SeeedOled.setTextXY(1,8);
SeeedOled.putFloat(analogVal);
SeeedOled.setTextXY(1,12);
SeeedOled.putString("mV");
SeeedOled.setTextXY(2,0);
SeeedOled.putString("UVIndex: ");
SeeedOled.setTextXY(2,8);
SeeedOled.putFloat(UVIndex);
delay(50);
}
void readVoltage() //unsigned int *data
{
Wire.beginTransmission(ADDR_ADC121); // transmit to device
Wire.write(REG_ADDR_RESULT); // get result
Wire.endTransmission();
Wire.requestFrom(ADDR_ADC121, 2); // request 2byte from device
delay(1);
if(Wire.available()<=2)
{
getData = (Wire.read()&0x0f)<<8;
getData |= Wire.read();
}
delay(50);
analogVal = getData*V_REF/4096/2;
Serial.print("analogVal:");
Serial.print(analogVal);
Serial.println("mV");
UVIndex = analogVal/9.71;
Serial.print("UVIndex:");
Serial.println(UVIndex);
}
-
Abra o monitor serial, o valor da tensão e o índice UV serão exibidos:
-
Você pode ver na tela OLED:
-
Descobrir o índice UV não é uma tarefa difícil consultando o diagrama abaixo.

Sobre o Xadow UV Sensor, usamos um resistor cujo valor de resistência é 3M, então você precisa consultar esta linha para RL=3M.
É possível observar de forma linear a relação entre tensão e UV. E a fórmula calculada pode ser obtida: Índice UV = Tensão/9,71, que já foi usada no código.
Referência
Endereço I2C do UV Sensor
O Xadow UV Sensor tem um endereço de hardware de sete bits que é referido como endereço escravo. E o endereço escravo é configurado pelas entradas de seleção de endereço ADR0 e ADR1. ADR0 e ADR1 podem estar em nível baixo, deixados em aberto ou conectados ao nível alto. O estado dessas entradas define o endereço de hardware ao qual o módulo responde no barramento I2C (veja a Tabela abaixo).
| Endereço Escravo[A6 - A0] | Estado das entradas ADR0 e ADR1 | |
|---|---|---|
| ADR1 | ADR0 | |
| 1010000(0x50) | Flutuante | Flutuante |
| 1010001(0x51) | Floating | L |
| 1010010(0x52) | Floating | H |
| 1010100(0x54) | L | Floating |
| 1010101(0x55) | L | L |
| 1010110(0x56) | L | H |
| 1011000(0x58) | H | Floating |
| 1011001(0x59) | H | L |
| 1011010(default 0x5A) | H | H |
No modo padrão, ADR0 e ADR1 estão conectados a "H" (veja o Xadow UV Sensor)
Curva de resposta espectral do UV Sensor

Visualizador de Esquemático Online
Recursos
Suporte Técnico & Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.
