SimpleFOClibrary 2.4.0
Loading...
Searching...
No Matches
StepperDriver2PWM.h
Go to the documentation of this file.
1#ifndef STEPPER_DRIVER_2PWM_h
2#define STEPPER_DRIVER_2PWM_h
3
4#include "../common/base_classes/StepperDriver.h"
5#include "../common/foc_utils.h"
6#include "../common/time_utils.h"
7#include "../common/defaults.h"
8#include "hardware_api.h"
9
10/**
11 2 pwm stepper driver class
12*/
14{
15 public:
16 /**
17 StepperMotor class constructor
18 @param pwm1 PWM1 phase pwm pin
19 @param in1 IN1A phase dir pin
20 @param pwm2 PWM2 phase pwm pin
21 @param in2 IN2A phase dir
22 @param en1 enable pin phase 1 (optional input)
23 @param en2 enable pin phase 2 (optional input)
24 */
25 StepperDriver2PWM(int pwm1, int* in1, int pwm2, int* in2, int en1 = NOT_SET, int en2 = NOT_SET);
26
27 /**
28 StepperMotor class constructor
29 @param pwm1 PWM1 phase pwm pin
30 @param dir1 DIR1 phase dir pin
31 @param pwm2 PWM2 phase pwm pin
32 @param dir2 DIR2 phase dir pin
33 @param en1 enable pin phase 1 (optional input)
34 @param en2 enable pin phase 2 (optional input)
35 */
36 StepperDriver2PWM(int pwm1, int dir1, int pwm2, int dir2, int en1 = NOT_SET, int en2 = NOT_SET);
37
38 /** Motor hardware init function */
39 int init() override;
40 /** Motor disable function */
41 void disable() override;
42 /** Motor enable function */
43 void enable() override;
44
45 // hardware variables
46 int pwm1; //!< phase 1 pwm pin number
47 int dir1a; //!< phase 1 INA pin number
48 int dir1b; //!< phase 1 INB pin number
49 int pwm2; //!< phase 2 pwm pin number
50 int dir2a; //!< phase 2 INA pin number
51 int dir2b; //!< phase 2 INB pin number
52 int enable_pin1; //!< enable pin number phase 1
53 int enable_pin2; //!< enable pin number phase 2
54
55 /**
56 * Set phase voltages to the harware
57 *
58 * @param Ua phase A voltage
59 * @param Ub phase B voltage
60 */
61 void setPwm(float Ua, float Ub) override;
62
63 /**
64 * Set phase voltages to the hardware
65 * > Only possible is the driver has separate enable pins for both phases!
66 *
67 * @param sa phase A state : active / disabled ( high impedance )
68 * @param sb phase B state : active / disabled ( high impedance )
69 */
70 virtual void setPhaseState(PhaseState sa, PhaseState sb) override;
71
72 private:
73
74};
75
76
77#endif
PhaseState
Definition FOCDriver.h:7
void enable() override
int enable_pin2
enable pin number phase 2
int dir1b
phase 1 INB pin number
int dir2a
phase 2 INA pin number
virtual void setPhaseState(PhaseState sa, PhaseState sb) override
int pwm2
phase 2 pwm pin number
int dir2b
phase 2 INB pin number
void setPwm(float Ua, float Ub) override
int dir1a
phase 1 INA pin number
int pwm1
phase 1 pwm pin number
void disable() override
int enable_pin1
enable pin number phase 1
#define NOT_SET
Definition foc_utils.h:34