Using the Circuit Playground Express (CPX) Library
The value of the light sensor is available as cpx.light
. You can use this, for example, to plot light levels over time or trigger an alarm if the value gets high (like when an intruder turns on the lights).
The example below uses the plot capability of the Mu editor to plot light readings. The time.sleep function waits a tenth of a second between values.
# SPDX-FileCopyrightText: 2017 Kattni Rembor for Adafruit Industries # # SPDX-License-Identifier: MIT import time from adafruit_circuitplayground.express import cpx while True: print((cpx.light, )) time.sleep(0.1)
When you run this program with the Mu editor, open the REPL via the Serial button to see it print out values for the light. The numbers will get higher with bright light (about 7500 next to white on a monitor), and go lower you put a finger on the sensor (below a thousand covering the board with your hands).
In the code above, the numbers are printed as Python tuples, grouped fixed values, so the values are printed in parenthesis with a comma. Why print a tuple verses just the number?
Click the Mu Plotter button. The plotter pulls out next to the REPL/Serial window and you get a graph of the light value over time. Go ahead and try covering the sensor and putting it up to light to see the changes.
Using Lower-Level Library Calls With the Light Sensor
To read the light sensor, you will need three libraries:
-
analogio
- to access the analog values from the sensor -
board
- to use the pin name of the light sensor -
time
- to read values in specific intervals
The analogio
function AnalogIn
takes the board's light sensor pin and creates an object that will return the value of the sensor when we need it.
In the simple example, the light sensor value is read forever (in a while True:
loop) and it prints out the sensor's value every tenth of a second (10 times a second).
# SPDX-FileCopyrightText: 2018 Anne Barela for Adafruit Industries # # SPDX-License-Identifier: MIT import time import analogio import board # Create the light sensor object to read from light = analogio.AnalogIn(board.LIGHT) # Do readings, be sure to pause between readings while True: print((light.value, )) time.sleep(0.1)
Page last edited January 22, 2025
Text editor powered by tinymce.