SimpleFOClibrary
2.1
InlineCurrentSense.h
Go to the documentation of this file.
1
#ifndef INLINE_CS_LIB_H
2
#define INLINE_CS_LIB_H
3
4
#include "Arduino.h"
5
#include "../common/foc_utils.h"
6
#include "../common/time_utils.h"
7
#include "../common/base_classes/CurrentSense.h"
8
#include "
hardware_api.h
"
9
10
11
class
InlineCurrentSense
:
public
CurrentSense
{
12
public
:
21
InlineCurrentSense
(
float
shunt_resistor,
float
gain,
int
pinA,
int
pinB,
int
pinC =
NOT_SET
);
22
23
// CurrentSense interface implementing functions
24
void
init
()
override
;
25
PhaseCurrent_s
getPhaseCurrents
()
override
;
26
int
driverSync
(
BLDCDriver
*driver)
override
;
27
int
driverAlign
(
BLDCDriver
*driver,
float
voltage
)
override
;
28
29
// ADC measuremnet gain for each phase
30
// support for different gains for different phases of more commonly - inverted phase currents
31
// this should be automated later
32
int
gain_a
;
33
int
gain_b
;
34
int
gain_c
;
35
36
private
:
37
38
// hardware variables
39
int
pinA;
40
int
pinB;
41
int
pinC;
42
43
// gain variables
44
double
shunt_resistor;
45
double
amp_gain;
46
double
volts_to_amps_ratio;
47
51
void
calibrateOffsets();
52
double
offset_ia;
53
double
offset_ib;
54
double
offset_ic;
55
56
};
57
58
#endif
BLDCDriver
Definition:
BLDCDriver.h:6
NOT_SET
#define NOT_SET
Definition:
foc_utils.h:27
InlineCurrentSense::gain_b
int gain_b
phase B gain
Definition:
InlineCurrentSense.h:33
voltage
@ voltage
Torque control using voltage.
Definition:
FOCMotor.h:39
CurrentSense
Definition:
CurrentSense.h:11
InlineCurrentSense::gain_c
int gain_c
phase C gain
Definition:
InlineCurrentSense.h:34
InlineCurrentSense
Definition:
InlineCurrentSense.h:11
hardware_api.h
InlineCurrentSense::InlineCurrentSense
InlineCurrentSense(float shunt_resistor, float gain, int pinA, int pinB, int pinC=NOT_SET)
Definition:
InlineCurrentSense.cpp:8
InlineCurrentSense::getPhaseCurrents
PhaseCurrent_s getPhaseCurrents() override
Definition:
InlineCurrentSense.cpp:49
InlineCurrentSense::init
void init() override
Definition:
InlineCurrentSense.cpp:23
InlineCurrentSense::driverAlign
int driverAlign(BLDCDriver *driver, float voltage) override
Definition:
InlineCurrentSense.cpp:70
PhaseCurrent_s
Definition:
foc_utils.h:40
InlineCurrentSense::driverSync
int driverSync(BLDCDriver *driver) override
Definition:
InlineCurrentSense.cpp:58
InlineCurrentSense::gain_a
int gain_a
phase A gain
Definition:
InlineCurrentSense.h:32
Arduino
libraries
Arduino-FOC
src
current_sense
InlineCurrentSense.h
Generated by
1.8.18