Serial Wombat Arduino Library
|
A class to make resistance measurements with the Serial Wombat 18AB chip. More...
#include <SerialWombatResistanceInput.h>
Public Member Functions | |
SerialWombatResistanceInput (SerialWombatChip &serialWombatChip) | |
Constructor for the SerialWombatResistanceInput class. More... | |
int16_t | begin (uint8_t pin) |
Initialize a resistance input on a given pin. More... | |
int16_t | begin (uint8_t pin, uint16_t averageSamples, uint16_t filterConstant) |
Initialize a resistance input on a given pin. More... | |
int16_t | begin (uint8_t pin, uint16_t averageSamples, uint16_t filterConstant, ResistanceInputPublicDataOutput output) |
Initialize a resistance input on a given pin. More... | |
uint16_t | readFilteredOhms () |
Retreive a filtered Resistance measurement. More... | |
uint16_t | readAveragedOhms () |
Retreive an averaged Resistance measurement. More... | |
uint16_t | readMaximumOhms (bool resetAfterRead) |
Retreive the maximum single sample Resistance value in Ohms. More... | |
uint16_t | readMinimumOhms (bool resetAfterRead) |
Retreive the maximum single sample Resistance value in Ohms. More... | |
uint8_t | pin () |
Used for inheritance. More... | |
uint8_t | swPinModeNumber () |
Used for ineheritance. More... | |
Public Member Functions inherited from SerialWombatPin | |
SerialWombatPin (SerialWombatChip &serialWombatChip) | |
Instantiates a Serial Wombat Pin. More... | |
SerialWombatPin (SerialWombatChip &serialWombatChip, uint8_t pin) | |
Instantiates a Serial Wombat Pin. More... | |
uint16_t | readPublicData () |
Read the 16 Bit public data associated with this pin. More... | |
void | pinMode (uint8_t mode, bool pullDown=false, bool openDrain=false) |
Set pin to INPUT or OUTPUT, with options for pull Ups and open Drain settings. More... | |
void | digitalWrite (uint8_t val) |
Set output pin High or Low. More... | |
int | digitalRead () |
Reads the state of the Pin. More... | |
uint16_t | writePublicData (uint16_t value) |
Write a 16 bit value to this pin. More... | |
uint8_t | pin () |
Returns the current SW pin number. Used primarily for virtual calls by derived classes. More... | |
uint8_t | swPinModeNumber () |
Returns the Mode number. Used primarily by derived classes to populate packet data. More... | |
int16_t | initPacketNoResponse (uint8_t packetNumber, uint8_t param0=0x55, uint8_t param1=0x55, uint8_t param2=0x55, uint8_t param3=0x55, uint8_t param4=0x55) |
int16_t | initPacketNoResponse (uint8_t packetNumber, uint16_t param0=0x55, uint8_t param1=0x55, uint8_t param2=0x55, uint8_t param3=0x55) |
int16_t | initPacketNoResponse (uint8_t packetNumber, uint16_t param0, uint16_t param1, uint8_t param2=0x55) |
int16_t | disable () |
Disables the pin mode (if applicable) More... | |
Public Member Functions inherited from SerialWombatAbstractProcessedInput | |
SerialWombatAbstractProcessedInput (SerialWombatChip &sw) | |
Constructor for the SerialWombatAbstractScaledOutput Class. More... | |
int16_t | writeInverted (bool inverted) |
if enabled subtract the input value from 65535 before doing any other processing. More... | |
int16_t | writeFirstOrderFilteringConstant (uint16_t constant) |
Set a first order filtering constant to be applied to the signal Higher is heavier filtering. More... | |
int16_t | writeAveragingNumberOfSamples (uint16_t numberOfSamples) |
Set a number of samples to average for each update of the downstream signal. More... | |
int16_t | writeExcludeBelowAbove (uint16_t low, uint16_t high) |
Sets input value ranges which are discarded rather than processed. More... | |
int16_t | configureQueue (SerialWombatQueue *queue, Period period, bool queueHighByte=true, bool queueLowByte=true) |
Sets up the queueing feature for this pin mode. Queue must have been initialized prior to this queue. More... | |
int16_t | configureOutputValue (OutputValue outputValue) |
Configures whether the pin's public data value is averaged, filtered, or neither. More... | |
int16_t | writeTransformScaleRange (uint16_t min, uint16_t max) |
Scale incoming values to a range of 0 to 65535. More... | |
int16_t | writeTransformLinearMXB (int32_t m, int32_t b) |
Scale incoming values based on an mx+b linear equation. More... | |
int16_t | configureIntegrator (uint16_t negativeMaxIndex, uint16_t negativeMidIndex, uint16_t negativeDeadZone, uint16_t positiveDeadZone, uint16_t positiveMidIndex, uint16_t positiveMaxIndex, uint16_t midIncrement, uint16_t maxIncrement, uint16_t initialValue, uint8_t updateFrequencyMask=0) |
Sort incoming data into one of 5 ranges, and integrate based on linear interpolation in those ranges. More... | |
int16_t | writeProcessedInputEnable (bool enabled) |
Enables or disables all input processing functions If disabled, the raw input value is placed directly in the pin's 16 bit public data buffer. More... | |
uint16_t | readMinimum (bool resetAfterRead=false) |
Retreive the maximum public data output value since the last call with reset= true. More... | |
uint16_t | readMaximum (bool resetAfterRead=false) |
Retreive the minimum public data output value since the last call with reset= true. More... | |
uint16_t | readAverage () |
Retreive the last completed averaged value. More... | |
uint16_t | readFiltered () |
Retreive the filtered value. More... | |
Additional Inherited Members | |
Public Types inherited from SerialWombatAbstractProcessedInput | |
enum | Period { PERIOD_1mS = 0, PERIOD_2mS = 1, PERIOD_4mS = 2, PERIOD_8mS = 3, PERIOD_16mS = 4, PERIOD_32mS = 5, PERIOD_64mS = 6, PERIOD_128mS = 7, PERIOD_256mS = 8, PERIOD_512mS = 9, PERIOD_1024mS = 10 } |
enum | OutputValue { RAW = 0, FIRST_ORDER_FILTERED = 1, AVERAGE = 2 } |
enum | Transform { NONE = 0, SCALE_RANGE = 1, LINEAR_MXB = 2 } |
Protected Attributes inherited from SerialWombatPin | |
uint8_t | _pin = 255 |
SerialWombatChip & | _sw |
uint8_t | _pinMode = 0 |
A class to make resistance measurements with the Serial Wombat 18AB chip.
The SerialWombatResistanceInput class is used to make resistance measurements on a given pin up to about 60 kOhm.
This pin mode is only available on the SerialWombat 18AB chip
Any analog-capable pin may be used to make a measurement (0-4, 16-19).
Averaging of samples and first order IIR filtering (20 Hz sampling) of input are available
For a good explanation of 1st order FIR filter calculations, see: https://www.monocilindro.com/2017/04/08/how-to-implement-a-1st-order-iir-filter-in-5-minutes/
Filtering adds lag. The higher the filter constant value, the longer it takes for the filter to settle when given a steady input.
Declare and initialize a SerialWombatResistanceInput instance for each pin being used as a resistance input.
A tutorial is available here:
|
inline |
Constructor for the SerialWombatResistanceInput class.
SerialWombat | a reference to the Serial Wombat chip on which the Resistance Input will be measured |
|
inline |
Initialize a resistance input on a given pin.
This intialization turns on sample averaging to 64 samples
pin | The Serial Wombat pin to set. Must be an analog pin (0-4, 16-19) |
|
inline |
Initialize a resistance input on a given pin.
pin | The Serial Wombat pin to set. Must be an analog pin (0-4, 16-19) |
averageSamples | Number of samples to average. |
filterConstant | First Order IIR filter constant, expressed as 1/65536ths . Values closer to 65536 give heavier filtering. Sample frequency is 20Hz. |
|
inline |
Initialize a resistance input on a given pin.
pin | The Serial Wombat pin to set. Must be an analog pin (0-4, 16-19) |
averageSamples | Number of samples to average. |
filterConstant | First Order IIR filter constant, expressed as 1/65536ths . Values closer to 65536 give heavier filtering. Sample frequency is 20 Hz. |
publicDataOutput | What to output as pin public data |
|
inlinevirtual |
Used for inheritance.
Implements SerialWombatAbstractProcessedInput.
|
inline |
Retreive an averaged Resistance measurement.
Conversion is based on the most recent averaged Resistance value taken by the Serial Wombat at the command time.
|
inline |
Retreive a filtered Resistance measurement.
Conversion is based on the most recent filtered Resistance value taken by the Serial Wombat at the command time.
|
inline |
Retreive the maximum single sample Resistance value in Ohms.
The maximum value the Serial Wombat chip has seen on that pin since last reset of Min/Max
resetAfterRead | If True, maximum value is set to 0 after read so that subsequent values become maximum. Also resets minimum to next sample. |
|
inline |
Retreive the maximum single sample Resistance value in Ohms.
The maximum value the Serial Wombat chip has seen on that pin since last reset of Min/Max
resetAfterRead | If True, maximum value is set to 0 after read so that subsequent values become maximum. Also resets minimum to next sample. |
|
inlinevirtual |
Used for ineheritance.
Implements SerialWombatAbstractProcessedInput.