Serial Wombat Arduino Library
Loading...
Searching...
No Matches
GripACS712 Class Reference

A class representing an Allegro ACS712 5A current sensor connected to a SW8B Analog input on a PCB0031 Grip board. More...

#include <PCB0031_Grip.h>

Inheritance diagram for GripACS712:
Collaboration diagram for GripACS712:

Public Member Functions

 GripACS712 (SerialWombatChip &serialWombatChip)
 Constructor for the GripACS712 Class.
 
int16_t begin (uint8_t pin)
 Initialize a GripACS712 on the specified pin.
 
uint16_t calibrateIdleCurrent ()
 called to set the zero calibration current
 
int16_t readCurrent_mA ()
 returns the current reading in Milliamps. May be negative
 
- Public Member Functions inherited from SerialWombatAnalogInput_18AB
 SerialWombatAnalogInput_18AB (SerialWombatChip &serialWombat)
 
uint8_t pin ()
 Used for inheritance.
 
uint8_t swPinModeNumber ()
 Used for ineheritance.
 
- Public Member Functions inherited from SerialWombatAnalogInput
 SerialWombatAnalogInput (SerialWombatChip &SerialWombatChip)
 Constructor for the SerialWombatAnalogInput class.
 
int16_t begin (uint8_t pin, uint16_t averageSamples=64, uint16_t filterConstant=0xFF80, AnalogInputPublicDataOutput output=AnalogInputPublicDataOutput::AnalogInputPublicDataOutput_Raw)
 Initialize an analog input on a given pin.
 
uint16_t readVoltage_mV ()
 Retreive a raw A/D measurement and convert it to mV.
 
uint16_t readCounts ()
 Retreive a raw A/D measurement.
 
uint16_t readFiltered_mV ()
 Retreive a filtered A/D measurement and convert it to mV.
 
uint16_t readFilteredCounts ()
 Retreive a filtered A/D measurement.
 
uint16_t readAveraged_mV ()
 Retreive an averaged A/D measurement and convert it to mV.
 
uint16_t readAveragedCounts ()
 Retreive an averaged A/D measurement.
 
uint16_t updateSupplyVoltage_mV ()
 Provides a wrapper around the readSupplyVoltage_mV() method for the SerialWombat chip hosting this pin mode.
 
uint16_t readMaximum_mV (bool resetAfterRead=false)
 Retreive the maximum single sample A/D value in mV.
 
uint16_t readMaximumCounts (bool resetAfterRead=false)
 
uint16_t readMinimum_mV (bool resetAfterRead=false)
 
uint16_t readMinimumCounts (bool resetAfterRead=false)
 Retreive the maximum single sample A/D value in counts.
 
- Public Member Functions inherited from SerialWombatPin
 SerialWombatPin (SerialWombatChip &serialWombatChip)
 Instantiates a Serial Wombat Pin.
 
 SerialWombatPin (SerialWombatChip &serialWombatChip, uint8_t pin)
 Instantiates a Serial Wombat Pin.
 
uint16_t readPublicData ()
 Read the 16 Bit public data associated with this pin.
 
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.
 
void digitalWrite (uint8_t val)
 Set output pin High or Low.
 
int digitalRead ()
 Reads the state of the Pin.
 
uint16_t writePublicData (uint16_t value)
 Write a 16 bit value to this pin.
 
uint8_t pin ()
 Returns the current SW pin number. Used primarily for virtual calls by derived classes.
 
uint8_t swPinModeNumber ()
 Returns the Mode number. Used primarily by derived classes to populate packet data.
 
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)
 
int16_t enablePullup (bool enabled)
 Enables the weak pull up on a pin. Implemented on SW18AB and SW8B only.
 
int16_t enablePulldown (bool enabled)
 Enables the weak pull down on a pin. Implemented on SW18AB and SW8B only.
 
int16_t enableOpenDrain (bool enabled)
 Enables open drain mode on a pin. Implemented on SW18AB and SW8B only.
 
int16_t forceDMA (bool enabled)
 Forces use of DMA instead of hardware timing resources on SW18AB.
 
- Public Member Functions inherited from SerialWombatAbstractProcessedInput
 SerialWombatAbstractProcessedInput (SerialWombatChip &sw)
 Constructor for the SerialWombatAbstractScaledOutput Class.
 
int16_t writeInverted (bool inverted)
 if enabled subtract the input value from 65535 before doing any other processing.
 
int16_t writeFirstOrderFilteringConstant (uint16_t constant)
 Set a first order filtering constant to be applied to the signal Higher is heavier filtering.
 
int16_t writeAveragingNumberOfSamples (uint16_t numberOfSamples)
 Set a number of samples to average for each update of the downstream signal.
 
int16_t writeExcludeBelowAbove (uint16_t low, uint16_t high)
 Sets input value ranges which are discarded rather than processed.
 
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.
 
int16_t configureOutputValue (OutputValue outputValue)
 Configures whether the pin's public data value is averaged, filtered, or neither.
 
int16_t writeTransformScaleRange (uint16_t min, uint16_t max)
 Scale incoming values to a range of 0 to 65535.
 
int16_t writeTransformLinearMXB (int32_t m, int32_t b)
 Scale incoming values based on an mx+b linear equation.
 
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.
 
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.
 
uint16_t readMinimum (bool resetAfterRead=false)
 Retreive the maximum public data output value since the last call with reset= true.
 
uint16_t readMaximum (bool resetAfterRead=false)
 Retreive the minimum public data output value since the last call with reset= true.
 
uint16_t readAverage ()
 Retreive the last completed averaged value.
 
uint16_t readFiltered ()
 Retreive the filtered value.
 

Public Attributes

uint16_t zeroCurrentCalibration = 32768
 Variable holding the zero calibration value in counts.
 

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
 

Detailed Description

A class representing an Allegro ACS712 5A current sensor connected to a SW8B Analog input on a PCB0031 Grip board.

The GripACS712 class is a child class of SerialWombatAnalogInput_18AB. It has all of the same methods and adds methods for converting the output to mA, and setting a reference zero current. This can be either real zero current, or an offset such as in the case of a Servo which pulls a small current to drive its electronics even when the motor is not generating torque.

A Tutorial video is also avaialble:

https://youtu.be/TODO

Definition at line 51 of file PCB0031_Grip.h.

Constructor & Destructor Documentation

◆ GripACS712()

GripACS712::GripACS712 ( SerialWombatChip & serialWombatChip)
inline

Constructor for the GripACS712 Class.

Parameters
swA reference to a previously declared SerialWombatChip to which the Servo is connected.

Definition at line 59 of file PCB0031_Grip.h.

Member Function Documentation

◆ begin()

int16_t GripACS712::begin ( uint8_t pin)
inline

Initialize a GripACS712 on the specified pin.

This function must be called after the SerialWombatChip instance specified in the constructor has been initialized with a begin call.

This function initializes the underlying analog input with default parameters.

Parameters
pinThe Serial Wombat pin to set. Valid values are 4-7 as those pins are ACS712 pins on the grip board
Returns
Returns a negative number indicating an error code, or a non negative number indicating success

Definition at line 72 of file PCB0031_Grip.h.

◆ calibrateIdleCurrent()

uint16_t GripACS712::calibrateIdleCurrent ( )
inline

called to set the zero calibration current

Returns
returns the value in counts of the calibration

Definition at line 91 of file PCB0031_Grip.h.

◆ readCurrent_mA()

int16_t GripACS712::readCurrent_mA ( )
inline

returns the current reading in Milliamps. May be negative

Returns
returns the current value in mA

Definition at line 103 of file PCB0031_Grip.h.

Member Data Documentation

◆ zeroCurrentCalibration

uint16_t GripACS712::zeroCurrentCalibration = 32768

Variable holding the zero calibration value in counts.

Definition at line 84 of file PCB0031_Grip.h.