mecha

Dependents:   2019NHK_A_manual_red 2019NHK_A_manual_red 2019NHK_A_manual_blue

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?

UserRevisionLine numberNew 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