Pular para o conteúdo principal

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

nota

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)FlutuanteFlutuante
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


Xadow UV Sensor Eagle File

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.

Loading Comments...