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: Encoder HIDScope mbed
Fork of Motor_component_testing by
Revision 4:71ada7709c46, committed 2014-10-27
- Comitter:
- phgbartels
- Date:
- Mon Oct 27 12:45:01 2014 +0000
- Parent:
- 3:c6b8499a9021
- Child:
- 5:a0f300785c3d
- Commit message:
- Kloppen de verwachte veranderingen van de hoek bepaling!
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Oct 27 12:13:24 2014 +0000
+++ b/main.cpp Mon Oct 27 12:45:01 2014 +0000
@@ -12,6 +12,7 @@
#define PWM2_min_50 0.519 /*aanpassen! Klopt nog niet met koppelstuk*/
/*Definieren om de hoeveel seconden er gegevens naar de HID-scope gestuurd worden.*/
#define TSAMP 0.005
+#define I_LIMIT 1.
Encoder motor1(PTD3,PTD1);
Encoder motor2(PTD5, PTD0);
@@ -21,13 +22,19 @@
DigitalOut motordir2(M2_DIR);
DigitalOut LED(LED_GREEN);
+void clamp(float * in, float min, float max);
volatile bool looptimerflag;
int PWM1_percentage = 1;
int PWM2_percentage = 1;
+int aantal_rotaties = 100;
+int aantalcr = 960;
+int beginpos_motor1;
+int beginpos_motor1_new;
+int beginpos_motor2;
float PWM1 = ((1-PWM1_min_30)/100)*PWM1_percentage + PWM1_min_30;
float PWM2 = ((1-PWM2_min_50)/100)*PWM2_percentage + PWM1_min_30;
-HIDScope scope(3);
+HIDScope scope(4);
//Ticker tick;
/*void PWMc()
@@ -48,25 +55,25 @@
int main() {
//tick.attach(&PWMc, 5);
- pwm_motor1.period_us(100);
- pwm_motor2.period_us(100);
- pwm_motor1.write(PWM1);
- pwm_motor2.write(PWM2);
+ beginpos_motor1 = motor1.getPosition();
+ beginpos_motor1_new = beginpos_motor1;
+ beginpos_motor2 = motor2.getPosition();
+
+ Ticker looptimer; // looptimer = variabele van het type ticker(niet int of float), Daarmee is looptimer een classe. Omdat een classe is heeft het methods oftewel functies, zoals attach. Setlooptimerflag is een functie
+ looptimer.attach(setlooptimerflag,TSAMP); // attach betekend het koppelen van een functie aan een classe.
LED = 0;
motordir1 = 0;
motordir2 = 0;
- Ticker looptimer; // looptimer = variabele van het type ticker(niet int of float), Daarmee is looptimer een classe. Omdat een classe is heeft het methods oftewel functies, zoals attach. Setlooptimerflag is een functie
- looptimer.attach(setlooptimerflag,TSAMP); // attach betekend het koppelen van een functie aan een classe.
- while(true) {
-
- //wait(3);
- //pwm_motor1.write(0.4);
+ while(beginpos_motor1 + aantal_rotaties*aantalcr >= beginpos_motor1_new) {
+ pwm_motor1.period_us(100);
+ pwm_motor2.period_us(100);
+ pwm_motor1.write(PWM1);
+ pwm_motor2.write(PWM2);
+ beginpos_motor1_new = motor1.getPosition();
+
+ //while(true) {
LED = 1;
- //wait(1);
- //PWM = PWM + 0.05;
-
- //pwm_motor1.pulsewidth_us(50);
while(!looptimerflag) //Hierdoor zeg je eigenlijk tegen je systeem; voer dit script uit na elke TSAMP s.
{
/*do nothing*/ //Zolang dit waar is, doe je niets.
@@ -79,4 +86,21 @@
scope.set(3, motor2.getSpeed());
scope.send();
}
-}
+
+ pwm_motor1.period_us(100);
+ pwm_motor2.period_us(100);
+ pwm_motor1.write(0);
+ pwm_motor2.write(0);
+
+ LED = 0;
+ while(!looptimerflag) //Hierdoor zeg je eigenlijk tegen je systeem; voer dit script uit na elke TSAMP s.
+ {
+ /*do nothing*/ //Zolang dit waar is, doe je niets.
+ }
+ looptimerflag = false; //clear flag
+ scope.set(0, motor1.getPosition());
+ scope.set(1, motor1.getSpeed());
+ scope.set(2, motor2.getPosition());
+ scope.set(3, motor2.getSpeed());
+ scope.send();
+}
\ No newline at end of file
