library for stepping motor
Suteppa.h@0:9da9efc2119c, 2020-03-08 (annotated)
- Committer:
- j_rocket_boy
- Date:
- Sun Mar 08 03:38:37 2020 +0000
- Revision:
- 0:9da9efc2119c
Firm ware for Antenna rotator
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
j_rocket_boy | 0:9da9efc2119c | 1 | #ifndef SUTEPPA_H |
j_rocket_boy | 0:9da9efc2119c | 2 | #define SUTEPPA_H |
j_rocket_boy | 0:9da9efc2119c | 3 | |
j_rocket_boy | 0:9da9efc2119c | 4 | #include "mbed.h" |
j_rocket_boy | 0:9da9efc2119c | 5 | #ifndef M_PI |
j_rocket_boy | 0:9da9efc2119c | 6 | #define M_PI 3.14159265359 |
j_rocket_boy | 0:9da9efc2119c | 7 | #endif |
j_rocket_boy | 0:9da9efc2119c | 8 | |
j_rocket_boy | 0:9da9efc2119c | 9 | class Suteppa |
j_rocket_boy | 0:9da9efc2119c | 10 | { |
j_rocket_boy | 0:9da9efc2119c | 11 | public: |
j_rocket_boy | 0:9da9efc2119c | 12 | Suteppa(); |
j_rocket_boy | 0:9da9efc2119c | 13 | void init(unsigned long allStep, void (*stepper)(int)); |
j_rocket_boy | 0:9da9efc2119c | 14 | void setSpeed(unsigned long speed); |
j_rocket_boy | 0:9da9efc2119c | 15 | |
j_rocket_boy | 0:9da9efc2119c | 16 | void setDefaultSmooth(unsigned long step, unsigned long initSpeed); |
j_rocket_boy | 0:9da9efc2119c | 17 | |
j_rocket_boy | 0:9da9efc2119c | 18 | void beginSmooth(unsigned long step, unsigned long initSpeed); |
j_rocket_boy | 0:9da9efc2119c | 19 | void beginSmooth(); |
j_rocket_boy | 0:9da9efc2119c | 20 | |
j_rocket_boy | 0:9da9efc2119c | 21 | void endSmooth(){_smooth = false;}; |
j_rocket_boy | 0:9da9efc2119c | 22 | |
j_rocket_boy | 0:9da9efc2119c | 23 | long getStep(){return _step;}; |
j_rocket_boy | 0:9da9efc2119c | 24 | long getStepAbsolute(){return _step%_allStep;}; |
j_rocket_boy | 0:9da9efc2119c | 25 | |
j_rocket_boy | 0:9da9efc2119c | 26 | unsigned long getSpeed(){return _speed;}; |
j_rocket_boy | 0:9da9efc2119c | 27 | |
j_rocket_boy | 0:9da9efc2119c | 28 | void rotate(int mode, long step, bool sync); |
j_rocket_boy | 0:9da9efc2119c | 29 | void rotate(int mode, long step); |
j_rocket_boy | 0:9da9efc2119c | 30 | |
j_rocket_boy | 0:9da9efc2119c | 31 | void setHome(); |
j_rocket_boy | 0:9da9efc2119c | 32 | bool tick(); |
j_rocket_boy | 0:9da9efc2119c | 33 | |
j_rocket_boy | 0:9da9efc2119c | 34 | static const int RELATIVE = 0; |
j_rocket_boy | 0:9da9efc2119c | 35 | static const int ABSOLUTE = 1; |
j_rocket_boy | 0:9da9efc2119c | 36 | static const int ABSOLUTE_SKIP = 2; |
j_rocket_boy | 0:9da9efc2119c | 37 | private: |
j_rocket_boy | 0:9da9efc2119c | 38 | void _delay(unsigned long time); |
j_rocket_boy | 0:9da9efc2119c | 39 | |
j_rocket_boy | 0:9da9efc2119c | 40 | void _rotateAbsolute(long step, bool skip, bool sync); |
j_rocket_boy | 0:9da9efc2119c | 41 | void _rotateRelative(long step, bool sync); |
j_rocket_boy | 0:9da9efc2119c | 42 | |
j_rocket_boy | 0:9da9efc2119c | 43 | void (*_stepper)(int); |
j_rocket_boy | 0:9da9efc2119c | 44 | void (*_turner)(int); |
j_rocket_boy | 0:9da9efc2119c | 45 | |
j_rocket_boy | 0:9da9efc2119c | 46 | bool _smooth; |
j_rocket_boy | 0:9da9efc2119c | 47 | |
j_rocket_boy | 0:9da9efc2119c | 48 | long _step; |
j_rocket_boy | 0:9da9efc2119c | 49 | |
j_rocket_boy | 0:9da9efc2119c | 50 | unsigned long _allStep; |
j_rocket_boy | 0:9da9efc2119c | 51 | unsigned long _speed; |
j_rocket_boy | 0:9da9efc2119c | 52 | unsigned long _initDiff; |
j_rocket_boy | 0:9da9efc2119c | 53 | unsigned long _smoothStep; |
j_rocket_boy | 0:9da9efc2119c | 54 | unsigned long _initSpeed; |
j_rocket_boy | 0:9da9efc2119c | 55 | |
j_rocket_boy | 0:9da9efc2119c | 56 | unsigned long _defaultSmoothStep; |
j_rocket_boy | 0:9da9efc2119c | 57 | unsigned long _defaultInitSpeed; |
j_rocket_boy | 0:9da9efc2119c | 58 | |
j_rocket_boy | 0:9da9efc2119c | 59 | int _r_direction; |
j_rocket_boy | 0:9da9efc2119c | 60 | unsigned long _r_step; |
j_rocket_boy | 0:9da9efc2119c | 61 | unsigned long _r_smoothStep; |
j_rocket_boy | 0:9da9efc2119c | 62 | bool _r_smooth; |
j_rocket_boy | 0:9da9efc2119c | 63 | float _r_max; |
j_rocket_boy | 0:9da9efc2119c | 64 | unsigned int _r_i; |
j_rocket_boy | 0:9da9efc2119c | 65 | unsigned long _r_time; |
j_rocket_boy | 0:9da9efc2119c | 66 | unsigned long _r_interval; |
j_rocket_boy | 0:9da9efc2119c | 67 | |
j_rocket_boy | 0:9da9efc2119c | 68 | float sigmoid(float x); |
j_rocket_boy | 0:9da9efc2119c | 69 | Timer timer; |
j_rocket_boy | 0:9da9efc2119c | 70 | }; |
j_rocket_boy | 0:9da9efc2119c | 71 | |
j_rocket_boy | 0:9da9efc2119c | 72 | #endif |