Nicht funktionierender Regler

Dependencies:   mbed

Fork of Roboshark_V3 by Roboshark

Committer:
ahlervin
Date:
Mon Apr 30 22:11:38 2018 +0000
Revision:
7:b2a16b1cf487
Parent:
6:a4b745625dbe
Child:
8:d7dfee648545
Regler

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ahlervin 6:a4b745625dbe 1 #include <cmath>
ahlervin 6:a4b745625dbe 2 #include "Regler.h"
ahlervin 6:a4b745625dbe 3
ahlervin 6:a4b745625dbe 4
ahlervin 6:a4b745625dbe 5 using namespace std;
ahlervin 6:a4b745625dbe 6
ahlervin 7:b2a16b1cf487 7 const float Regler :: PERIOD = 2.0f;
ahlervin 6:a4b745625dbe 8 const int Regler :: FIXSPEED = 25;
ahlervin 6:a4b745625dbe 9
ahlervin 6:a4b745625dbe 10
ahlervin 6:a4b745625dbe 11 Regler::Regler(AnalogIn& IrRight, AnalogIn& IrLeft):
ahlervin 6:a4b745625dbe 12 IrRight (IrRight), IrLeft (IrLeft) {
ahlervin 6:a4b745625dbe 13
ahlervin 6:a4b745625dbe 14 SpeedR = 0;
ahlervin 6:a4b745625dbe 15 SpeedL = 0;
ahlervin 6:a4b745625dbe 16 ticker.attach(callback(this, &Regler::setSpeed), PERIOD);
ahlervin 6:a4b745625dbe 17 }
ahlervin 6:a4b745625dbe 18
ahlervin 6:a4b745625dbe 19 Regler::~Regler(){
ahlervin 6:a4b745625dbe 20 ticker.detach();
ahlervin 6:a4b745625dbe 21 }
ahlervin 6:a4b745625dbe 22
ahlervin 6:a4b745625dbe 23 void Regler::setSpeed (){
ahlervin 6:a4b745625dbe 24 measR2 = IrRight.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
ahlervin 6:a4b745625dbe 25 measR2 = measR2* 1000; // Change the value to be in the 0 to 1000 range
ahlervin 6:a4b745625dbe 26 measL2 = IrLeft.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
ahlervin 6:a4b745625dbe 27 measL2 = measL2 * 1000; // Change the value to be in the 0 to 1000 range
ahlervin 6:a4b745625dbe 28
ahlervin 6:a4b745625dbe 29 if (measR2 > measL2) {
ahlervin 6:a4b745625dbe 30 div1 = measR2 - measL2;
ahlervin 6:a4b745625dbe 31 kor1 = 0.1f*div1;
ahlervin 6:a4b745625dbe 32 SpeedR = FIXSPEED;
ahlervin 6:a4b745625dbe 33 SpeedL = FIXSPEED + kor1;
ahlervin 6:a4b745625dbe 34 } else if (measR2 < measL2) {
ahlervin 6:a4b745625dbe 35 div2 = measL2 - measR2;
ahlervin 6:a4b745625dbe 36 kor2 = 0.1f*div2;
ahlervin 6:a4b745625dbe 37 SpeedR = FIXSPEED + kor2;
ahlervin 6:a4b745625dbe 38 SpeedL = FIXSPEED;
ahlervin 6:a4b745625dbe 39 } else {
ahlervin 6:a4b745625dbe 40 SpeedR = FIXSPEED;
ahlervin 6:a4b745625dbe 41 SpeedL = FIXSPEED;
ahlervin 6:a4b745625dbe 42 }
ahlervin 7:b2a16b1cf487 43 printf("SpeedR1 = %f\n",SpeedR);
ahlervin 7:b2a16b1cf487 44 printf("SpeedL1 = %f\n",SpeedL);
ahlervin 6:a4b745625dbe 45 }
ahlervin 6:a4b745625dbe 46 float Regler :: get_SpeedR (){
ahlervin 7:b2a16b1cf487 47 SpeedR = SpeedR;
ahlervin 7:b2a16b1cf487 48 printf("SpeedR2 = %f\n",SpeedR);
ahlervin 6:a4b745625dbe 49 return SpeedR;
ahlervin 6:a4b745625dbe 50 }
ahlervin 6:a4b745625dbe 51 float Regler :: get_SpeedL (){
ahlervin 7:b2a16b1cf487 52 SpeedL = SpeedL;
ahlervin 7:b2a16b1cf487 53 printf("SpeedL2 = %f\n",SpeedL);
ahlervin 6:a4b745625dbe 54 return SpeedL;
ahlervin 6:a4b745625dbe 55 }
ahlervin 6:a4b745625dbe 56
ahlervin 6:a4b745625dbe 57
ahlervin 6:a4b745625dbe 58
ahlervin 6:a4b745625dbe 59
ahlervin 6:a4b745625dbe 60
ahlervin 6:a4b745625dbe 61