O ML8511 é um sensor bastante simples que pega um diodo UV e um circuito amplificador e unifica em um só chip para medir a radiação UV.
Aplicações
- Smartphones;
- Relógio;
- Estação meteorológicas;
- Navegação de bicicleta;
- Acessórios;
- Jogos.
Especificações
- Voltagem de Trabalho: 2,7V a 3,6V;
- Consumo:
- 300uA Funcionando;
- 0,1uA Standby.
- Tamanho: (4,0mm x 3,7mm x 0,73mm;
- Interface de comunicação: Saída analógica de 0,95v a 3v.
Faixas de Leitura
- Sensível a UV-A e UV-B;
- Comprimento de onda máxima sensível: 365nm.
O que é Radiação UV?
A radiação ultravioleta corresponde a um dos espectros de luz emitidos pelo sol, e é dividida em três tipos UVA, UVB e UVC sendo prejudicial aos humanos a UVA e UVB.

Peculiaridades
O ML8511 é um sensor que tem uma característica de ser um sensor 100% aberto, sendo protegido apenas por uma possível camada de resina.

A composição interna do ML8511 é basicamente um LED UV sendo usado como gerador de energia que fornece uma tensão na entrada do amplificador proporcionalmente a intensidade UV, ou seja, o mesmo circuito de outros módulos presente no mercado.

Leitura
Infelizmente todas as pesquisas realizadas para buscar uma relação mais precisa de leitura se resumem a uma regra de três, todos com base nesse gráfico:

Outra questão é que existe uma variação de tensão em relação a temperatura ambiente e não existe se quer nenhuma indicação numérica no datasheet, sendo muito vago. No entanto, o sensor se mostrou eficiente exibindo um resultado que coincidia com o Índice UV em Lauro de Freitas às 12h, variando de 5 a 6 no índice e apresentando quedas com passagem de nuvens.
Por mais que a fabricante não tenha disponibilizado uns dados mais precisos, em caso de índice UV não faz tanta falta.
Dimensões
Com apenas 4.0mm x 3.7mm x 0.73mm o ML8511 destaque-se dos demais módulos presentes no mercado, pois consegue reunir um LED UV e um amplificador em apenas um único chip.

ML8511 com Arduino
Para usar o ML8511 com qualquer microcontrolador é necessário que tenha ADC (Conversor Analógico para Digital) visto que o sensor fornece uma saída analógica. No caso do Arduino, mais especificamente o que possui ATMEGA328P, não há problemas pois tem 8 portas ADC de 10bits.
Diagrama
Como de costume, sempre bom verificar os níveis de tensão usadas nos módulos, visto que grande maioria dos sensores trabalham com 3v3.
Um detalhe que é crucial para o funcionamento do ML8511 é o pino EN ligado em nível lógico alto em 3v3, caso não esteja o chip ficará em sleep mode. Em hipótese alguma, utilize um pino digital para fazer o controle do modo de operação do sensor sem antes reduzir a tensão de 5v para 3v3.

ML8511 Arduino Código
O código abaixo é uma modificação do exemplo da biblioteca ML8511, o comentário deixado pelo autor indica a conexão ao um dos pinos digitais do Arduino na porta EN do sensor, pois essa biblioteca tem a função de ligar e desligar o sensor. Entretanto, fazer essa conexão de forma direta com o Arduino sem fazer uma divisão de tensão de 5v para 3v3 pode prejudicar ou até mesmo queimar o ML8511.
Seguindo exemplo do digrama acima, o código abaixo não trabalhará com ativação e desativação do ML8511, por esse motivo existe um jumper do 3v3 para o pino EN.
#include <Arduino.h>
#include <ML8511.h>
#define ANALOGPIN A7
ML8511 light(ANALOGPIN);
void setup()
{
Serial.begin(115200);
light.enable();
Serial.print("mW cm^2");
Serial.print("\t");
Serial.print("DUV Index");
Serial.print("\t");
Serial.println();
}
void loop()
{
float UV = light.getUV();
float DUV = light.estimateDUVindex(UV)/100;
Serial.print(UV, 4);
Serial.print("\t");
Serial.print(DUV, 1);
Serial.println();
delay(1000);
}
Funcionamento
No vídeo abaixo foi usado o display OLED 0,96″ para exibir o valor lido do sensor UV, devido a taxa de atualização do display e da câmera fica um efeito parcialmente apagado.
Considerações
O ML8511 cumpre muito bem para o que foi fabricado, sendo uma ótima opção para quem busca um sensor UV pequeno sem exigência de alta precisão.