Library for driving a motor with one PWM and one DIR signal using PI control.

Fork of Motor2 by Reiko Randoja

Revision:
10:b0e6051a6109
Parent:
9:bec5a728405f
Child:
11:87a73d40ce5b
diff -r bec5a728405f -r b0e6051a6109 motor.cpp
--- a/motor.cpp	Sun Sep 22 07:24:15 2013 +0000
+++ b/motor.cpp	Sun Nov 03 11:41:40 2013 +0000
@@ -7,15 +7,15 @@
     PwmOut pwm(PWMpin);
     pwm.period_us(pwmPeriod);
     setPoint = 0;
-    pMulti = 32;
-    iDiv = 1;
+    pMulti = 48;
+    iMulti = 2;
     dMulti = 1;
     error = 0;
     prevError = 0;
     P = 0;
     I = 0;
     minPwm = 100;
-    pidMulti = 128;
+    pidMulti = 256;
     iMax = 4096 * pidMulti;
     
     currentSpeed = 0;
@@ -72,7 +72,7 @@
             minPwmValue = -minPwm;
         }
         
-        I += error * pidMulti / iDiv;
+        I += error * pidMulti * iMulti;
         //constrain integral
         if (I < -iMax) I = -iMax;
         if (I > iMax) I = iMax;