ModularSensors > Modules > Supported Sensors > Yosemitech Sensors > Yosemitech Y533 ORP Sensor

Yosemitech Y533 ORP Sensor module

Classes for the Yosemitech Y533 oxidation/reduction potential (ORP) sensor.

Sensor Datasheet

Sensor Constructor

YosemitechY533(byte modbusAddress, Stream* stream, int8_t powerPin, int8_t powerPin2 = -1, int8_t enablePin = -1, uint8_t measurementsToAverage = 1)

Construct a new Yosemitech Y533 object.

Parameters
modbusAddress The modbus address of the sensor.
stream An Arduino data stream for modbus communication. See notes for more information on what streams can be used.
powerPin The pin on the mcu controlling power to the Y533. Use -1 if it is continuously powered.
powerPin2 The pin on the mcu controlling power to the RS485 adapter, if it is different from that used to power the sensor. Use -1 or omit if not applicable.
enablePin The pin on the mcu controlling the direction enable on the RS485 adapter, if necessary; use -1 or omit if not applicable.
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 Yosemitech Y533 ORP sensor is used in the menu a la carte example.

#include <sensors/YosemitechY533.h>

// NOTE: Extra hardware and software serial ports are created in the "Settings
// for Additional Serial Ports" section

// NOTE: Use -1 for any pins that don't apply or aren't being used.
byte          y533ModbusAddress  = 0x32;  // The modbus address of the Y533
const int8_t  y533AdapterPower   = sensorPowerPin;  // RS485 adapter power pin
const int8_t  y533SensorPower    = A3;              // Sensor power pin
const int8_t  y533EnablePin      = 4;               // Adapter RE/DE pin
const uint8_t y533NumberReadings = 1;
// The manufacturer actually doesn't mention averaging for this one

// Create a Yosemitech Y533 ORP sensor object
YosemitechY533 y533(y533ModbusAddress, modbusSerial, y533AdapterPower,
                    y533SensorPower, y533EnablePin, y533NumberReadings);

// Create ORP and temperature variable pointers for the Y533
Variable* y533ORP =
    new YosemitechY533_ORP(&y533, "12345678-abcd-1234-ef00-1234567890ab");
Variable* y533Temp =
    new YosemitechY533_Temp(&y533, "12345678-abcd-1234-ef00-1234567890ab");

Classes

class YosemitechY533
The Sensor sub-class for the Yosemitech Y533 ORP sensor.
class YosemitechY533_ORP
The Variable sub-class used for the pH output from a Yosemitech Y533 ORP sensor.
class YosemitechY533_Temp
The Variable sub-class used for the temperature output from a Yosemitech Y533 ORP sensor.

Defines

#define Y533_NUM_VARIABLES = 2
Sensor::_numReturnedValues; the Y533 can report 2 values.
#define Y533_INC_CALC_VARIABLES = 0
Sensor::_incCalcValues; we don't calculate any additional values.

Sensor Timing

The sensor timing for a Yosemitch Y533

#define Y533_WARM_UP_TIME_MS = 500
Sensor::_warmUpTime_ms; time before sensor responds after power - 500ms.
#define Y533_STABILIZATION_TIME_MS = 4500
Sensor::_stabilizationTime_ms; time between "StartMeasurement" command and stable reading - 4.5sec (4500ms).
#define Y533_MEASUREMENT_TIME_MS = 1800
Sensor::_measurementTime_ms; the Y533 takes ~1800ms to complete a measurement.

pH

The ORP variable from a Yosemitch Y533

  • Range is -999 to 999 mV
  • Accuracy is ±20 mV
  • Resolution is 1 mV

YosemitechY533_ORP(YosemitechY533* parentSense, const char* uuid = "", const char* varCode = Y533_ORP_DEFAULT_CODE) explicit

Construct a new YosemitechY533_pH object.

Parameters
parentSense The parent YosemitechY533 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 "Y533pH".

#define Y533_ORP_RESOLUTION = 0
Decimals places in string representation; ph should have 2 - resolution is 1 mV units.
#define Y533_ORP_VAR_NUM = 0
Sensor variable number; ORP is stored in sensorValues[0].
#define Y533_ORP_VAR_NAME = "voltage"
Variable name in ODM2 controlled vocabulary; "voltage" NOTE: ORP should be added to ODM2 CVs, as ORP refers to a specific measure of electron potential relative to a silver chloride reference electrode.
#define Y533_ORP_UNIT_NAME = "millivolt"
Variable unit name in ODM2 controlled vocabulary; "millivolt" (mV)
#define Y533_ORP_DEFAULT_CODE = "Y533ORP"
Default variable short code; "Y533ORP".

Temperature

The temperature variable from a Yosemitch Y533

  • Range is 0°C to + 50°C
  • Accuracy is ± 0.2°C

YosemitechY533_Temp(YosemitechY533* parentSense, const char* uuid = "", const char* varCode = Y533_TEMP_DEFAULT_CODE) explicit

Construct a new YosemitechY533_Temp object.

Parameters
parentSense The parent YosemitechY533 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 "Y533Temp".

#define Y533_TEMP_RESOLUTION = 1
Decimals places in string representation; temperature should have 1 - resolution is 0.1°C.
#define Y533_TEMP_VAR_NUM = 1
Sensor variable number; temperature is stored in sensorValues[1].
#define Y533_TEMP_VAR_NAME = "temperature"
Variable name in ODM2 controlled vocabulary; "temperature".
#define Y533_TEMP_UNIT_NAME = "degreeCelsius"
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define Y533_TEMP_DEFAULT_CODE = "Y533Temp"
Default variable short code; "Y533Temp".