Illum sensor


This sample reads the value of the illuminance sensor on the 4-Sensors leaf and displays it on the serial monitor.

Leaf to use

Use the following leaves.

Type Name Q’ty
AZ62 Connector Cover 1
AI01 4-Sensors 1
AZ01 USB 1
AP03 STM32 MCU 1
AV01 CR2032 1
CR2032 coin cell battery 1
M2*15mm screw 2


Let’s assemble leaves as shown in the figure below.


Source code

Write the following program1 in the Arduino IDE.

In order to make this sketch work, you need to install the libraries If you haven’t installed it yet, refer to Environment to install it.

//  Illuminance meter
//    (c) 2020 Trillion-Node Study Group
//    Released under the MIT license
//      Rev.00 2020/05/05  First release
#include <Wire.h>
#include <ClosedCube_OPT3001.h>

#define OPT3001_ADDRESS 0x45      // ADDR pin = VCC

ClosedCube_OPT3001 illum;

float dataIllum;

void setup() {
  // initialize serial communication at 115200 second per second:
  // initialize i2c communication with OPT3001:


  OPT3001_Config illumConfig;
  OPT3001_ErrorCode illumErrorConfig;


  illumConfig.RangeNumber = B1100;               // automatic full scale
  illumConfig.ConvertionTime = B1;               // convertion time = 800ms
  illumConfig.ModeOfConversionOperation = B11;   // continous conversion
  illumConfig.Latch = B0;                        // hysteresis-style

  illumErrorConfig = illum.writeConfig(illumConfig);

  if(illumErrorConfig != NO_ERROR){
    illumErrorConfig = illum.writeConfig(illumConfig);   //retry

void loop() {
    OPT3001 result = illum.readResult();

    if(result.error == NO_ERROR){
      dataIllum = result.lux;

    Serial.println("Lum[lx] = " + String(dataIllum));




Execution Results

Open the serial monitor of the Arduino IDE and set the baud rate to 115200 bps and you will see the illuminance.

Back to previous page

  1. The program is the same as AVR MCU Leaf. ↩︎

Last modified 15.03.2021