#include #include "Adafruit_VL6180X.h" #include Adafruit_VL6180X vl = Adafruit_VL6180X(); int Power = 11; int PIN = 12; #define NUMPIXELS 1 Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); void setup() { Serial.begin(115200); pixels.begin(); pinMode(Power,OUTPUT); digitalWrite(Power, HIGH); // wait for serial port to open on native usb devices while (!Serial) { delay(1); } Serial.println("Adafruit VL6180x test!"); if (! vl.begin()) { Serial.println("Failed to find sensor"); while (1); } Serial.println("Sensor found!"); } void loop() { float lux = vl.readLux(VL6180X_ALS_GAIN_5); Serial.print("Lux: "); Serial.println(lux); uint8_t range = vl.readRange(); uint8_t status = vl.readRangeStatus(); pixels.clear(); if (status == VL6180X_ERROR_NONE) { Serial.print("Range: "); Serial.println(range); pixels.setPixelColor(0, pixels.Color(15, 25, 205)); } else { pixels.setPixelColor(0, pixels.Color(255, 25, 25)); } // Some error occurred, print it out! if ((status >= VL6180X_ERROR_SYSERR_1) && (status <= VL6180X_ERROR_SYSERR_5)) { Serial.println("System error"); } else if (status == VL6180X_ERROR_ECEFAIL) { Serial.println("ECE failure"); } else if (status == VL6180X_ERROR_NOCONVERGE) { Serial.println("No convergence"); } else if (status == VL6180X_ERROR_RANGEIGNORE) { Serial.println("Ignoring range"); } else if (status == VL6180X_ERROR_SNR) { Serial.println("Signal/Noise error"); } else if (status == VL6180X_ERROR_RAWUFLOW) { Serial.println("Raw reading underflow"); } else if (status == VL6180X_ERROR_RAWOFLOW) { Serial.println("Raw reading overflow"); } else if (status == VL6180X_ERROR_RANGEUFLOW) { Serial.println("Range reading underflow"); } else if (status == VL6180X_ERROR_RANGEOFLOW) { Serial.println("Range reading overflow"); } pixels.show(); delay(50); }