In our previously published basic DIY guides around light and Arduino, like Light Measurement With Arduino and LDR or guide like Arduino LDR and LED Based Light Meter used plain LDR as basic electronic component. Ambient Light Sensor is used in electronic devices. SI Unit of ambient light is Luminance (lux). Here is Basics, Setup & Code for Arduino TEMT6000 Ambient Light Sensor. LDR and Ambient Light Sensor are not exactly same. Obviously going to too much basic will return same physics behind.
Arduino TEMT6000 Ambient Light Sensor
The technology behind ambient light sensors is made equivalent to light sensitivity of human eye-brain. Ambient light sensor breakouts has optical IC which is integrated with the amplifier. It is possible good idea to read the official product information, datasheets :
1 2 | http://www.vishay.com/photo-detectors/list/product-81579/tab/specifications/ https://www.vishay.com/docs/81579/temt6000.pdf |
There are also other companies who manufactures ambient light sensors. Some has dual-diode implementation to approximate the idea of human eye response to light under different lighting conditions. They have a wider range of performance allowing accurate measurements in lighting environments ranging from low to 220K lux. So, with these component and Arduino, we can actually build professional grade light meter used in photography. As it mimic human eye, they are indifferent to infrared or UV light, less responsive in too low light. If they are also supported then manufacturers mention it. The standard performance of an ambient light sensor should be less than 1 lux in the night and over 10 000 lux at noon.
---
TEMT6000 Ambient Light Sensor : Circuit Diagram and Code for Arduino
This is easy part. We just need to connect power (VCC), ground (GND), and the signal pin (SIG) to analog input. You can power this with 3.3 V or as written/printed by manufacturer. Voltage should not exceed 6V. Here is kind of circuit diagram :
If you just use the serial monitor or Arduino IDE to check whether it is working, here is easy code :
1 2 3 4 5 6 7 8 9 | int temt6000Pin = 0; void setup() { Serial.begin(9600); } void loop() { int value = analogRead(temt6000Pin); Serial.println(value); delay(100); } |
That delay(100)
is set to 100
for easy reading.