Сензорът за осветеност е фотоприемник, измерващ нивото на външна светлина за автоматично регулиране на яркостта на дисплея. Той определя осветеността в луксове (lx) от 0 (пълна тъмнина) до 100 000+ lx (директна слънчева светлина). Според Vishay Application Note, 2024, автоматичната яркост базирана на ALS намалява консумацията на енергия на дисплея с 25–40% в сравнение с ръчното управление.
Основни точки
Сензор за осветеност (Ambient Light Sensor, ALS) — полупроводников фотоприемник, разположен на предния панел на смартфона до говорителя за разговор. Първите мобилни телефони с ALS се появиха в средата на 2000-те (Nokia N95, 2006), а днес сензорът се инсталира дори в бюджетни модели от 100 долара.
Съвременните ALS имат спектрална корекция, доближаваща чувствителността им до човешкото око (фотопична крива V(λ) с пик при 555 nm). Сензорът измерва осветеност в луксове — единица, отчитаща спектралната чувствителност на окото. Типични производители — ams OSRAM (серии TSL, TMD), Vishay (серия VEML), Broadcom (серия APDS).
| Параметър | Стойност |
|---|---|
| Обхват | 0 – 100 000+ lx |
| Разделителна способност | 0.1 lx (слаба светлина) |
| Консумация | 0.1–0.5 mA |
| Размер | 1.5×1.0×0.4 mm |
| Спектрален пик | 555 nm (V(λ)) |
Освен за автоматична яркост, сензорът за осветеност се използва за калибриране на камера (определяне на условията за снимане), в приложения за мониторинг на осветление (Light Meter) и в системи за интелигентен дом. Според Strategy Analytics (2024), повече от 95% от всички продадени смартфона са оборудвани с ALS.
В основата на ALS стои силициев фотодиод, генериращ фототок, пропорционален на интензитета на падащата светлина. Фототокът се преобразува в напрежение чрез трансимпедансен усилвател и се дигитализира от вграден ADC (12–20 бита). За спектрална корекция се използват интерферентни или абсорбционни оптични филтри, отслабващи IR и UV компонентите.
Човешкото око възприема яркостта логаритмично, поради което ALS има логаритмичен или програмируем усилвател за работа в диапазон от 0.1 lx (дълбока нощ) до 100 000+ lx (ярко слънце). Според Broadcom APDS-9306 Datasheet (2024), сензорът автоматично превключва усилването при промяна на осветеността повече от 100 пъти — времето за превключване не надвишава 100 ms.
Съвременните ALS (ams TSL2520) поддържат откриване на трептене на светлина от LED лампи и флуоресцентни източници с честота 50/100 Hz или 60/120 Hz. Тази функция се използва от камерите за синхронизация на затвора — без нея на снимките се появяват тъмни ивици от трептенето на лампите. ALS записва честотата и я предава на ISP процесора на камерата.
Автоматична яркост — основната функция на ALS. Алгоритъмът включва 5 етапа: измерване на осветеност, филтриране на шум, изчисляване на целева яркост, изглаждане на прехода и прилагане към дисплея. Типична целева яркост за различни условия: 2–5 cd/m² през нощта, 200–400 cd/m² в офис (500 lx), 600–1000+ cd/m² на слънце (50 000+ lx).
От Android 9 (Pie) нататък, Google въведе адаптивни криви на яркостта, които се учат от поведението на потребителя. Ако потребителят ръчно промени яркостта при определено осветление, системата запомня това отклонение и коригира кривата. На Android 13+ се използва модел на машинно обучение на устройството (TensorFlow Lite) за прогнозиране на предпочитанията за яркост според времето на деня и контекста.
Рязката промяна на яркостта е неудобна за очите. Съвременните алгоритми използват филтър на ниските честоти с времева константа 0.5–3 секунди и ограничение на скоростта на промяна на яркостта (ramp rate limit). Apple използва анимация на прехода 200–400 ms при промяна на яркостта, което прави процеса незабележим за потребителя. Рязките скокове (повече от 5% на кадър) се блокират.
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
// Филтър на ниските честоти (изглаждане)
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 предоставя текущата осветеност в луксове. Сензорът принадлежи към категорията Environmental Sensors — не изисква калибриране и работи веднага. Честотата на запитване — SENSOR_DELAY_NORMAL (200 ms) е достатъчна за всички сценарии. За работата на ALS не са необходими разрешения от потребителя.
При рязка промяна на осветеността (излизане от тунел на слънце) ALS показва стойност с закъснение 50–300 ms поради вградения филтър на ниските честоти в чипа на сензора. Това предотвратява трептенето на яркостта при бързи промени на светлината (например при преминаване под улични лампи). Приложението може допълнително да филтрира данните чрез подвижна средна (moving average) с прозорец от 3–5 проби за премахване на шума.
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
}
Сензорът за осветеност присъства в 99% от съвременните смартфони, но за коректна работа проверявайте чрез PackageManager.hasSystemFeature(FEATURE_SENSOR_LIGHT). В изключителни случаи (ултрабюджетни модели, таблети) сензорът може да липсва — приложението трябва правилно да обработва връщането на null.
Освен за автоматична яркост, сензорът за осветеност се използва в фотографията и AR приложенията. Приложението Camera FV-5 използва ALS за автоматичен избор на експозиционна двойка при снимане в ръчен режим. ARCore коригира яркостта на виртуалните обекти в зависимост от реалното осветление, правейки AR сцените фотореалистични.
Дисплеят — най-енергоемкият компонент на смартфона: при яркост 600 cd/m² консумира 3–5 W. Автоматичната яркост базирана на ALS намалява средната яркост на дисплея с 30–50% на закрито (200–500 lx) в сравнение с максималната ръчна настройка. Според проучване на DisplayMate (2024), потребителите с включена автоматична яркост получават 25–40% повече време за работа на батерията от тези, които настройват яркостта ръчно на максимално ниво. На открито при 50 000+ lx ALS, напротив, увеличава яркостта до 800–1000 cd/m² за четливост на екрана.
Съвременните камери на смартфони използват данни от ALS за автоматичен избор на режим на снимане: HDR при контрова светлина, нощен режим при осветеност под 10 lx, портретен режим при студийно осветление. Според Qualcomm Snapdragon ISP Whitepaper (2024), ALS позволява на камерата за 100 ms да определи типа на източника на светлина — дневна светлина, лампа с нажежаема жичка, LED или флуоресцентна — и да коригира баланса на бялото преди натискане на бутона на затвора.
Сензори за осветеност под дисплея (under-display ALS) стават стандарт през 2025–2026 г. Samsung и Apple вече патентоват технологии за поставяне на ALS под пикселите на OLED дисплея. Развитието на спектралните сензори ще позволи измерване не само на интензитета, но и на цветната температура на светлината (CCT) — това ще подобри True Tone и автоматичния баланс на бялото на камерата.
Често задавани въпроси
Сензорът за осветеност измерва нивото на външна светлина в луксове, системата го сравнява с кривата на яркост и задава съответната яркост на дисплея. На Android 9+ кривата се адаптира към предпочитанията на потребителя чрез машинно обучение на устройството.
Сензорът се намира в горната част на екрана, до говорителя за разговор и предната камера. В повечето съвременни телефони е скрит под стъклото на дисплея и не се вижда с просто око. При по-старите модели сензорът изглежда като малка точка.
Причини: замърсяване на сензора (прах, мазни следи), дебело защитно стъкло, покриващо областта на сензора, или повреда в кривата на адаптация. Избършете горната част на екрана с мека кърпа. Ако не помага — изключете и включете автоматичната яркост в настройките.
Не — камерата и ALS са различни сензори. Камерата заснема изображение в RGB формат, ALS измерва интензитета на светлината със спектрално коригиран фотодиод. Приложенията-луксметри, използващи камерата, дават грешка 50–100% в сравнение с ALS.
Наберете в телефонното приложение *#0*# (за Samsung) за влизане в инженерното меню и изберете Light Sensor. За други марки използвайте Sensor Test от Google Play. Насочете телефона към източник на светлина — стойностите трябва да се променят от 0 до 10 000+ lx.
Резюме
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също