In this article we look at a ambient light digital 16-bit resolution sensor – this time its the VEML7700 and we will connect it to an Adafruit Feather M0 running Circuitpython
This is the sensor that I bought for this
Lets look at some information regarding the sensor from the manufacturer
The VEML7700 is a high accuracy ambient light digital 16-bit resolution sensor. It includes a high sensitive photo diode, a low noise amplifier, a 16-bit A/D converter and supports an easy to use I2C bus communication interface.
The ambient light result is as digital value available
FEATURES
Integrated modules: ambient light sensor (ALS)
Supply voltage range VDD: 2.5 V to 3.6 V
Communication via I2C interface
Floor life: 72 h, MSL 4, according to J-STD-020
Low shut down current consumption: typ. 0.5 μA
AMBIENT LIGHT FUNCTION
Filtron TM technology adaption: close to real human eye response
O-Trim TM technology adoption: ALS output tolerance≤ 10 %
16-bit dynamic range for ambient light detection from 0 lx to about 120 klx with resolution down to 0.0036 lx/ct,supports low transmittance (dark) lens design
100 Hz and 120 Hz flicker noise rejection
Excellent temperature compensation
High dynamic detection resolution
Software shutdown mode control
Parts Required
Name | Link |
Adafruit Feather M0 Express | Adafruit (PID 3403) Feather M0 Express – Designed for CircuitPython – ATSAMD21 Cortex M0 |
VEML7700 | Adafruit 4162 VEML7700 Lux Sensor – I2C Light Sensor |
Connecting cables | Free shipping Dupont line 120pcs 20cm male to male + male to female and female to female jumper wire |
Schematic/Connection
Code Example
I used Mu for development
The following is based on a library , I copied the VEML7700 library and the adafruit_register to the lib folder to my Feather M0 Express – https://circuitpython.org/libraries
[codesyntax lang=”python”]
import time import board import busio import adafruit_veml7700 i2c = busio.I2C(board.SCL, board.SDA) veml7700 = adafruit_veml7700.VEML7700(i2c) while True: print("Ambient light:", veml7700.light) time.sleep(1.0)
[/codesyntax]
Output
Here is what I saw in Mu REPL window
Ambient light: 346
Ambient light: 345
Ambient light: 346
Ambient light: 345
Ambient light: 344
Ambient light: 341
Ambient light: 339
Ambient light: 338
Links
https://www.vishay.com/docs/84286/veml7700.pdf