Atlas EZO-EC topic
Classes for the Atlas Scientific EZO-EC conductivity circuit and probes.
The Atlas Scientific Conductivity sensor outputs raw conductivity, TDS, salinity, and specific gravity
- Accuracy is ± 2%
- Range is 0.07 − 500,000+ μS/cm
- Resolution is 3 decimal places
Sensor Datasheet
Sensor Constructors
AtlasScientificEC:: AtlasScientificEC(int8_t powerPin,
uint8_t i2cAddressHex = 0x64,
uint8_t measurementsToAverage = 1) explicit
Construct a new Atlas Scientific EC object using the primary hardware I2C instance.
Parameters | |
---|---|
powerPin | The pin on the mcu controlling powering to the Atlas EC circuit. Use -1 if it is continuously powered.
|
i2cAddressHex | The I2C address of the Atlas circuit; optional with the Atlas-supplied default address of 0x64. |
measurementsToAverage | The number of measurements to take and average before giving a "final" result from the sensor; optional with a default value of 1. |
Example Code
The Atlas conductivity sensor is used in the menu a la carte example.
Classes
- class AtlasScientificEC
- The Sensor sub-class for the Atlas Scientific conductivity circuit and sensor.
- class AtlasScientificEC_Cond
- The Variable sub-class used for the conductivity output from an Atlas Scientific EC EZO circuit.
- class AtlasScientificEC_TDS
- The Variable sub-class used for the total dissolved solids output from an Atlas Scientific EC EZO circuit.
- class AtlasScientificEC_Salinity
- The Variable sub-class used for the salinity output from an Atlas Scientific EC EZO circuit.
- class AtlasScientificEC_SpecificGravity
- The Variable sub-class used for the specific gravity output from an Atlas Scientific EC EZO circuit.
Sensor Variable Counts
The number of variables that can be returned by the Atlas conductivity sensor
- #define ATLAS_COND_NUM_VARIABLES = 4
- Sensor::
_numReturnedValues; Atlas EZO conductivity circuit can report 4 values. - #define ATLAS_COND_INC_CALC_VARIABLES = 0
- Sensor::
_incCalcValues; we don't calculate any additional values - though we recommend users include a temperature sensor and calculate specific conductance in their own program.
Configuration Defines
Defines to configure and set the address of the Atlas conductivity sensor
- #define ATLAS_COND_I2C_ADDR = 0x64
- The default I2C address of the Atlas conductivity sensor is 0x64 (100)
Sensor Timing
The sensor timing for an Atlas EC (conductivity) sensor
- #define ATLAS_COND_WARM_UP_TIME_MS = 745
- Sensor::
_warmUpTime_ms; Atlas EZO conductivity circuit warms up in 745ms. - #define ATLAS_COND_STABILIZATION_TIME_MS = 0
- Sensor::
_stabilizationTime_ms; Atlas EZO conductivity circuit is stable 0ms after warm-up. (stable at completion of warm up) - #define ATLAS_COND_MEASUREMENT_TIME_MS = 600
- Sensor::
_measurementTime_ms; Atlas EZO conductivity circuit takes 600ms to complete a measurement.
Conductivity
The conductivity variable from an Atlas EC (conductivity) sensor
- Accuracy is ± 2%
- Range is 0.07 − 500,000+ μS/cm
AtlasScientificEC_ Cond:: AtlasScientificEC_Cond(AtlasScientificEC* parentSense,
const char* uuid = "",
const char* varCode = "AtlasCond") explicit
Construct a new AtlasScientificEC_
Parameters | |
---|---|
parentSense | The parent AtlasScientificEC providing the result values. |
uuid | A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string. |
varCode | A short code to help identify the variable in files; optional with a default value of "AtlasCond". |
- #define ATLAS_COND_RESOLUTION = 3
- Decimals places in string representation; conductivity should have 3.
- #define ATLAS_COND_VAR_NUM = 0
- Sensor variable number; conductivity is stored in sensorValues[0].
- #define ATLAS_COND_VAR_NAME = "electricalConductivity"
- Variable name in ODM2 controlled vocabulary; "electricalConductivity".
- #define ATLAS_COND_UNIT_NAME = "microsiemenPerCentimeter"
- Variable unit name in ODM2 controlled vocabulary; "microsiemenPerCentimeter" (µS/cm)
- #define ATLAS_COND_DEFAULT_CODE = "AtlasCond"
- Default variable short code; "AtlasCond".
Total Dissolved Solids
The TDS variable from an Atlas EC (conductivity) sensor
- Accuracy is ± 2%
- Range is 0.07 − 500,000+ μS/cm
AtlasScientificEC_ TDS:: AtlasScientificEC_TDS(AtlasScientificEC* parentSense,
const char* uuid = "",
const char* varCode = "AtlasTDS") explicit
Construct a new AtlasScientificEC_
Parameters | |
---|---|
parentSense | The parent AtlasScientificEC providing the result values. |
uuid | A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string. |
varCode | A short code to help identify the variable in files; optional with a default value of "AtlasTDS". |
- #define ATLAS_TDS_RESOLUTION = 3
- Decimals places in string representation; TDS should have 3.
- #define ATLAS_TDS_VAR_NUM = 1
- Sensor variable number; TDS is stored in sensorValues[1].
- #define ATLAS_TDS_VAR_NAME = "solidsTotalDissolved"
- Variable name in ODM2 controlled vocabulary; "solidsTotalDissolved".
- #define ATLAS_TDS_UNIT_NAME = "partPerMillion"
- Variable unit name in ODM2 controlled vocabulary; "partPerMillion" (ppm)
- #define ATLAS_TDS_DEFAULT_CODE = "AtlasTDS"
- Default variable short code; "AtlasTDS".
Salinity
The salinity variable from an Atlas EC (conductivity) sensor
- Accuracy is ± 2%
- Range is 0.07 − 500,000+ μS/cm
AtlasScientificEC_ Salinity:: AtlasScientificEC_Salinity(AtlasScientificEC* parentSense,
const char* uuid = "",
const char* varCode = "AtlasSalinity") explicit
Construct a new AtlasScientificEC_
Parameters | |
---|---|
parentSense | The parent AtlasScientificEC providing the result values. |
uuid | A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string. |
varCode | A short code to help identify the variable in files; optional with a default value of "AtlasSalinity". |
- #define ATLAS_SALINITY_RESOLUTION = 3
- Decimals places in string representation; salinity should have 3.
- #define ATLAS_SALINITY_VAR_NUM = 2
- Sensor variable number; salinity is stored in sensorValues[2].
- #define ATLAS_SALINITY_VAR_NAME = "salinity"
- Variable name in ODM2 controlled vocabulary; "salinity".
- #define ATLAS_SALINITY_UNIT_NAME = "practicalSalinityUnit"
- Variable unit name in ODM2 controlled vocabulary; "practicalSalinityUnit".
- #define ATLAS_SALINITY_DEFAULT_CODE = "AtlasSalinity"
- Default variable short code; "AtlasSalinity".
Specific Gravity
The specific gravity variable from an Atlas EC (conductivity) sensor
- Accuracy is ± 2%
- Range is 0.07 − 500,000+ μS/cm
AtlasScientificEC_ SpecificGravity:: AtlasScientificEC_SpecificGravity(AtlasScientificEC* parentSense,
const char* uuid = "",
const char* varCode = "AtlasSpecGravity") explicit
Construct a new AtlasScientificEC_
Parameters | |
---|---|
parentSense | The parent AtlasScientificEC providing the result values. |
uuid | A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string. |
varCode | A short code to help identify the variable in files; optional with a default value of "AtlasSpecGravity". |
- #define ATLAS_SG_RESOLUTION = 3
- Decimals places in string representation; specific gravity should have 3.
- #define ATLAS_SG_VAR_NUM = 3
- Sensor variable number; specific gravity is stored in sensorValues[3].
- #define ATLAS_SG_VAR_NAME = "specificGravity"
- Variable name in ODM2 controlled vocabulary; "specificGravity".
- #define ATLAS_SG_UNIT_NAME = "dimensionless"
- Variable unit name in ODM2 controlled vocabulary; "dimensionless".
- #define ATLAS_SG_DEFAULT_CODE = "AtlasSpecGravity"
- Default variable short code; "AtlasSpecGravity".
Define documentation
#define ATLAS_COND_NUM_VARIABLES = 4
#include <src/sensors/AtlasScientificEC.h>
Sensor::
#define ATLAS_COND_INC_CALC_VARIABLES = 0
#include <src/sensors/AtlasScientificEC.h>
Sensor::
#define ATLAS_COND_I2C_ADDR = 0x64
#include <src/sensors/AtlasScientificEC.h>
The default I2C address of the Atlas conductivity sensor is 0x64 (100)
#define ATLAS_COND_WARM_UP_TIME_MS = 745
#include <src/sensors/AtlasScientificEC.h>
Sensor::
739-740 in tests
#define ATLAS_COND_STABILIZATION_TIME_MS = 0
#include <src/sensors/AtlasScientificEC.h>
Sensor::
#define ATLAS_COND_MEASUREMENT_TIME_MS = 600
#include <src/sensors/AtlasScientificEC.h>
Sensor::
only ~555 measurement time in tests, but keep the 600 recommended by manual
#define ATLAS_COND_RESOLUTION = 3
#include <src/sensors/AtlasScientificEC.h>
Decimals places in string representation; conductivity should have 3.
#define ATLAS_COND_VAR_NUM = 0
#include <src/sensors/AtlasScientificEC.h>
Sensor variable number; conductivity is stored in sensorValues[0].
#define ATLAS_COND_VAR_NAME = "electricalConductivity"
#include <src/sensors/AtlasScientificEC.h>
Variable name in ODM2 controlled vocabulary; "electricalConductivity".
#define ATLAS_COND_UNIT_NAME = "microsiemenPerCentimeter"
#include <src/sensors/AtlasScientificEC.h>
Variable unit name in ODM2 controlled vocabulary; "microsiemenPerCentimeter" (µS/cm)
#define ATLAS_COND_DEFAULT_CODE = "AtlasCond"
#include <src/sensors/AtlasScientificEC.h>
Default variable short code; "AtlasCond".
#define ATLAS_TDS_RESOLUTION = 3
#include <src/sensors/AtlasScientificEC.h>
Decimals places in string representation; TDS should have 3.
#define ATLAS_TDS_VAR_NUM = 1
#include <src/sensors/AtlasScientificEC.h>
Sensor variable number; TDS is stored in sensorValues[1].
#define ATLAS_TDS_VAR_NAME = "solidsTotalDissolved"
#include <src/sensors/AtlasScientificEC.h>
Variable name in ODM2 controlled vocabulary; "solidsTotalDissolved".
#define ATLAS_TDS_UNIT_NAME = "partPerMillion"
#include <src/sensors/AtlasScientificEC.h>
Variable unit name in ODM2 controlled vocabulary; "partPerMillion" (ppm)
#define ATLAS_TDS_DEFAULT_CODE = "AtlasTDS"
#include <src/sensors/AtlasScientificEC.h>
Default variable short code; "AtlasTDS".
#define ATLAS_SALINITY_RESOLUTION = 3
#include <src/sensors/AtlasScientificEC.h>
Decimals places in string representation; salinity should have 3.
#define ATLAS_SALINITY_VAR_NUM = 2
#include <src/sensors/AtlasScientificEC.h>
Sensor variable number; salinity is stored in sensorValues[2].
#define ATLAS_SALINITY_VAR_NAME = "salinity"
#include <src/sensors/AtlasScientificEC.h>
Variable name in ODM2 controlled vocabulary; "salinity".
#define ATLAS_SALINITY_UNIT_NAME = "practicalSalinityUnit"
#include <src/sensors/AtlasScientificEC.h>
Variable unit name in ODM2 controlled vocabulary; "practicalSalinityUnit".
#define ATLAS_SALINITY_DEFAULT_CODE = "AtlasSalinity"
#include <src/sensors/AtlasScientificEC.h>
Default variable short code; "AtlasSalinity".
#define ATLAS_SG_RESOLUTION = 3
#include <src/sensors/AtlasScientificEC.h>
Decimals places in string representation; specific gravity should have 3.
#define ATLAS_SG_VAR_NUM = 3
#include <src/sensors/AtlasScientificEC.h>
Sensor variable number; specific gravity is stored in sensorValues[3].
#define ATLAS_SG_VAR_NAME = "specificGravity"
#include <src/sensors/AtlasScientificEC.h>
Variable name in ODM2 controlled vocabulary; "specificGravity".
#define ATLAS_SG_UNIT_NAME = "dimensionless"
#include <src/sensors/AtlasScientificEC.h>
Variable unit name in ODM2 controlled vocabulary; "dimensionless".
#define ATLAS_SG_DEFAULT_CODE = "AtlasSpecGravity"
#include <src/sensors/AtlasScientificEC.h>
Default variable short code; "AtlasSpecGravity".