Medidor de índice UV com Arduino 76

Todos sabem dos danos à saúde que uma exposição prolongada ao sol pode causar, devido à radiação UV (Ultravioleta). Neste post vamos montar um medidor de índice UV com Arduino que vai ajudar você a monitorar esse nível de exposição com muito mais segurança. O sensor que vamos utilizar é o Sensor de Raio Ultravioleta UV UVM-30A.

Sensor raio ultravioleta UV UVM-30A

O medidor utiliza uma tabela criada em 1992 chamada UV Index (ou Índice Ultravioleta), que vai de 0 (baixo) a 11 (extremo), indicando o nível dos raios UV. Com esse nível podemos criar uma tabela mostrando as providências que devem ser tomadas para se proteger do sol (usar óculos escuros, protetor solar, roupas adequadas,  etc).

Indice UV - Proteção

O sensor UVM-30A é capaz de detectar raios UV com tamanho de onda entre 200 e 370mm, com uma rápida resposta. A saída de dados é analógica e utiliza um único pino, cujo valor pode ser lido pela maioria dos microcontroladores. O módulo aceita tensão de alimentação entre 3 e 5V.

Ligação do sensor UV ao Arduino

No nosso circuito vamos utilizar um display Oled I2C Azul Amarelo para mostrar a informação do índice UV. Esse display é o mesmo que utilizamos recentemente no nosso projeto de Bafômetro com Arduino. A saída do módulo UV (pino OUT) será ligada ao pino analógico A0 do Arduino.

Circuito Arduino Uno - Sensor UV

No nosso circuito colocamos o sensor UV na protoboard, mas você pode utilizar um cabo para melhor posicionamento do sensor.

Programa medidor de índice UV com Arduino

O programa lê o valor da porta analógica A0, converte esse valor em milivolts e faz a associação com a tabela mostrada abaixo, para exibir no display o valor do índice UV (UV Index) correspondente.

Tabela UV - mV

O display Oled utiliza a biblioteca U8Glib por oliver versão 1.19.1, disponível no gerenciador de bibliotecas da IDE. A leitura e conversão dos valores lidos do sensor UV será feita dentro do programa, sem o uso de bibliotecas.

//Programa: Medidor de Indice UV com Arduino
//Autor: MakerHero

#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);

int pino_sensor = A0;
int valor_sensor = 0;
int posicao;
String UV_index = "0";

void draw()
{
  //Comandos graficos para o display devem ser colocados aqui
  u8g.drawRFrame(0, 16, 67, 48, 4);
  u8g.drawRFrame(67, 16, 61, 48, 4);
  u8g.drawRFrame(0, 0, 128, 16, 4);
  u8g.drawBox(11, 48, 45, 12 );
  u8g.setFont(u8g_font_8x13B);
  u8g.setColorIndex(0);
  u8g.drawStr( 13, 59, "INDEX");
  u8g.setColorIndex(1);
  u8g.drawStr( 24, 13, "Medidor UV");
  // Centraliza o valor na tela
  u8g.setFont(u8g_font_fur25);
  u8g.drawStr( 10, 45, "UV");
  //Ajusta posicao do valor do UV_Index
  if (UV_index.length() <= 1)
  {
    posicao = 88;
  }
  else
  {
    posicao = 78;
  }
  //Mostra valor do sensor
  u8g.setPrintPos(posicao, 52);
  u8g.print(UV_index);
}

void setup(void)
{
  Serial.begin(9600);
  pinMode(pino_sensor, INPUT);
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255, 255, 255);
  }
}

void loop(void)
{
  Calcula_nivel_UV();
  //Chama a rotina de desenho na tela
  u8g.firstPage();
  do
  {
    draw();
  }
  while ( u8g.nextPage() );
  delay(150);
}

void Calcula_nivel_UV()
{
  valor_sensor = analogRead(pino_sensor);
  //Calcula tensao em milivolts
  int tensao = (valor_sensor * (5.0 / 1023.0)) * 1000;
  //Compara com valores tabela UV_Index
  if (tensao > 0 && tensao < 50)
  {
    UV_index = "0";
  }
  else if (tensao > 50 && tensao <= 227)
  {
    UV_index = "0";
  }
  else if (tensao > 227 && tensao <= 318)
  {
    UV_index = "1";
  }
  else if (tensao > 318 && tensao <= 408)
  {
    UV_index = "2";
  }
  else if (tensao > 408 && tensao <= 503)
  {
    UV_index = "3";
  }
  else if (tensao > 503 && tensao <= 606)
  {
    UV_index = "4";
  }
  else if (tensao > 606 && tensao <= 696)
  {
    UV_index = "5";
  }
  else if (tensao > 696 && tensao <= 795)
  {
    UV_index = "6";
  }
  else if (tensao > 795 && tensao <= 881)
  {
    UV_index = "7";
  }
  else if (tensao > 881 && tensao <= 976)
  {
    UV_index = "8";
  }
  else if (tensao > 976 && tensao <= 1079)
  {
    UV_index = "9";
  }
  else if (tensao > 1079 && tensao <= 1170)
  {
    UV_index = "10";
  }
  else if (tensao > 1170)
  {
    UV_index = "11";
  }
}

Abaixo temos uma imagem do circuito em funcionamento, mostrando o índice UV em uma ensolarada manhã de inverno:

Medidor UV Arduino

 Gostou? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

76 Comentários

  1. Olá Adilson, satisfação conversar com você, por favor me informe se este modelo serve para medir raios UV-C? Se serve como calibrar ou se tiver que incrementar mais componentes ou programas, eu preciso medir lampadas de desinfecção que trabalha no comprimento de 254Nm e para ozônio 185Nm, obrigado. Abraço.

    1. Olá Marildo,

      O sensor consegue ler a faixa de 254 Nm, porém com uma sensibilidade muito menor, seria necessário realizar testes para ver se atende a tua necessidade.

      Quanto à faixa de 185 Nm, esse sensor não é sensível a ela.

      Abraços!
      Vinícius – Equipe MakerHero

  2. Boa noite!

    Parabéns inicialmente pelo trabalho! Fiz adaptações na programação e estou com a seguinte incógnita.
    Queria calcular o comprimento de onda, mas não encontro uma fórmula matemática . Poderias me ajudar!

    Heitor Hermeson de Carvalho Rodrigues
    1. Olá Heitor,

      Para fazer o cálculo você vai precisar da área de absorção do sensor. Infelizmente não encontrei essa informação no datasheet.

      Abraço!
      Rosana – Equipe MakerHero

  3. Olá, primeiramente parabéns pelo projeto, adquiri esse sensor e outros para montagem de uma mini estação meteorológica.

    Minha dúvida é se consigo com este sensor e o valor que ele retorna (mV) calcular a energia, como a maioria das estações faz, em Kj/m², teria alguma fórmula para realizar este cálculo?

    1. Olá Everton,

      É possível sim. Dê uma olhadinha como realizar a conversão de UV pra Kj/m², acredito até que seria mais fácil.

      Abraço!
      Rosana – Equipe MakerHero

  4. Olá! Estou usando para medir UV um sensor Guva – S12SD e ao rodar o programa o indíce no monitor serial aparece 11, mas estou no período noturno era para ser zero. Não consigo perceber o erro. Favor me ajudar nesse projeto. Obrigado

    //Programa: Sensor UV Guva s12sd Arduino e display Oled 128×32
    //Autor: Arduino e Cia
    #include
    #include
    #include
    #include
    //Resolucao do display Oled (em pixels)
    #define SCREEN_WIDTH 128
    #define SCREEN_HEIGHT 32
    #define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
    Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
    int indiceUV;
    void setup()
    {
    Serial.begin(9600);
    //Checagem do display no endereço I2C 0x3C
    if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
    {
    Serial.println(F(“SSD1306 allocation failed”));
    for (;;); //Para o programa
    }
    //Inicializa o display Oled
    display.display();
    delay(2000);
    }
    void loop()
    {
    //Leitura dos dados do sensor
    int leitura_porta = analogRead(A0);
    //De acordo com a leitura define o indice UV correspondente
    if (leitura_porta 10 && leitura_porta 46 && leitura_porta 65 && leitura_porta 83 && leitura_porta 103 && leitura_porta 124 && leitura_porta 142 && leitura_porta 162 && leitura_porta 180 && leitura_porta 200 && leitura_porta <= 221) {
    indiceUV = 10;
    } else {
    indiceUV = 11;
    }
    //Mostra os valores no Serial Monitor
    Serial.print("Valor porta: ");
    Serial.print(leitura_porta);
    Serial.print(" – Indice: ");
    Serial.println(indiceUV);
    //Apaga o display
    display.clearDisplay();
    //Desenha retangulos
    display.fillRect(46, 0, 81, 32, SSD1306_INVERSE);
    display.drawRect(0, 0, 45, 32, SSD1306_WHITE);
    display.display();
    //Define tamanho da fonte
    display.setTextSize(1);
    //Texto com letras em branco
    display.setTextColor(SSD1306_WHITE);
    //Posicao do cursor
    display.setCursor(4, 3);
    display.println(F("INDICE"));
    display.setCursor(12, 14);
    display.setTextSize(2);
    display.println(F("UV"));
    display.setTextSize(4);
    //Texto invertido, com texto preto e fundo branco
    display.setTextColor(SSD1306_BLACK, SSD1306_WHITE);
    display.setCursor(65, 2);
    display.println(indiceUV);
    display.display();
    delay(2000);
    }

    1. Olá Cleber,

      Acredito que algo no seu código ou na montagem deve estar errado, pois um indice UV 11 é extremamente alto.

      Abraço!
      Rosana – Equipe MakerHero

  5. Olá! É possível fazer esse projeto usando um display LCD Shied?

    1. Olá Cleber,

      Com algumas modificações no código, é possível sim 🙂

      Abraço!
      Rosana – Equipe MakerHero

  6. Olá!
    Fiz a compra recentemente de sensores UV e cartão de memória micros SD.
    Estou tentando fazer um projeto de leitura da radiação UV durante o dia em 3 placas, uma sem protetor solar e as outras duas testando fator 15 e 30.
    Os dados que quero registrar são dia, horário e índice UV num cartão SD e as placas ficarão alimentadas por bateria de 9V.
    Gostaria de uma ajuda para a programação.
    Obrigado

    1. Paulo,

      Dê uma olhada lá na nossa comunidade: https://www.facebook.com/groups/272908123918982

      Abraços!
      Diogo – Equipe MakerHero

  7. Pode ser usado um LCD 16×2 ?

  8. Olá Adilson, parabéns pela página, está ajudando a muitas pessoas, inclusive a mim!
    Pintou uma dúvida sobre a conversão que você fez:

    int tensao = (valor_sensor * (5.0 / 1023.0)) * 1000;

    Eu havia compreendido que o valor retornado pelo sensor já estaria em mV. Inclusive, na folha de dados que encontrei pela Internet de um dos fornecedores deste sensor, mostra uma escala quase linear de evolução da tensão, com a evolução da intensidade dos raios UV.

    A minha dúvida (possivelmente de iniciante) seria por qual razão há a necessidade de fazer esta conversão.

    Muito obrigado! Um abraço,
    Tamer Salmem

  9. muito bom, deu muito jeito, mas gostaria de saber como e se posso medir o UVA e o UVB

  10. Olá. Qual é o output do sensor? Pergunto pois se a tensão variar de 0 a 1V, como diz na página do produto (– Tensão de saída: 0-1V (correspondente a 0-10 INDEX)), então a fórmula de conversão na linha 77 do código não estaria errada?

    Racional: imaginando um cenário de output máximo do sensor de 1V. Isso implica uma leitura no microcontrolador de 204,6 (como o analogRead interpreta de 0 a 5V e retorna de 0 a 1023, ao receber 1V ele retornaria 1/ 5 * 1023 = 204,6.

    Aplicando os mesmos 204,6 na fórmula da linha 77 temos: 204,6 * (5 / 1023) * 1000 = 1000. Ou seja, assumindo um output máximo de 1V do sensor, pela fórmula nunca teremos leituras superiores a 1000 (o que corresponde a um índice UV entre 9 e 10).

    Entendo que para termos leituras mais precisas precisamos (novamente assumindo output de 0 a 1V do sensor) saber qual o Vout(mV) correspondente quando o sensor acusa leitura máxima (no nosso caso 1V). Assim conseguimos usar a função map() corretamente. Outra saída seria usar o mesmo Vout(mV) correspondente à leitura máxima no lugar dos “1000” que multiplica a fórmula da linha 77.

    Abs!

  11. Olá Adilson. Muito interessante o projeto. Gostaria de fazer uma pesquisa sobre a radiação UV e os filtros solares, para isso penso em colocar uma película transparente sobre o sensor com os filtros solares para testá-los. O que acha? Talvez tenha que colocar as placas em um envólucro transparente para os dias de chuva. Gostaria de desenvolver numa escola pública. Alguma dica a mais que precise ou somente copiar e rodar a programação é o bastante? A ideia é fazer uma acompanhamento de pelo menos uma semana de dados. O que acha?

    Paulo Renato Carollo de Oliveira
    1. Paulo,

      Talvez seja interessante você armazenar esses dados em algum lugar. Nesse caso, você deve adicionar o código pra isso. Temos um post sobre armazenamento em cartão SD: https://www.makerhero.com/blog/cartao-sd-com-arduino/

      Abraços!
      Diogo – Equipe MakerHero

    2. Basta somente agregar um programa no outro?

      Colégio Estadual Dom João Becker
      1. Paulo,

        Dê uma olhada nesse nosso post: https://www.makerhero.com/blog/como-juntar-dois-projetos-em-arduino/

        Abraços!
        Diogo – Equipe MakerHero

  12. Boa noite, amigo!

    Poderíamos medir a luz UV-C emitida por uma lâmpada?

    Pois na descrição do sensor diz que pode medir UV-A de 200 a 370nm, porém a luz UV-A varia de 320 a 400nm e a luz UV-C de 200 a 260nm.

    Desde já agradeço, abraço.

    1. Olá, Leonardo!

      A luz UV-C vai de 100nm à 290, então seria possível pegar um pouco dessa faixa para medir.

      Abraços!
      Diogo – Equipe MakerHero

  13. Teria como configura para medir radiações UV somente na faixa de comprimento de onda de 240 até 280 nm ?

    1. Olá, Yuri!

      Utilizando apenas o sensor, não. Você precisaria de pelo menos um filtro óptico:
      https://en.wikipedia.org/wiki/Optical_filter

      Usando o filtro, você poderia bloquear os outros comprimentos de onda, deixando apenas a desejada.

      Abraços!
      Diogo – Equipe MakerHero

  14. Oi, eu gostei do projeto e gostaria de fazer isso. Mas em vez de exibir a mensagem “Medidor de UV”, gostaria que você exibisse uma mensagem de acordo com o índice UV, por exemplo, de 1 a 2 “Baixa”, de 3 a 5 “Moderada”. Quais modificações você teria que fazer no código?

    1. Olá, Jean,

      Você teria que apagar a seguinte linha:
      “u8g.drawStr( 24, 13, “Medidor UV”);”

      Em seguida, dentro de cada
      if (tensao > 0 && tensao < 50) { UV_index = "0"; } Deve adicionar "u8g.drawStr( 24, 13, "BAIXO/MEDIO/ALTO");" // Alterar com o nível desejado. Se existir outra dúvida relacionada ao código, abra um tópico lá no nosso fórum para facilitar 😉 Abraços! Diogo - Equipe MakerHero

      1. Muito obrigado, tenho outra pergunta. Não seria um problema se eu trabalhasse com um Arduino Nano?

        1. Olá, Jean

          A princípio não, tendo em vista que a pinagem usada existe no Nano também.

          Abraços!
          Diogo – Equipe MakerHero

  15. digamos que eu estou fazendo a leitura do índice UV a cada 1 minuto ao ar livre, porém no momento da leitura uma nuvem está fazendo sombra, o que acontece com a minha medição?

    1. Olá!

      Acredito que a medição terá uma decaída, pois a intensidade UV será bem menor.

      Abraços.
      Diogo – Equipe MakerHero

  16. É normal o sensor mediar 9 de indice a noite? Na verdade nunca baixa de 9.

    1. Olá Denis!

      Não é normal. Você pode explicar melhor o ocorrido?

      Abraços!

      André – Equipe MakerHero

  17. Que tal mi pregunta es la siguiente ¿Que otro sensor puedo ocupar si en mi caso esta agotado en mi pais Mexico ? y sea compatible con arduino para hacer uno similar al de usted

    1. Hola Emmanuel!

      Puedes importar uno, eso toma un tiempo pero vale la pena 😉

      Saludos!

      André – Equipo MakerHero

  18. oi MakerHero o meu projeto ele usara um display lcd tem como me ajudar a fazer o codigo para o lcd com o sensor ulta violeta

  19. Olá Adilson Thomsen! Parabéns pelas dicas! Estou interessado em realizar um estudo desse nas praias da cidade Santos/SP para projeto de mestrado, será que dará certo? Sabe se nos dias de muito Sol eo índice aumenta acima de 3, 4, etc Obrigado, abraço

    1. Olá Guilherme!

      Ficamos muito felizes em saber que nosso trabalho realmente ajuda as pessoas!

      Abraços!

      André – Equipe MakerHero

  20. Olá. Gostaria de saber se tem problema em conectar o sensor UVM30A em um NodeMCU, no lugar do arduino. Obrigado.

    1. Olá Emerson!

      Tem problema porque o NodeMCU não possui uma entrada analógica!!

      Poderias adicionar um conversor analógico-digital ao circuito ou colocá-lo em um ESP32.

      Abraços!

      André – Equipe MakerHero

      1. Ok.
        Quando eu ligar esse sensor ao ESP, ele funcionará bem com a tensão de 3.3v? e será necessário realizar a alteração na linha 77 do cádigo para “int tensao = (valor_sensor * (3.3 / 1023.0)) * 1000”?

        1. Olá Emerson!

          Essa conversão vale pro ESP32 também, não acho que seja necessário fazer alguma mudança.

          Abraços!
          André – Equipe MakerHero

  21. Adilson, primeiramente quero agradecer-lhe pelo seu circuito, ele foi minha inspiração para o meu projeto de um medidor de radiação UV de baixo custo em minha escola. Tenho 11 anos, estou no 7º Ano do fundamental e gosto muito de arduino. Gostaria também de dar uma sugestão de um erro que encontrei na programação. Na função Calcula_nivel_UV() tem um problema quando o nível é igual a 0:

    //Compara com valores tabela UV_Index
    if (tensao > 0 && tensao 50 && tensao = 0 && tensao <= 227)
    {
    UV_index = "0";
    }

    Além de ter menos linhas de código, você vai corrigir o problema que ocorre quando o nível for exatamente igual a zero. Pois na sua programação, quando a tensão for zero o índice UV continuará o anterior e mostrará no display o nível anterior e não o zero, que seria o correto.

    Um grande abraço !!!

    Luís Felipe

    1. Esse seria o código certo:

      if (tensao >= 0 && tensao <= 227)
      {
      UV_index = "0";
      }

    2. Oi Luís!

      Antes de mais nada parabéns pela dedicação e obrigado por visitar o nosso Blog. 🙂

      Já vamos corrigir isso daí. Boa sugestão. 😉

      Abraço e obrigado!

      Adilson – Equipe MakerHero

  22. Pretendo fazer um sensor deste tipo mas em vez de utilizar odisplay Oled quero utilizar 2 display led de 7 segmentos (12 V) ligados aos pinos 2 a 10 do arduino, através de um módulo de 8 relés de estado sólido. Posso alterar o código, retirando #include “U8glib.h” e tudo a que a ele se refere e dizer no
    void Calcula_nivel_UV()
    {
    valor_sensor = analogRead(pino_sensor);
    //Calcula tensao em milivolts
    int tensao = (valor_sensor * (5.0 / 1023.0)) * 1000;
    //Compara com valores tabela UV_Index
    if (tensao > 0 && tensao 50 && tensao <= 227)
    {
    pin 2 ,3,4,5= High;
    }
    accionando assim o ZERO no display LED
    e por aí fora?

  23. Olá. Não entendi o porque de calcular o valor da tensão do sensor por meio da fórmula tensao = (valor_sensor * (5.0 / 1023.0)) * 1000 na linha 77. Não podemos usar direto o valor informado pelo sensor não?

    1. Olá Emerson!

      Na entrada analógica o Arduino não fornece um valor de tensão. Como o conversor Analógico digital é de 10 bits ele fornece um valor de 0 a 1023. Sendo 0 equivalente a 0 V e 1023 = 5 V. Por isso foi utilizado essa fórmula para converter o valor da entrada analógica para tensão em milivolts

      1. André, a lógica é a mesma para qualquer controlador (ex NodeMCU) desde q seja de 10 bits, certo? Você sabe de antemão se tenho que fazer alguma conversão diferente dessa do Arduino pro NodeMCU?

        Obrigado!

  24. Obrigado por compartilhar seu projeto. Gostaria de saber se o sensor de Raio Ultravioleta UV UVM-30A tem sensibilidade para captar radiações difusas também. Obrigado.

  25. buen tutorial yo tengo el censor un arduino unu lcd 2×16 y el i2c me podrias regalar la proframacion completa para el arduino yo transquiviria el programa y lo compilaria gracias martin burbano dedsde colombia

  26. Ótimo tutorial. Valeu Adilson.
    Seu tutorial foi ao mesmo tempo simples e compreensível e ao mesmo tempo abrangeu excelente conhecimento técnico para nós iniciantes.
    Parabéns!

  27. Que bien a este dispositivo se podra trabajar com lcd2×15 com interfas I2C si es asi ay que reprogramar mi correo es [email protected]

  28. Excelente tutorial!
    Gostaria de saber se este sensor funciona com o NodeMCU Esp8266?

    1. Matteus, faz tempo q vc perguntou, mas funciona sim…. rs, acabei de fazer. Abs

  29. Olá, nunca trabalhei com o Arduino, gostaria de saber o que eu preciso para realizar esse Medidor de Indice de UV, vou iniciar do zero, o que eu necessito?
    Placas? Fontes? Software?
    Agradeço sua atenção.

    1. Boa tarde Paulo,

      Para o medidor de índice UV você vai precisar do Arduino (pode ser o Uno, a princípio, mas vc pode usar outras versões do Arduino para esse projeto), protoboard, módulo medidor de índice UV, display oled azul/amarelo e jumpers macho-macho para conexão. Você pode usar uma fonte para ligar o projeto sem depender de um computador, ou pode usar baterias para alimentar o conjunto.

      Abraço!

      Adilson – Equipe MakerHero

    2. Adilson, boa tarde.
      Tenho interesse em reproduzir o trabalho que vc. fez … sabes o custo completo? Você está há quanto tempo testando este circuito? Me falaram que na intemperie a frequencia do clock muda muito do arduino, é verdade? ou dá para confiar em fazer instrumentos de medição?

  30. A lógica de calcular o índice UV também é válida no sensor GY-ML8511?

  31. Bom dia gostaria de uma ajuda, porque meu sensor só marca 0? não altera a marcação.

  32. me aparece esto al compilar el programa en arduino …. me podria ayudar ??
    exit status 1
    stray ‘302’ in program

  33. teria como programar esse mesmo sensor pra medir Lumens ?

  34. Excelente projeto, mas voce teria algum exemplo utilizando um RaspBerry Pi com TFT ?

    Cesario

    1. Boa noite Antonio,

      Obrigado, veja este post, por favor: https://www.makerhero.com/como-conectar-display-lcd-tft-raspberry-pi/

      Abraço.

      Adilson – Equipe MakerHero

  35. olá, galera
    gostariamos de saber como poderíamos juntar este circuito com o circuito da estação meteorológica.
    desde já agradecida.

  36. Boa tarde,

    Estou interessado em comprar 7 módulos deste sensor UV, para usar em um projeto do meu trabalho. No entanto precisaria de um código onde ao invés do resultado aparecer em um display … ele apenas faça um serial print .. mandando os resultados em numeros de 1 a 10… alguém pode ajudar?? acho que é até mais simples do que este… apenas ler o sensor e escrever no serial monitor…

    abç…

    1. Se utilizar como base o cod acima, depois do ultimo else vc coloca Serial.print(UV_index); e no void setup, vc coloca Serial.begin(9600);Pronto irá funcionar.

      1. Não Funcionou, só mede 11 o tempo todo

        1. Independente se está ligada ou não o sensor

  37. Boa Noite !
    Este módulo pode ser usado externo ? Com um domo ?
    Também pode ser ligado em qualquer porta analogia ou somente na A0..
    Uso um Arduino 2560.
    Obrigado .

    1. Pode ser conectado em qualquer porta analógica

  38. Qual melhor método para fazer a plotagem desses valores num grafico?

  39. Olá, muito bom o post, adorei o projeto, só que estou em dificuldade em achar o Display Oled I2C Azul Amarelo, Gostaria de ajuda para programar em um LCDC 1602BYY.
    Obrigado!

  40. Bom,simples e funcional!Nota 10.

    1. Valeu Edward!

      Abraço.

      Adilson – Equipe MakerHero

  41. Muito interessante o projeto, pode ser facilmente adaptado para operar em uma estação.
    Vlw!

    1. Valeu Carlos !

      Abraço

      Adilson – Equipe MakerHero