Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 16 additions & 15 deletions examples/Example01_Basic_OneShot/Example01_Basic_OneShot.ino
Original file line number Diff line number Diff line change
Expand Up @@ -22,57 +22,58 @@
https://www.sparkfun.com/products/23518 - Qwiic Mini
*/

#include "SparkFun_AS7331.h"
#include <Arduino.h>
#include <Wire.h>
#include <SparkFun_AS7331.h>

SfeAS7331ArdI2C myUVSensor;

int8_t result = SFE_BUS_OK;

void setup() {
Serial.begin(115200);
while(!Serial){delay(100);};
Serial.println("UV LED Example.");
Serial.println("AS7331 UV A/B/C Command (One-shot) mode Example.");

Wire.begin();

// Initialize sensor and run default setup.
if(myUVSensor.begin() == false) {
Serial.println("Sensor failed to begin. Please check your wiring!");
Serial.println("Spinning...");
Serial.println("Halting...");
while(1);
}

Serial.println("Sensor began.");

// Set measurement mode and change device operating mode to measure.
if(myUVSensor.startMeasurement(MEAS_MODE_CMD) == false) {
if(myUVSensor.prepareMeasurement(MEAS_MODE_CMD) == false) {
Serial.println("Sensor did not get set properly.");
Serial.println("Spinning...");
Serial.println("Halting...");
while(1);
}

Serial.println("Set mode to command.");

}

void loop() {

// Send a start measurement command.
if(SFE_BUS_OK != myUVSensor.setStartStateMode(START_STATE_ENABLED))
if(kSTkErrOk != myUVSensor.setStartState(true))
Serial.println("Error starting reading!");

// Wait for a bit longer than the conversion time.
delay(2+(1 << myUVSensor.getConfigConversionTime()));
delay(2+myUVSensor.getConversionTimeMillis());

// Read UV values.
if(SFE_BUS_OK != myUVSensor.readAllUV())
if(kSTkErrOk != myUVSensor.readAllUV())
Serial.println("Error reading UV.");

Serial.print("UVA:");
Serial.print(myUVSensor.measures.uva);
Serial.print(myUVSensor.getUVA());
Serial.print(" UVB:");
Serial.print(myUVSensor.measures.uvb);
Serial.print(myUVSensor.getUVB());
Serial.print(" UVC:");
Serial.println(myUVSensor.measures.uvc);
Serial.println(myUVSensor.getUVC());

delay(2000);

};
}
28 changes: 16 additions & 12 deletions examples/Example02_CONT_Mode/Example02_CONT_Mode.ino
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@
https://www.sparkfun.com/products/23518 - Qwiic Mini
*/

#include "SparkFun_AS7331.h"
#include <Arduino.h>
#include <Wire.h>
#include <SparkFun_AS7331.h>

SfeAS7331ArdI2C myUVSensor;

int8_t result = SFE_BUS_OK;

const uint8_t interruptPin = 26;
volatile bool newDataReady = false;

Expand All @@ -37,28 +37,32 @@ void setup() {
while(!Serial){delay(100);};
Serial.println("AS7331 UV A/B/C Continuous mode example.");

Wire.begin();

// Configure Interrupt.
pinMode(interruptPin, INPUT);
attachInterrupt(digitalPinToInterrupt(interruptPin), dataReadyInterrupt, RISING);

// Initialize sensor and run default setup.
if(myUVSensor.begin() == false) {
Serial.println("Sensor failed to begin. Please check your wiring!");
Serial.println("Spinning...");
Serial.println("Halting...");
while(1);
}

Serial.println("Sensor began.");

// Set the delay between measurements so that the processor can read out the
// results without interfering with the ADC.
// Set break time to 900us (112 * 8us) to account for the time it takes to poll data.
if(SFE_BUS_OK != myUVSensor.setBreakTime(112)) {
if(kSTkErrOk != myUVSensor.setBreakTime(112)) {
Serial.println("Sensor did not set break time properly.");
Serial.println("Spinning...");
Serial.println("Halting...");
while(1);
}

// Set measurement mode and change device operating mode to measure.
if(myUVSensor.startMeasurement(MEAS_MODE_CONT) == false) {
if(myUVSensor.prepareMeasurement(MEAS_MODE_CONT) == false) {
Serial.println("Sensor did not get set properly.");
Serial.println("Spinning...");
while(1);
Expand All @@ -67,7 +71,7 @@ void setup() {
Serial.println("Set mode to continuous. Starting measurement...");

// Begin measurement.
if(SFE_BUS_OK != myUVSensor.setStartStateMode(START_STATE_ENABLED))
if(kSTkErrOk != myUVSensor.setStartState(true))
Serial.println("Error starting reading!");

}
Expand All @@ -78,15 +82,15 @@ void loop() {
if(newDataReady) {
newDataReady = false;

if(SFE_BUS_OK != myUVSensor.readAllUV())
if(kSTkErrOk != myUVSensor.readAllUV())
Serial.println("Error reading UV.");

Serial.print("UVA:");
Serial.print(myUVSensor.measures.uva);
Serial.print(myUVSensor.getUVA());
Serial.print(" UVB:");
Serial.print(myUVSensor.measures.uvb);
Serial.print(myUVSensor.getUVB());
Serial.print(" UVC:");
Serial.println(myUVSensor.measures.uvc);
Serial.println(myUVSensor.getUVC());
}

}
Expand Down
24 changes: 13 additions & 11 deletions examples/Example03_SYNS_Mode/Example03_SYNS_Mode.ino
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@
https://www.sparkfun.com/products/23518 - Qwiic Mini
*/

#include "SparkFun_AS7331.h"
#include <Arduino.h>
#include <Wire.h>
#include <SparkFun_AS7331.h>

SfeAS7331ArdI2C myUVSensor;

int8_t result = SFE_BUS_OK;

const uint8_t synPin = 27;

const uint8_t interruptPin = 26;
Expand All @@ -40,6 +40,8 @@ void setup() {
while(!Serial){delay(100);};
Serial.println("AS7331 UV A/B/C Synchronous Start mode example.");

Wire.begin();

// Configure SYN pin.
pinMode(synPin, OUTPUT);
digitalWrite(synPin, HIGH); // Active low, so start high.
Expand All @@ -51,23 +53,23 @@ void setup() {
// Initialize sensor and run default setup.
if(myUVSensor.begin() == false) {
Serial.println("Sensor failed to begin. Please check your wiring!");
Serial.println("Spinning...");
Serial.println("Halting...");
while(1);
}

Serial.println("Sensor began.");

// Set measurement mode and change device operating mode to measure.
if(myUVSensor.startMeasurement(MEAS_MODE_SYNS) == false) {
if(myUVSensor.prepareMeasurement(MEAS_MODE_SYNS) == false) {
Serial.println("Sensor did not get set properly.");
Serial.println("Spinning...");
Serial.println("Halting...");
while(1);
}

Serial.println("Set mode to synchronous start (SYNS). Starting measurement...");

// Set device to be ready to measure.
if(SFE_BUS_OK != myUVSensor.setStartStateMode(START_STATE_ENABLED))
if(kSTkErrOk != myUVSensor.setStartState(true))
Serial.println("Error starting reading!");

// Send start toggle.
Expand All @@ -83,7 +85,7 @@ void loop() {
if(newDataReady) {
newDataReady = false;

if(SFE_BUS_OK != myUVSensor.readAllUV())
if(kSTkErrOk != myUVSensor.readAllUV())
Serial.println("Error reading UV.");

// Start next measurement
Expand All @@ -92,11 +94,11 @@ void loop() {
digitalWrite(synPin, HIGH);

Serial.print("UVA:");
Serial.print(myUVSensor.measures.uva);
Serial.print(myUVSensor.getUVA());
Serial.print(" UVB:");
Serial.print(myUVSensor.measures.uvb);
Serial.print(myUVSensor.getUVB());
Serial.print(" UVC:");
Serial.println(myUVSensor.measures.uvc);
Serial.println(myUVSensor.getUVC());
}

}
Expand Down
24 changes: 13 additions & 11 deletions examples/Example04_SYND_Mode/Example04_SYND_Mode.ino
Original file line number Diff line number Diff line change
Expand Up @@ -24,43 +24,45 @@
https://www.sparkfun.com/products/23518 - Qwiic Mini
*/

#include "SparkFun_AS7331.h"
#include <Arduino.h>
#include <Wire.h>
#include <SparkFun_AS7331.h>

SfeAS7331ArdI2C myUVSensor;

int8_t result = SFE_BUS_OK;

const uint8_t synPin = 27;

void setup() {
Serial.begin(115200);
while(!Serial){delay(100);};
Serial.println("AS7331 UV A/B/C Synchronous Start and End (SYND) mode example.");

Wire.begin();

// Configure SYN pin.
pinMode(synPin, OUTPUT);
digitalWrite(synPin, HIGH); // Active low, so start high.

// Initialize sensor and run default setup.
if(myUVSensor.begin() == false) {
Serial.println("Sensor failed to begin. Please check your wiring!");
Serial.println("Spinning...");
Serial.println("Halting...");
while(1);
}

Serial.println("Sensor began.");

// Set measurement mode and change device operating mode to measure.
if(myUVSensor.startMeasurement(MEAS_MODE_SYND) == false) {
if(myUVSensor.prepareMeasurement(MEAS_MODE_SYND) == false) {
Serial.println("Sensor did not get set properly.");
Serial.println("Spinning...");
Serial.println("Halting...");
while(1);
}

Serial.println("Set mode to synchronous start/end (SYND). Starting measurement...");

// Set device to be ready to measure.
if(SFE_BUS_OK != myUVSensor.setStartStateMode(START_STATE_ENABLED))
if(kSTkErrOk != myUVSensor.setStartState(true))
Serial.println("Error starting reading!");

// Send start toggle.
Expand All @@ -79,15 +81,15 @@ void loop() {
delay(1);
digitalWrite(synPin, HIGH);

if(SFE_BUS_OK != myUVSensor.readAllUV())
if(kSTkErrOk != myUVSensor.readAllUV())
Serial.println("Error reading UV.");

Serial.print("UVA:");
Serial.print(myUVSensor.measures.uva);
Serial.print(myUVSensor.getUVA());
Serial.print(" UVB:");
Serial.print(myUVSensor.measures.uvb);
Serial.print(myUVSensor.getUVB());
Serial.print(" UVC:");
Serial.println(myUVSensor.measures.uvc);
Serial.println(myUVSensor.getUVC());

// Start next measurement.
digitalWrite(synPin, LOW);
Expand Down
Loading