Bowls Eye  1.0
stepperMotor.h
Go to the documentation of this file.
1 
8 #ifndef STEPPERMOTOR_H_
9 #define STEPPERMOTOR_H_
10 
11 #include <pigpiod_if2.h>
12 
13 #include <stdint.h>
14 #include "globals.h"
15 
16 #define NO_STEPS_ 4
17 #define STEP_DELAY_ 0.003125
18 
19 #define DIRECTION_CLOCKWISE_ 1
20 #define DIRECTION_ANTICLOCKWISE_ 0
21 
22 #define PIN_IN_1_ 2
23 #define PIN_IN_2_ 3
24 #define PIN_IN_3_ 4
25 #define PIN_IN_4_ 17
26 #define PIN_EN_A_ 27
27 #define PIN_EN_B_ 22
28 
29 typedef struct StepperMotor_t StepperMotor_t;
30 
35 
36  void (*step[NO_STEPS_])(StepperMotor_t *stepper);
37  uint8_t pinEnA, pinEnB, pinA0, pinA1, pinB0, pinB1;
38  int8_t currentStep;
39  double waitTime;
40  uint8_t direction, stepMultiple;
41 };
42 
43 StepperMotor_t stepper;
44 
45 void StepperMotor_construct(StepperMotor_t *stepper, uint8_t multiple);
46 void StepperMotor_enable(StepperMotor_t *stepper);
47 void StepperMotor_update(StepperMotor_t *stepper);
48 void StepperMotor_setDirection(StepperMotor_t *stepper, uint8_t direction);
49 void StepperMotor_setStepSize(StepperMotor_t *stepper, uint8_t multiple);
50 void StepperMotor_enA(StepperMotor_t *stepper);
51 void StepperMotor_enB(StepperMotor_t *stepper);
56 
57 void StepperMotor_step0(StepperMotor_t *stepper);
58 void StepperMotor_step1(StepperMotor_t *stepper);
59 void StepperMotor_step2(StepperMotor_t *stepper);
60 void StepperMotor_step3(StepperMotor_t *stepper);
61 
62 #endif /* STEPPERMOTOR_H_ */
void StepperMotor_step1(StepperMotor_t *stepper)
Definition: stepperMotor.c:186
void StepperMotor_incrementStep(StepperMotor_t *stepper)
Definition: stepperMotor.c:134
void StepperMotor_decrementStep(StepperMotor_t *stepper)
Definition: stepperMotor.c:147
uint8_t pinEnA
Definition: stepperMotor.h:37
void StepperMotor_disable(StepperMotor_t *stepper)
Definition: stepperMotor.c:101
void StepperMotor_wrapStep(StepperMotor_t *stepper)
Definition: stepperMotor.c:159
void StepperMotor_setDirection(StepperMotor_t *stepper, uint8_t direction)
Definition: stepperMotor.c:77
void StepperMotor_setStepSize(StepperMotor_t *stepper, uint8_t multiple)
Definition: stepperMotor.c:67
void StepperMotor_step2(StepperMotor_t *stepper)
Definition: stepperMotor.c:198
void StepperMotor_step0(StepperMotor_t *stepper)
Definition: stepperMotor.c:174
void StepperMotor_update(StepperMotor_t *stepper)
Definition: stepperMotor.c:42
void StepperMotor_construct(StepperMotor_t *stepper, uint8_t multiple)
Definition: stepperMotor.c:15
void StepperMotor_enable(StepperMotor_t *stepper)
Definition: stepperMotor.c:86
void StepperMotor_enB(StepperMotor_t *stepper)
Definition: stepperMotor.c:125
void StepperMotor_enA(StepperMotor_t *stepper)
Definition: stepperMotor.c:116
void StepperMotor_step3(StepperMotor_t *stepper)
Definition: stepperMotor.c:210
int8_t currentStep
Definition: stepperMotor.h:38
uint8_t stepMultiple
Definition: stepperMotor.h:40
Structure for interfacing with stepper motor and its dual H bridge driver.
Definition: stepperMotor.h:34