

The VEML6070 is a high-precision UV light sensor manufactured by MODUL MOD, with the part ID GY-VEML6070. This sensor is designed to measure UVA and UVB radiation, providing a digital output via the I2C interface. Its compact design and low power consumption make it ideal for applications such as UV exposure monitoring, environmental sensing, and wearable devices.








The following table outlines the key technical details of the VEML6070:
| Parameter | Value |
|---|---|
| Operating Voltage | 2.7V to 5.5V |
| Communication Interface | I2C |
| UV Wavelength Range | 320 nm to 400 nm (UVA and UVB) |
| Operating Current | 1 µA (typical) |
| Resolution | 16-bit digital output |
| Operating Temperature | -40°C to +85°C |
| Package Type | Surface Mount (SMD) |
The VEML6070 module has the following pin configuration:
| Pin Name | Pin Number | Description |
|---|---|---|
| VCC | 1 | Power supply input (2.7V to 5.5V) |
| GND | 2 | Ground |
| SDA | 3 | I2C data line |
| SCL | 4 | I2C clock line |
| ADDR | 5 | Address selection pin (connect to GND or VCC) |
0x38.0x39.Below is an example of how to interface the VEML6070 with an Arduino UNO:
#include <Wire.h>
#include <Adafruit_VEML6070.h>
// Create an instance of the VEML6070 library
Adafruit_VEML6070 uv = Adafruit_VEML6070();
void setup() {
Serial.begin(9600); // Initialize serial communication at 9600 baud
Serial.println("VEML6070 UV Sensor Test");
// Initialize the VEML6070 sensor
if (!uv.begin(Adafruit_VEML6070::VEML6070_1_T)) {
Serial.println("Failed to initialize VEML6070. Check connections!");
while (1); // Halt execution if initialization fails
}
Serial.println("VEML6070 initialized successfully.");
}
void loop() {
// Read the UV intensity from the sensor
uint16_t uvReading = uv.readUV();
// Print the UV reading to the serial monitor
Serial.print("UV Reading: ");
Serial.println(uvReading);
// Delay for 1 second before the next reading
delay(1000);
}
Adafruit_VEML6070 library is used for simplified communication with the sensor. Install it via the Arduino Library Manager.VEML6070_1_T parameter sets the integration time for UV measurements. Adjust this based on your application.No Response from the Sensor
Inconsistent UV Readings
Sensor Overheating
Library Not Found
Adafruit_VEML6070 library from the Arduino Library Manager.Q1: Can the VEML6070 measure UV-C radiation?
A1: No, the VEML6070 is designed to measure UVA and UVB radiation in the 320 nm to 400 nm range.
Q2: What is the maximum I2C bus length for the VEML6070?
A2: The maximum bus length depends on the pull-up resistor values and the capacitance of the bus. For reliable communication, keep the bus length under 1 meter.
Q3: Can I use the VEML6070 with a 3.3V microcontroller?
A3: Yes, the VEML6070 operates at 2.7V to 5.5V, making it compatible with both 3.3V and 5V systems.
Q4: How do I calculate the UV index from the sensor's output?
A4: Use the manufacturer's formula or a library like Adafruit_VEML6070 to convert the raw digital output into a UV index value.