adafruit_as726x

Driver for the AS726x spectral sensors

  • Author(s): Dean Miller

Implementation Notes

Hardware:

Software and Dependencies:

class adafruit_as726x.AS726x

AS726x spectral sensor base class.

MODE_0 = 0

Continuously gather samples of violet, blue, green and yellow. Orange and red are skipped and read zero.

MODE_1 = 1

Continuously gather samples of green, yellow, orange and red. Violet and blue are skipped and read zero.

MODE_2 = 2

Continuously gather samples of all colors

ONE_SHOT = 3

Gather a single sample of all colors and then stop

property driver_led

True when the driver LED is on. False otherwise.

property indicator_led

True when the indicator LED is on. False otherwise.

property driver_led_current

The current limit for the driver LED in milliamps. One of:

  • 12.5 mA

  • 25 mA

  • 50 mA

  • 100 mA

property indicator_led_current

The current limit for the indicator LED in milliamps. One of:

  • 1 mA

  • 2 mA

  • 4 mA

  • 8 mA

property conversion_mode

The conversion mode. One of:

property gain

The gain for the sensor

property integration_time

The integration time in milliseconds between 2.8 and 714 ms

start_measurement()

Begin a measurement.

This will set the device to One Shot mode and values will not change after data_ready until start_measurement() is called again or the conversion_mode() is changed.

read_channel(channel)

Read an individual sensor channel

read_calibrated_value(channel)

Read a calibrated sensor channel

property data_ready

True if the sensor has data ready to be read, False otherwise

property temperature

The temperature of the device in Celsius

property violet

Calibrated violet (450nm) value

property blue

Calibrated blue (500nm) value

property green

Calibrated green (550nm) value

property yellow

Calibrated yellow (570nm) value

property orange

Calibrated orange (600nm) value

property red

Calibrated red (650nm) value

property raw_violet

Raw violet (450nm) 16-bit value

property raw_blue

Raw blue (500nm) 16-bit value

property raw_green

Raw green (550nm) 16-bit value

property raw_yellow

Raw yellow (570nm) 16-bit value

property raw_orange

Raw orange (600nm) 16-bit value

property raw_red

Raw red (650nm) 16-bit value

class adafruit_as726x.AS726x_I2C(i2c_bus, address=73)

AS726x spectral sensor via I2C.

Parameters
  • i2c_bus (I2C) – The I2C bus the AS726x is connected to

  • address (int) – The I2C device address. Defaults to 0x49

Quickstart: Importing and using the AS726x

Here is an example of using the AS726x_I2C class. First you will need to import the libraries to use the sensor

import board
from adafruit_as726x import AS726x_I2C

Once this is done you can define your board.I2C object and define your sensor object

i2c = board.I2C()  # uses board.SCL and board.SDA
sensor = AS726x_I2C(i2c)

Now you have access to the different color attributes

violet = sensor.violet
blue = sensor.blue
green = sensor.green
yellow = sensor.yellow
orange = sensor.orange
red = sensor.red
class adafruit_as726x.AS726x_UART(uart)

AS726x spectral sensor via UART.

Parameters

uart (UART) – The UART connected to the sensor

Quickstart: Importing and using the AS726x

Here is an example of using the AS726x_I2C class. First you will need to import the libraries to use the sensor

import board
from adafruit_as726x import AS726x_UART

Once this is done you can define your board.UART object and define your sensor object

uart = board.UART()  # uses board.SCL and board.SDA
sensor = AS726x_UART(uart)

Now you have access to the different color attributes

violet = sensor.violet
blue = sensor.blue
green = sensor.green
yellow = sensor.yellow
orange = sensor.orange
red = sensor.red
read_channel(channel)

Read an individual sensor channel

read_calibrated_value(channel)

Read a calibrated sensor channel