library to use pid easier

Revision:
4:344e46625032
Parent:
3:80e7ed9fdb02
Child:
5:ae183f132d39
--- a/PID_lib.cpp	Thu Oct 20 07:36:28 2022 +0000
+++ b/PID_lib.cpp	Thu Dec 15 00:58:59 2022 +0000
@@ -2,7 +2,8 @@
 
 
 PID_lib::PID_lib(PinName direksi1, PinName direksi2, PinName pulseWidth) : dir1(direksi1), dir2(direksi2), pwm(pulseWidth){
-    ppr = 540.0f; 
+    // ppr = 540.0f; 
+    ppr = 1000.0f; 
     
     dir1 = 0;
     dir2 = 0;
@@ -11,8 +12,21 @@
     float ppr = 540.0f;
     float phi = 3.14285714;
     
+
 //    t.start();
-//    t.reset();
+//    tr.reset();
+}
+
+void PID_lib::manualPwm(int dir ,float speed_){
+    if(dir == 1){
+      dir1 = 0;
+      dir2 = 1;
+      pwm = speed_;
+    }else if(dir == 0){
+      dir1 = 1;
+      dir2 = 0;
+      pwm = speed_;
+    }
 }
 
 void PID_lib::stop(){
@@ -25,6 +39,9 @@
     eI = 0;
     eD = 0;
     pidPwm = 0;
+    pwm = 0;
+    dir1 = 0;
+    dir2 = 0;
 }
 
 // kp ki kd untuk sp 50 tuning manual lagi stelah tuning matlab
@@ -139,3 +156,17 @@
 //  pc.printf("%f;%1lu\n",pidPwm,t1.read_high_resolution_us());
 }
 
+void PID_lib::record_data(int dir_,float speed_, float freq_rec, float t_r){
+   rpm_rec = freq_rec/ppr*60;
+       if(dir_ == 1){
+         pwm = speed_;
+         dir1 = 1;
+         dir2 = 0;
+       }else if(dir_ == 0){
+         pwm = speed_;
+         dir1 = 1;
+         dir2 = 0;
+       }
+       printf("%f;%.2f;%llu\n",speed_,rpm_rec,t_r);
+}
+