#include <src/sensors/RainCounterI2C.h>
RainCounterI2C
class
The Sensor sub-class for the Arduino-based external tipping bucket counter.
- Reference
- Detailed Descriptions
Base classes
- class Sensor
- The "Sensor" class is used for all sensor-level operations - waking, sleeping, and taking measurements.
Constructors, destructors, conversion operators
- RainCounterI2C(SoftwareWire* theI2C, uint8_t i2cAddressHex = 0x08, float rainPerTip = 0.2)
- Construct a new Rain Counter I2C object using a software I2C instance.
- RainCounterI2C(int8_t dataPin, int8_t clockPin, uint8_t i2cAddressHex = 0x08, float rainPerTip = 0.2)
- Construct a new Rain Counter I2C object, also creating a SoftwareWire I2C instance for communication with that object.
- RainCounterI2C(TwoWire* theI2C, uint8_t i2cAddressHex = 0x08, float rainPerTip = 0.2) explicit
- Construct a new Rain Counter I2C object using a secondary hardware I2C instance.
- RainCounterI2C(uint8_t i2cAddressHex = 0x08, float rainPerTip = 0.2) explicit
- Construct a new Rain Counter I2C object using the primary hardware I2C instance.
- ~RainCounterI2C()
- Destroy the Rain Counter I2C object. Also destroy the software I2C instance if one was created.
Public functions
- bool setup(void) -> bool override
- Do any one-time preparations needed before the sensor will be able to take readings.
- 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
RainCounterI2C:: RainCounterI2C(SoftwareWire* theI2C,
uint8_t i2cAddressHex = 0x08,
float rainPerTip = 0.2)
Construct a new Rain Counter I2C object using a software I2C instance.
Parameters | |
---|---|
theI2C | A SoftwareWire instance for I2C communication. |
i2cAddressHex | The I2C address of the Trinket; can be any number between 0x40 and 0x4F. The default value is 0x08. |
rainPerTip | The depth of rain from a single tip; most likely either 0.01" or 0.2mm, depending on your tipping bucket calibration. The default value is 0.2. |
RainCounterI2C:: RainCounterI2C(int8_t dataPin,
int8_t clockPin,
uint8_t i2cAddressHex = 0x08,
float rainPerTip = 0.2)
Construct a new Rain Counter I2C object, also creating a SoftwareWire I2C instance for communication with that object.
Parameters | |
---|---|
dataPin | The pin on the mcu that will be used for I2C data (SDA). Must be a valid pin number. |
clockPin | The pin on the mcu that will be used for the I2C clock (SCL). Must be a valid pin number. |
i2cAddressHex | The I2C address of the Trinket; can be any number between 0x40 and 0x4F. The default value is 0x08. |
rainPerTip | The depth of rain from a single tip; most likely either 0.01" or 0.2mm, depending on your tipping bucket calibration. The default value is 0.2. |
RainCounterI2C:: RainCounterI2C(TwoWire* theI2C,
uint8_t i2cAddressHex = 0x08,
float rainPerTip = 0.2) explicit
Construct a new Rain Counter I2C object using a secondary hardware I2C instance.
Parameters | |
---|---|
theI2C | A TwoWire instance for I2C communication. Due to the limitations of the Arduino core, only a hardware I2C instance can be used. For an AVR board, there is only one I2C instance possible and this form of the constructor should not be used. For a SAMD board, this can be used if a secondary I2C port is created on one of the extra SERCOMs. |
i2cAddressHex | The I2C address of the Trinket; can be any number between 0x40 and 0x4F. The default value is 0x08. |
rainPerTip | The depth of rain from a single tip; most likely either 0.01" or 0.2mm, depending on your tipping bucket calibration. The default value is 0.2. |
RainCounterI2C:: RainCounterI2C(uint8_t i2cAddressHex = 0x08,
float rainPerTip = 0.2) explicit
Construct a new Rain Counter I2C object using the primary hardware I2C instance.
Parameters | |
---|---|
i2cAddressHex | The I2C address of the Trinket; can be any number between 0x40 and 0x4F. The default value is 0x08. |
rainPerTip | The depth of rain from a single tip; most likely either 0.01" or 0.2mm, depending on your tipping bucket calibration. The default value is 0.2. |
bool RainCounterI2C:: setup(void) override
Do any one-time preparations needed before the sensor will be able to take readings.
Returns | bool True if the setup was successful. |
---|
This begins the Wire library (sets pin levels and modes for I2C) and updates the _
String RainCounterI2C:: 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 RainCounterI2C:: 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 _