TurnerCyclops class

The Sensor sub-class for the Turner Cyclops-7F submersible fluorometer.

Base classes

class Sensor
The "Sensor" class is used for all sensor-level operations - waking, sleeping, and taking measurements.

Constructors, destructors, conversion operators

TurnerCyclops(int8_t powerPin, uint8_t adsChannel, float conc_std, float volt_std, float volt_blank, uint8_t i2cAddress = 0x48, uint8_t measurementsToAverage = 1)
Construct a new Turner Cyclops object - need the power pin, the ADS1X15 data channel, and the calibration info.
~TurnerCyclops()
Destroy the Turner Cyclops object.

Public functions

String getSensorLocation(void) -> String override
Get the pin or connection location between the mcu and the sensor.
bool addSingleMeasurementResult(void) -> bool override
Get the results from a single measurement.

Function documentation

TurnerCyclops::TurnerCyclops(int8_t powerPin, uint8_t adsChannel, float conc_std, float volt_std, float volt_blank, uint8_t i2cAddress = 0x48, uint8_t measurementsToAverage = 1)

Construct a new Turner Cyclops object - need the power pin, the ADS1X15 data channel, and the calibration info.

Parameters
powerPin

The pin on the mcu controlling power to the Cyclops-7F Use -1 if it is continuously powered.

  • The ADS1x15 requires an input voltage of 2.0-5.5V, but this library assumes the ADS is powered with 3.3V.
  • The Cyclops-7F itself requires a 3-15V power supply, which can be turned off between measurements.
adsChannel The analog data channel on the TI ADS1115 that the Cyclops is connected to (0-3).
conc_std

The concentration of the standard used for a 1-point sensor calibration. The concentration units should be the same as the final measuring units.

IDVariableUnits
CTurnerCyclops_Chlorophyllmicrograms per Liter (µg/L)
RTurnerCyclops_Rhodamineparts per billion (ppb)
FTurnerCyclops_Fluoresceinparts per billion (ppb)
PTurnerCyclops_Phycocyaninparts per billion (ppb)
ETurnerCyclops_Phycoerythrinparts per billion (ppb)
UTurnerCyclops_CDOMparts per billion (ppb)
OTurnerCyclops_CrudeOilparts per billion (ppb)
BTurnerCyclops_Brightenersparts per billion (ppb)
TTurnerCyclops_Turbiditynephelometric turbidity units (NTU)
ATurnerCyclops_PTSAparts per billion (ppb)
GTurnerCyclops_BTEXparts per million (ppm)
LTurnerCyclops_Tryptophanparts per billion (ppb)
DTurnerCyclops_RedChlorophyllmicrograms per Liter (µg/L)
volt_std The voltage (in volts) measured for the conc_std. This voltage should be the final voltage after accounting for any voltage dividers or gain settings.
volt_blank The voltage (in volts) measured for a blank. This voltage should be the final voltage after accounting for any voltage dividers or gain settings.
i2cAddress The I2C address of the ADS 1x15, default is 0x48 (ADDR = GND)
measurementsToAverage The number of measurements to take and average before giving a "final" result from the sensor; optional with a default value of 1.

String TurnerCyclops::getSensorLocation(void) override

Get the pin or connection location between the mcu and the sensor.

Returns String Text describing how the sensor is attached to the mcu.

bool TurnerCyclops::addSingleMeasurementResult(void) override

Get the results from a single measurement.

Returns bool True if the function completed successfully.

This asks the sensor for a new result, verifies that it passes sanity range checks, and then adds the value to the result array.

This also un-sets the _millisMeasurementRequested timestamp (sets _millisMeasurementRequested to 0) and updates the _sensorStatus.