/* This is a library written for the AS726X Spectral Sensor (Visible or IR) with I2C firmware specially loaded. SparkFun sells these at its website: www.sparkfun.com Written by Nathan Seidle & Andrew England @ SparkFun Electronics, July 12th, 2017 https://github.com/sparkfun/Qwiic_Spectral_Sensor_AS726X Do you like this library? Help support SparkFun. Buy a board! Development environment specifics: Arduino IDE 1.8.1 This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ---AVAILABLE FUNCTIONS--- AS726X(TwoWire &wirePort = Wire, byte gain = 3, byte measurementMode = 3); void takeMeasurements(); void takeMeasurementsWithBulb(); void printMeasurements(); byte getTemperature(); float getTemperatureF(); void setMeasurementMode(byte mode); boolean dataAvailable(); void enableIndicator(); void disableIndicator(); void setIndicatorCurrent(byte current); void enableBulb(); void disableBulb(); void setBulbCurrent(byte current); void softReset(); void setGain(byte gain); void setIntegrationTime(byte integrationValue); void enableInterrupt(); void disableInterrupt(); //Get the various color readings int getViolet(); int getBlue(); int getGreen(); int getYellow(); int getOrange(); int getRed(); //Get the various NIR readings int getR(); int getS(); int getT(); int getU(); int getV(); int getW(); //Returns the various calibration data float getCalibratedViolet(); float getCalibratedBlue(); float getCalibratedGreen(); float getCalibratedYellow(); float getCalibratedOrange(); float getCalibratedRed(); float getCalibratedR(); float getCalibratedS(); float getCalibratedT(); float getCalibratedU(); float getCalibratedV(); float getCalibratedW(); */ #include #include #include #include #include "AS726X.h" AS726X sensor; Adafruit_SSD1306 display(4); void setup() { Wire.begin(); Serial.begin(115200); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); sensor.begin(); } void loop() { display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); sensor.takeMeasurements(); //Prints all measurements //Visible readings display.setCursor(0, 0); display.println("R:"); display.setCursor(10, 0); display.println(sensor.getCalibratedRed(), 1); display.setCursor(0, 10); display.println("G:"); display.setCursor(10, 10); display.println(sensor.getCalibratedGreen(), 1); display.setCursor(0, 20); display.println("B:"); display.setCursor(10, 20); display.println(sensor.getCalibratedBlue(), 1); display.setCursor(60, 0); display.println("O:"); display.setCursor(70, 0); display.println(sensor.getCalibratedOrange(), 1); display.setCursor(60, 10); display.println("Y:"); display.setCursor(70, 10); display.println(sensor.getCalibratedYellow(), 1); display.setCursor(60, 20); display.println("V:"); display.setCursor(70, 20); display.println(sensor.getCalibratedViolet(), 1); display.display(); delay(500); }