mecha
Dependents: 2019NHK_A_manual_red 2019NHK_A_manual_red 2019NHK_A_manual_blue
towelest.cpp
- Committer:
- ec30109b
- Date:
- 2019-09-17
- Revision:
- 4:416d194973a3
- Parent:
- 3:63bb3e19c7eb
- Child:
- 5:1d0e66198bb4
File content as of revision 4:416d194973a3:
#include "towelest.h" towelest::towelest(Serial* RS485,int address,PinName Limit0,PinName Limit1,PinName Limit2): pid(4.0, 0, 0.001, 0.01), LimitSW0(Limit0), LimitSW1(Limit1), LimitSW2(Limit2) { Motor = new ikarashiMDC*[3]; Motor[0] = new ikarashiMDC(address,0,SM,RS485); Motor[1] = new ikarashiMDC(address,1,SM,RS485); Motor[2] = new ikarashiMDC(address,2,SM,RS485); Motor[0]->braking = true; Motor[1]->braking = true; Motor[2]->braking = true; pid.setInputLimits(-1800, 1800); pid.setOutputLimits(-0.6,0.6); pid.setBias(0.0); pid.setMode(AUTO_MODE); pid.setSetPoint(0); } void towelest::open() { if(LimitSW0.read() == 1){ Motor[0]->setSpeed(0); Motor[1]->setSpeed(0); }else{ Motor[0]->setSpeed(-0.2); Motor[1]->setSpeed(0); } } void towelest::close() { Motor[0]->setSpeed(0.2); Motor[1]->setSpeed(0); } void towelest::lift() { if(LimitSW1.read() == 1){ Motor[0]->setSpeed(0); Motor[1]->setSpeed(0); }else{ Motor[0]->setSpeed(0); Motor[1]->setSpeed(0.8); } } void towelest::descent() { if(LimitSW2.read() == 1){ Motor[0]->setSpeed(0); Motor[1]->setSpeed(0); }else{ Motor[0]->setSpeed(0); Motor[1]->setSpeed(-0.8); } } void towelest::setPoint(int target) { pid.setSetPoint(target); } void towelest::setPulse(int Loli) { loli = Loli; } void towelest::pid_compute() { pid.setProcessValue(loli); compute = pid.compute(); Motor[2]->setSpeed(compute); //pc.printf("%d %d %f \n\r",Limit1,Limit2,Limit3,RotationDistance); } void towelest::allstop() { Motor[0]->setSpeed(0); Motor[1]->setSpeed(0); Motor[2]->setSpeed(0); }