Czujnik światła to fotodetektor mierzący poziom światła zewnętrznego w celu automatycznej regulacji jasności wyświetlacza. Określa natężenie oświetlenia w luksach (lx) od 0 (całkowita ciemność) do 100 000+ lx (bezpośrednie światło słoneczne). Według Vishay Application Note, 2024, automatyczna jasność oparta na ALS zmniejsza zużycie energii wyświetlacza o 25–40% w porównaniu z ręcznym sterowaniem.
Najważniejsze
Czujnik światła (Ambient Light Sensor, ALS) to półprzewodnikowy fotodetektor umieszczony na przednim panelu smartfona obok głośnika słuchawkowego. Pierwsze telefony komórkowe z ALS pojawiły się w połowie lat 2000. (Nokia N95, 2006), a dziś czujnik jest instalowany nawet w budżetowych modelach kosztujących od 100 dolarów.
Nowoczesne ALS mają korekcję widmową zbliżającą ich czułość do ludzkiego oka (krzywa fotopowa V(λ) z pikiem przy 555 nm). Czujnik mierzy natężenie oświetlenia w luksach — jednostce uwzględniającej czułość widmową oka. Typowi producenci — ams OSRAM (serie TSL, TMD), Vishay (seria VEML), Broadcom (seria APDS).
| Parametr | Wartość |
|---|---|
| Zakres | 0 – 100 000+ lx |
| Rozdzielczość | 0.1 lx (słabe światło) |
| Pobór mocy | 0.1–0.5 mA |
| Wymiary | 1.5×1.0×0.4 mm |
| Pik widmowy | 555 nm (V(λ)) |
Oprócz automatycznej jasności, czujnik światła jest używany do kalibracji aparatu (określanie warunków fotografowania), w aplikacjach do monitorowania oświetlenia (Light Meter) oraz w systemach inteligentnego domu. Według Strategy Analytics (2024), ponad 95% wszystkich sprzedawanych smartfonów jest wyposażonych w ALS.
Podstawą ALS jest krzemowa fotodioda generująca fotoprąd proporcjonalny do natężenia padającego światła. Fotoprąd jest przekształcany na napięcie przez wzmacniacz transimpedancyjny i digitalizowany przez wbudowany przetwornik ADC (12–20 bitów). Do korekcji widmowej stosuje się interferencyjne lub absorpcyjne filtry optyczne tłumiące składową podczerwoną i ultrafioletową.
Ludzkie oko postrzega jasność logarytmicznie, dlatego ALS ma wzmacniacz logarytmiczny lub programowalny do pracy w zakresie od 0.1 lx (głęboka noc) do 100 000+ lx (jasne słońce). Według Broadcom APDS-9306 Datasheet (2024), czujnik automatycznie przełącza wzmocnienie przy zmianie oświetlenia ponad 100-krotnej — czas przełączania nie przekracza 100 ms.
Nowoczesne ALS (ams TSL2520) obsługują detekcję migotania światła z lamp LED i fluorescencyjnych o częstotliwości 50/100 Hz lub 60/120 Hz. Ta funkcja jest używana przez aparaty do synchronizacji migawki — bez niej na zdjęciach pojawiają się ciemne pasy od migotania lamp. ALS rejestruje częstotliwość i przekazuje ją do procesora ISP aparatu.
Automatyczna jasność — główna funkcja ALS. Algorytm obejmuje 5 etapów: pomiar natężenia oświetlenia, filtracja szumów, obliczenie docelowej jasności, wygładzanie przejścia i zastosowanie na wyświetlaczu. Typowa docelowa jasność dla różnych warunków: 2–5 cd/m² w nocy, 200–400 cd/m² w biurze (500 lx), 600–1000+ cd/m² na słońcu (50 000+ lx).
Począwszy od Android 9 (Pie), Google wprowadziło adaptacyjne krzywe jasności, które uczą się na zachowaniu użytkownika. Jeśli użytkownik ręcznie zmienia jasność przy danym oświetleniu, system zapamiętuje to odchylenie i koryguje krzywą. W Android 13+ używany jest model uczenia maszynowego na urządzeniu (TensorFlow Lite) do przewidywania preferencji jasności w zależności od pory dnia i kontekstu.
Gwałtowna zmiana jasności jest niekomfortowa dla oczu. Nowoczesne algorytmy używają filtra dolnoprzepustowego ze stałą czasową 0.5–3 sekund i ograniczeniem szybkości zmiany jasności (ramp rate limit). Apple stosuje animację przejścia 200–400 ms przy zmianie jasności, co czyni proces niezauważalnym dla użytkownika. Gwałtowne skoki (ponad 5% na klatkę) są blokowane.
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
// Filtr dolnoprzepustowy (wygładzanie)
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 udostępnia bieżące natężenie oświetlenia w luksach. Czujnik należy do kategorii Environmental Sensors — nie wymaga kalibracji i działa od razu. Częstotliwość odczytu — SENSOR_DELAY_NORMAL (200 ms) jest wystarczająca dla wszystkich scenariuszy. Do pracy ALS nie są wymagane uprawnienia użytkownika.
Przy gwałtownej zmianie oświetlenia (wyjście z tunelu na słońce) ALS pokazuje wartość z opóźnieniem 50–300 ms z powodu wbudowanego filtra dolnoprzepustowego w układzie scalonym czujnika. Zapobiega to migotaniu jasności przy szybkich zmianach światła (np. podczas przejazdu pod latarniami). Aplikacja może dodatkowo filtrować dane przez średnią ruchomą (moving average) z oknem 3–5 próbek w celu eliminacji szumów.
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
}
Czujnik światła jest obecny w 99% nowoczesnych smartfonów, ale dla poprawnego działania sprawdzaj przez PackageManager.hasSystemFeature(FEATURE_SENSOR_LIGHT). W wyjątkowych przypadkach (ultrabudżetowe modele, tablety) czujnik może być nieobecny — aplikacja powinna poprawnie obsługiwać zwrócenie null.
Oprócz automatycznej jasności, czujnik światła jest używany w fotografii i aplikacjach AR. Aplikacja Camera FV-5 wykorzystuje ALS do automatycznego wyboru pary ekspozycji podczas fotografowania w trybie ręcznym. ARCore koryguje jasność wirtualnych obiektów w zależności od rzeczywistego oświetlenia, czyniąc sceny AR fotorealistycznymi.
Wyświetlacz — najbardziej energochłonny komponent smartfona: przy jasności 600 cd/m² pobiera 3–5 W. Automatyczna jasność oparta na ALS zmniejsza średnią jasność wyświetlacza o 30–50% w pomieszczeniu (200–500 lx) w porównaniu z maksymalnym ręcznym ustawieniem. Według badań DisplayMate (2024), użytkownicy z włączoną automatyczną jasnością uzyskują 25–40% więcej czasu pracy na baterii niż ci, którzy ustawiają jasność ręcznie na maksymalny poziom. Na zewnątrz przy 50 000+ lx ALS przeciwnie, zwiększa jasność do 800–1000 cd/m² dla czytelności ekranu.
Nowoczesne aparaty smartfonów wykorzystują dane ALS do automatycznego wyboru trybu fotografowania: HDR przy świetle kontrowym, tryb nocny przy oświetleniu poniżej 10 lx, tryb portretowy przy oświetleniu studyjnym. Według Qualcomm Snapdragon ISP Whitepaper (2024), ALS umożliwia aparatowi w ciągu 100 ms określenie typu źródła światła — światło dzienne, żarówka, LED lub fluorescencyjne — i skorygowanie balansu bieli przed naciśnięciem przycisku migawki.
Czujniki światła pod ekranem (under-display ALS) stają się standardem w latach 2025–2026. Samsung i Apple już patentują technologie umieszczania ALS pod pikselami wyświetlacza OLED. Rozwój czujników widmowych umożliwi pomiar nie tylko intensywności, ale także temperatury barwowej światła (CCT) — poprawi to True Tone i automatyczny balans bieli aparatu.
Często zadawane pytania
Czujnik światła mierzy poziom światła zewnętrznego w luksach, system porównuje go z krzywą jasności i ustawia odpowiednią jasność wyświetlacza. W Android 9+ krzywa dostosowuje się do preferencji użytkownika za pomocą uczenia maszynowego na urządzeniu.
Czujnik znajduje się w górnej części ekranu, obok głośnika słuchawkowego i przedniego aparatu. W większości nowoczesnych telefonów jest ukryty pod szkłem wyświetlacza i niewidoczny gołym okiem. W starszych modelach czujnik wygląda jak mała kropka.
Przyczyny: zabrudzenie czujnika (kurz, tłuste ślady), grube szkło ochronne przykrywające obszar czujnika lub błąd w krzywej adaptacji. Przetrzyj górną część ekranu miękką ściereczką. Jeśli to nie pomoże — wyłącz i włącz automatyczną jasność w ustawieniach.
Nie — aparat i ALS to różne czujniki. Aparat rejestruje obraz w formacie RGB, ALS mierzy natężenie światła za pomocą fotodiody z korekcją widmową. Aplikacje-luksomierze wykorzystujące aparat dają błąd 50–100% w porównaniu z ALS.
Wybierz w aplikacji telefonu *#0*# (dla Samsung) aby wejść do menu inżynieryjnego i wybierz Light Sensor. Dla innych marek użyj Sensor Test z Google Play. Skieruj telefon na źródło światła — wskazania powinny zmieniać się od 0 do 10 000+ lx.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również