Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MODSERIAL QEI mbed biquadFilter
Revision 2:0a61483f4515, committed 2018-10-15
- Comitter:
- rubenlucas
- Date:
- Mon Oct 15 15:08:54 2018 +0000
- Parent:
- 1:76e57b695115
- Commit message:
- position reference not based anymore on velocity. script works as wanted
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Oct 15 14:57:07 2018 +0000
+++ b/main.cpp Mon Oct 15 15:08:54 2018 +0000
@@ -15,10 +15,8 @@
DigitalOut DirectionPin(D4);
AnalogIn Potmeter1(A1);
AnalogIn Potmeter2(A0);
-DigitalIn button1(D8);
//Global variables
-const double Ts = 0.01; //Sample time of Ticker measure and control (100 Hz)
volatile bool PrintFlag = false;
//Global variables for printing on screen
@@ -36,21 +34,11 @@
// Positive velocity (if button is pressed) means clockwise(CW) rotation.
- const double MaxVelocity = 6.28; //60 RPM max velocity in rad/s
- double VelocityRef; // Reference Velocity
+
double ValuePot = Potmeter1.read(); // Read value from potmeter (range from 0-1)
- static double PositionRef = 0; // Initial position value in rad
- if (button1)
- {
- VelocityRef = ValuePot*MaxVelocity; //CW
- }
- else
- {
- VelocityRef = -1*ValuePot*MaxVelocity; //CCW
- }
- PositionRef = PositionRef + VelocityRef*Ts;
+ double PositionRef = 3*6.2830*ValuePot - 3*3.1415; // position reference ranging from -1.5 rotations till 1.5 rotations
return PositionRef; //rad
}
@@ -90,9 +78,9 @@
DirectionPin = 0;
}
- if (fabs(MotorValue)>1)
+ if (fabs(MotorValue)>1) // if error more than 1 radian, full duty cycle
{
- PwmPin = 1; // if error more than 1 radian, full duty cycle
+ PwmPin = 1;
}
else
{