SimpleFOClibrary 2.4.0
Loading...
Searching...
No Matches
LowsideCurrentSense.h
Go to the documentation of this file.
1#ifndef LOWSIDE_CS_LIB_H
2#define LOWSIDE_CS_LIB_H
3
4#include "Arduino.h"
5#include "../common/foc_utils.h"
6#include "../common/time_utils.h"
7#include "../common/defaults.h"
8#include "../common/base_classes/CurrentSense.h"
9#include "../common/base_classes/FOCMotor.h"
10#include "../common/base_classes/StepperDriver.h"
11#include "../common/base_classes/BLDCDriver.h"
12#include "../common/lowpass_filter.h"
13#include "hardware_api.h"
14
15
17 public:
18 /**
19 LowsideCurrentSense class constructor
20 @param shunt_resistor shunt resistor value
21 @param gain current-sense op-amp gain
22 @param phA A phase adc pin
23 @param phB B phase adc pin
24 @param phC C phase adc pin (optional)
25 */
26 LowsideCurrentSense(float shunt_resistor, float gain, int pinA, int pinB, int pinC = _NC);
27 /**
28 LowsideCurrentSense class constructor
29 @param mVpA mV per Amp ratio
30 @param phA A phase adc pin
31 @param phB B phase adc pin
32 @param phC C phase adc pin (optional)
33 */
34 LowsideCurrentSense(float mVpA, int pinA, int pinB, int pinC = _NC);
35
36 // CurrentSense interface implementing functions
37 int init() override;
39
40 private:
41
42 // gain variables
43 float shunt_resistor; //!< Shunt resistor value
44 float amp_gain; //!< amp gain value
45 float volts_to_amps_ratio; //!< Volts to amps ratio
46
47 /**
48 * Function finding zero offsets of the ADC
49 */
50 void calibrateOffsets();
51
52};
53
54#endif
int pinC
pin C analog pin for current measurement
int pinB
pin B analog pin for current measurement
int pinA
pin A analog pin for current measurement
PhaseCurrent_s getPhaseCurrents() override
#define _NC
Definition foc_utils.h:38