Nicht funktionierender Regler
Dependencies: mbed
Fork of Roboshark_V3 by
Regler.cpp@7:b2a16b1cf487, 2018-04-30 (annotated)
- 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?
User | Revision | Line number | New 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 |