- If you are running a Feather (3.3V), connect Feather 3V to board VIN (red wire on STEMMA QT version)
- If you are running a 5V Arduino (Uno, etc.), connect Arduino 5V to board VIN (red wire on STEMMA QT version)
- Connect Feather or Arduino GND to board GND (black wire on STEMMA QT version)
- Connect Feather or Arduino SCL to board SCL (yellow wire on STEMMA QT version)
- Connect Feather or Arduino SDA to board SDA (blue wire on STEMMA QT version)
The final results should resemble the illustration above, showing an Adafruit Metro development board.
Installation
You can install the Adafruit VEML7700 Library for Arduino using the Library Manager in the Arduino IDE:
Click the Manage Libraries ... menu item, search for Adafruit VEML7700, and select the Adafruit VEML7700 library:
Then follow the same process for the Adafruit BusIO library.
Load Example
Open up File -> Examples -> Adafruit VEML7700 -> veml7700_test and upload to your Arduino wired up to the sensor.
Upload the sketch to your board and open up the Serial Monitor (Tools->Serial Monitor). You should see the the values for Lux, white light, and raw ambient light levels.
Example Code
The following example code is part of the standard library, but illustrates how you can retrieve sensor data from the VEML7700 for the Lux, white light and raw ambient light values:
#include "Adafruit_VEML7700.h" Adafruit_VEML7700 veml = Adafruit_VEML7700(); void setup() { Serial.begin(115200); while (!Serial) { delay(10); } Serial.println("Adafruit VEML7700 Test"); if (!veml.begin()) { Serial.println("Sensor not found"); while (1); } Serial.println("Sensor found"); // == OPTIONAL ===== // Can set non-default gain and integration time to // adjust for different lighting conditions. // ================= // veml.setGain(VEML7700_GAIN_1_8); // veml.setIntegrationTime(VEML7700_IT_100MS); Serial.print(F("Gain: ")); switch (veml.getGain()) { case VEML7700_GAIN_1: Serial.println("1"); break; case VEML7700_GAIN_2: Serial.println("2"); break; case VEML7700_GAIN_1_4: Serial.println("1/4"); break; case VEML7700_GAIN_1_8: Serial.println("1/8"); break; } Serial.print(F("Integration Time (ms): ")); switch (veml.getIntegrationTime()) { case VEML7700_IT_25MS: Serial.println("25"); break; case VEML7700_IT_50MS: Serial.println("50"); break; case VEML7700_IT_100MS: Serial.println("100"); break; case VEML7700_IT_200MS: Serial.println("200"); break; case VEML7700_IT_400MS: Serial.println("400"); break; case VEML7700_IT_800MS: Serial.println("800"); break; } veml.setLowThreshold(10000); veml.setHighThreshold(20000); veml.interruptEnable(true); } void loop() { Serial.print("raw ALS: "); Serial.println(veml.readALS()); Serial.print("raw white: "); Serial.println(veml.readWhite()); Serial.print("lux: "); Serial.println(veml.readLux()); uint16_t irq = veml.interruptStatus(); if (irq & VEML7700_INTERRUPT_LOW) { Serial.println("** Low threshold"); } if (irq & VEML7700_INTERRUPT_HIGH) { Serial.println("** High threshold"); } delay(500); }
You should get something resembling the following output when you open the Serial Monitor at 115200 baud:
Page last edited January 22, 2025
Text editor powered by tinymce.