mecha
Dependents: 2019NHK_A_manual_red 2019NHK_A_manual_red 2019NHK_A_manual_blue
towelest.cpp@6:9f932b9adee5, 2019-10-03 (annotated)
- Committer:
- ec30109b
- Date:
- Thu Oct 03 08:42:09 2019 +0000
- Revision:
- 6:9f932b9adee5
- Parent:
- 5:1d0e66198bb4
Schmidt trigger only one.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ec30109b | 6:9f932b9adee5 | 1 | #include "towelest.h" //manual mode |
ec30109b | 0:0797b0e47e6d | 2 | |
ec30109b | 6:9f932b9adee5 | 3 | towelest::towelest(Serial* RS485,int address,PinName Limit0): |
ec30109b | 6:9f932b9adee5 | 4 | pid(7.0, 0, 0, 0.01), |
ec30109b | 6:9f932b9adee5 | 5 | LimitSW0(Limit0) |
ec30109b | 0:0797b0e47e6d | 6 | { |
ec30109b | 6:9f932b9adee5 | 7 | Motor = new ikarashiMDC*[2]; |
ec30109b | 3:63bb3e19c7eb | 8 | Motor[0] = new ikarashiMDC(address,0,SM,RS485); |
ec30109b | 6:9f932b9adee5 | 9 | Motor[1] = new ikarashiMDC(address,1,SM,RS485); |
ec30109b | 3:63bb3e19c7eb | 10 | |
ec30109b | 0:0797b0e47e6d | 11 | Motor[0]->braking = true; |
ec30109b | 0:0797b0e47e6d | 12 | Motor[1]->braking = true; |
ec30109b | 3:63bb3e19c7eb | 13 | |
ec30109b | 6:9f932b9adee5 | 14 | pid.setInputLimits(-6000, 6000); |
ec30109b | 0:0797b0e47e6d | 15 | pid.setOutputLimits(-0.6,0.6); |
ec30109b | 0:0797b0e47e6d | 16 | pid.setBias(0.0); |
ec30109b | 0:0797b0e47e6d | 17 | pid.setMode(AUTO_MODE); |
ec30109b | 0:0797b0e47e6d | 18 | pid.setSetPoint(0); |
ec30109b | 0:0797b0e47e6d | 19 | |
ec30109b | 0:0797b0e47e6d | 20 | } |
ec30109b | 0:0797b0e47e6d | 21 | |
ec30109b | 0:0797b0e47e6d | 22 | void towelest::open() |
ec30109b | 0:0797b0e47e6d | 23 | { |
ec30109b | 3:63bb3e19c7eb | 24 | if(LimitSW0.read() == 1){ |
ec30109b | 0:0797b0e47e6d | 25 | Motor[0]->setSpeed(0); |
ec30109b | 3:63bb3e19c7eb | 26 | }else{ |
ec30109b | 0:0797b0e47e6d | 27 | Motor[0]->setSpeed(-0.2); |
ec30109b | 0:0797b0e47e6d | 28 | } |
ec30109b | 0:0797b0e47e6d | 29 | } |
ec30109b | 5:1d0e66198bb4 | 30 | |
ec30109b | 2:623fb33351af | 31 | void towelest::close() |
ec30109b | 2:623fb33351af | 32 | { |
ec30109b | 2:623fb33351af | 33 | Motor[0]->setSpeed(0.2); |
ec30109b | 3:63bb3e19c7eb | 34 | } |
ec30109b | 3:63bb3e19c7eb | 35 | |
ec30109b | 4:416d194973a3 | 36 | void towelest::setPoint(int target) |
ec30109b | 0:0797b0e47e6d | 37 | { |
ec30109b | 4:416d194973a3 | 38 | pid.setSetPoint(target); |
ec30109b | 0:0797b0e47e6d | 39 | } |
ec30109b | 0:0797b0e47e6d | 40 | |
ec30109b | 2:623fb33351af | 41 | void towelest::setPulse(int Loli) |
ec30109b | 2:623fb33351af | 42 | { |
ec30109b | 2:623fb33351af | 43 | loli = Loli; |
ec30109b | 2:623fb33351af | 44 | } |
ec30109b | 2:623fb33351af | 45 | |
ec30109b | 3:63bb3e19c7eb | 46 | void towelest::pid_compute() |
ec30109b | 0:0797b0e47e6d | 47 | { |
ec30109b | 3:63bb3e19c7eb | 48 | pid.setProcessValue(loli); |
ec30109b | 3:63bb3e19c7eb | 49 | compute = pid.compute(); |
ec30109b | 6:9f932b9adee5 | 50 | Motor[1]->setSpeed(compute); |
ec30109b | 3:63bb3e19c7eb | 51 | //pc.printf("%d %d %f \n\r",Limit1,Limit2,Limit3,RotationDistance); |
ec30109b | 0:0797b0e47e6d | 52 | } |
ec30109b | 0:0797b0e47e6d | 53 | |
ec30109b | 4:416d194973a3 | 54 | void towelest::allstop() |
ec30109b | 4:416d194973a3 | 55 | { |
ec30109b | 4:416d194973a3 | 56 | Motor[0]->setSpeed(0); |
ec30109b | 6:9f932b9adee5 | 57 | // Motor[1]->setSpeed(0); |
ec30109b | 4:416d194973a3 | 58 | } |
ec30109b | 3:63bb3e19c7eb | 59 |