Um sensor de luz ambiente é um fotodetector que mede o nível de luz externa para ajustar automaticamente o brilho da tela. Ele mede a iluminância em lux (lx) de 0 (escuridão total) a mais de 100.000 lx (luz solar direta). De acordo com a Nota de aplicação da Vishay, 2024, o brilho automático baseado em ALS reduz o consumo de energia da tela em 25–40% em comparação com o controle manual.
Principais pontos
Um sensor de luz ambiente (ALS) é um fotodetector semicondutor localizado no painel frontal do smartphone, próximo ao alto-falante do ouvido. Os primeiros telefones móveis com ALS surgiram em meados dos anos 2000 (Nokia N95, 2006), e hoje o sensor é instalado até mesmo em modelos de entrada a partir de US$ 100.
Os ALS modernos possuem correção espectral que aproxima sua sensibilidade à do olho humano (curva fotópica V(λ) com pico em 555 nm). O sensor mede a iluminância em lux — uma unidade que leva em conta a sensibilidade espectral do olho. Os fabricantes típicos são ams OSRAM (séries TSL, TMD), Vishay (série VEML) e Broadcom (série APDS).
| Parâmetro | Valor |
|---|---|
| Faixa | 0 – mais de 100.000 lx |
| Resolução | 0,1 lx (pouca luz) |
| Consumo | 0,1–0,5 mA |
| Tamanho | 1,5×1,0×0,4 mm |
| Pico espectral | 555 nm (V(λ)) |
Além do brilho automático, o sensor de luz ambiente é usado para calibração da câmera (determinar as condições de disparo), em aplicativos de monitoramento de iluminação (Light Meter) e em sistemas de casa inteligente. De acordo com a Strategy Analytics (2024), mais de 95% de todos os smartphones vendidos são equipados com ALS.
O ALS é baseado em um fotodiodo de silício que gera uma fotocorrente proporcional à intensidade da luz incidente. A fotocorrente é convertida em tensão através de um amplificador de transimpedância e digitalizada por um ADC integrado (12–20 bits). Para a correção espectral, são usados filtros ópticos de interferência ou absorção que atenuam os componentes IV e UV.
O olho humano percebe o brilho de forma logarítmica, portanto o ALS possui um amplificador logarítmico ou programável para operar de 0,1 lx (noite profunda) a mais de 100.000 lx (sol forte). De acordo com a folha de dados do Broadcom APDS-9306 (2024), o sensor muda automaticamente de ganho quando a iluminância varia mais de 100 vezes — o tempo de comutação não excede 100 ms.
Os ALS modernos (ams TSL2520) suportam a detecção de cintilação de lâmpadas LED e fontes fluorescentes a 50/100 Hz ou 60/120 Hz. Esta função é usada pelas câmeras para sincronizar o obturador — sem ela, aparecem faixas escuras nas fotos devido à cintilação das lâmpadas. O ALS detecta a frequência e a transmite ao processador ISP da câmera.
O brilho automático é a função principal do ALS. O algoritmo inclui 5 etapas: medição da iluminância, filtragem de ruído, cálculo do brilho alvo, suavização da transição e aplicação à tela. O brilho alvo típico para diferentes condições: 2–5 cd/m² à noite, 200–400 cd/m² no escritório (500 lx), 600–1000+ cd/m² ao sol (mais de 50.000 lx).
A partir do Android 9 (Pie), a Google introduziu curvas de brilho adaptativas que aprendem com o comportamento do usuário. Se o usuário alterar manualmente o brilho em um determinado nível de iluminação, o sistema lembra esse desvio e ajusta a curva. No Android 13+, um modelo de aprendizado de máquina no dispositivo (TensorFlow Lite) é usado para prever as preferências de brilho com base na hora do dia e no contexto.
Mudanças abruptas de brilho são desconfortáveis para os olhos. Os algoritmos modernos usam um filtro passa-baixa com constante de tempo de 0,5–3 segundos e um limite de taxa de variação do brilho (ramp rate limit). A Apple usa uma animação de transição de 200–400 ms ao alterar o brilho, tornando o processo imperceptível para o usuário. Saltos bruscos (mais de 5% por quadro) são bloqueados.
class AdaptiveBrightnessController {
private val smoothFactor = 0.15f
private var targetBrightness = 0.5f
fun calculateBrightness(
lux: Float,
userOverride: Float?
): Float {
val mapped = luxToBrightnessCurve(lux)
val adaptive = userOverride
?.let { it * 0.7f + mapped * 0.3f }
?: mapped
// Filtro passa-baixa (suavização)
targetBrightness = smoothFactor * adaptive +
(1f - smoothFactor) * targetBrightness
return targetBrightness
}
private fun luxToBrightnessCurve(
lux: Float
): Float = when {
lux < 10f -> 0.05f
lux < 200f -> 0.15f + lux * 0.0005f
lux < 5000f -> 0.25f + lux * 0.00005f
else -> 0.7f + lux * 0.000005f
}
}
Sensor.TYPE_LIGHT fornece a iluminância atual em lux. Este sensor pertence à categoria de sensores ambientais — não requer calibração e funciona imediatamente. A taxa de amostragem SENSOR_DELAY_NORMAL (200 ms) é suficiente para todos os cenários. Nenhuma permissão de usuário é necessária para o funcionamento do ALS.
Quando a iluminância muda abruptamente (sair de um túnel para a luz do sol), o ALS relata o valor com um atraso de 50–300 ms devido ao filtro passa-baixa integrado no chip do sensor. Isso evita a oscilação do brilho durante mudanças rápidas de luz (por exemplo, ao passar por postes de iluminação). O aplicativo pode filtrar ainda mais os dados através de uma média móvel com uma janela de 3–5 amostras para eliminar ruídos.
class LightSensorMonitor {
private val windowSize = 5
private val readings = LinkedList<Float>()
fun smoothLightReading(lux: Float): Float {
readings.add(lux)
if (readings.size > windowSize) {
readings.removeFirst()
}
return readings.average().toFloat()
}
fun detectLightChange(
currentLux: Float
): LightChange = when {
currentLux < 5f -> LightChange.DARK
currentLux < 200f -> LightChange.INDOOR
currentLux < 5000f -> LightChange.OUTDOOR_SHADE
else -> LightChange.DIRECT_SUNLIGHT
}
}
enum class LightChange {
DARK, INDOOR, OUTDOOR_SHADE, DIRECT_SUNLIGHT
}
O sensor de luz ambiente está presente em 99% dos smartphones modernos, mas para uma operação correta, verifique através de PackageManager.hasSystemFeature(FEATURE_SENSOR_LIGHT). Em casos excepcionais (modelos ultraeconômicos, tablets), o sensor pode estar ausente — o aplicativo deve tratar corretamente um retorno null.
Além do brilho automático, o sensor de luz ambiente é usado em fotografia e aplicativos de RA. O aplicativo Camera FV-5 usa ALS para seleção automática de exposição no modo manual. O ARCore ajusta o brilho de objetos virtuais com base na iluminação real, tornando as cenas de RA fotorrealistas.
A tela é o componente que mais consome energia de um smartphone: a 600 cd/m², consome 3–5 W. O brilho automático baseado em ALS reduz o brilho médio da tela em 30–50% em ambientes internos (200–500 lx) em comparação com a configuração manual máxima. De acordo com a pesquisa da DisplayMate (2024), os usuários com brilho automático ativado obtêm 25–40% mais vida útil da bateria do que aqueles que ajustam o brilho manualmente ao máximo. Ao ar livre com mais de 50.000 lx, o ALS aumenta o brilho para 800–1000 cd/m² para legibilidade da tela.
As câmeras de smartphones modernas usam dados do ALS para selecionar automaticamente um modo de disparo: HDR em contraluz, modo noturno com iluminação abaixo de 10 lx, modo retrato com iluminação de estúdio. De acordo com o whitepaper do Qualcomm Snapdragon ISP (2024), o ALS permite que a câmera determine o tipo de fonte de luz — luz do dia, incandescente, LED ou fluorescente — em 100 ms e ajuste o balanço de branco antes do botão do obturador ser pressionado.
Os sensores de luz ambiente sob a tela estão se tornando o padrão em 2025–2026. Samsung e Apple já estão patenteadas tecnologias para colocar o ALS sob os pixels da tela OLED. O desenvolvimento de sensores espectrais permitirá medir não apenas a intensidade, mas também a temperatura de cor da luz (CCT) — isso melhorará o True Tone e o balanço de branco automático da câmera.
Perguntas frequentes
O sensor de luz ambiente mede o nível de luz externa em lux, o sistema o mapeia para uma curva de brilho e define o brilho correspondente da tela. No Android 9+, a curva se adapta às preferências do usuário usando aprendizado de máquina no dispositivo.
O sensor está localizado na parte superior da tela, próximo ao alto-falante do ouvido e à câmera frontal. Na maioria dos telefones modernos, ele está oculto sob o vidro da tela e não é visível a olho nu. Em modelos mais antigos, o sensor se parece com um pequeno ponto.
Razões: sujidade do sensor (poeira, marcas de gordura), um vidro protetor grosso cobrindo a área do sensor ou uma falha na curva de adaptação. Limpe a parte superior da tela com um pano macio. Se não ajudar, desligue e ligue o brilho automático nas configurações.
Não — a câmera e o ALS são sensores diferentes. A câmera captura uma imagem RGB, enquanto o ALS mede a intensidade da luz com um fotodiodo com correção espectral. Os aplicativos luxímetro que usam a câmera têm um erro de 50–100% em comparação com o ALS.
Disque *#0*# no aplicativo de telefone (para Samsung) para entrar no menu de engenharia e selecione Light Sensor. Para outras marcas, use o Sensor Test da Google Play. Aponte o telefone para uma fonte de luz — as leituras devem mudar de 0 para mais de 10.000 lx.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também