Modified experiment example for lab 3 of 2.74

Dependencies:   ExperimentServer MotorShield QEI_pmw

Files at this revision

API Documentation at this revision

Comitter:
elijahsj
Date:
Mon Sep 26 15:55:11 2022 +0000
Parent:
24:4d2f1b7746de
Commit message:
update motor shield;

Changed in this revision

MotorShield.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 4d2f1b7746de -r 8c5c5eeff8e7 MotorShield.lib
--- a/MotorShield.lib	Mon Sep 27 19:55:59 2021 +0000
+++ b/MotorShield.lib	Mon Sep 26 15:55:11 2022 +0000
@@ -1,1 +1,1 @@
-https://os.mbed.com/users/elijahsj/code/MotorShield/#e3a2ade56b79
+https://os.mbed.com/users/adimmit/code/MotorShield/#46feb6919761
diff -r 4d2f1b7746de -r 8c5c5eeff8e7 main.cpp
--- a/main.cpp	Mon Sep 27 19:55:59 2021 +0000
+++ b/main.cpp	Mon Sep 26 15:55:11 2022 +0000
@@ -33,16 +33,16 @@
 QEI encoderC(PC_6, PC_7, NC, 1200, QEI::X4_ENCODING);  // MOTOR C ENCODER (no index, 1200 counts/rev, Quadrature encoding)
 QEI encoderD(PD_12, PD_13, NC, 1200, QEI::X4_ENCODING);// MOTOR D ENCODER (no index, 1200 counts/rev, Quadrature encoding)
 
-MotorShield motorShield(12000); //initialize the motor shield with a period of 12000 clock ticks or ~20kHZ
+MotorShield motorShield(24000); //initialize the motor shield with a period of 12000 clock ticks or ~10kHZ
 
 void current_control()   //Current control function
 {
     float error = 0;
     theta = encoderA.getPulses()*(6.2831/1200.0);
     velocity = encoderA.getVelocity()*(6.2831/1200.0);
-    current = -(motorShield.readCurrentA()*(30.0/65536.0)-15.0); //read current for motor A in amps. Note: this is a slightly different current sensor so its a different conversion than last lab.            
+    current = -(motorShield.readCurrentA()*(52.8/65536.0)-26.4); //read current for motor A in amps. Note: this is a slightly different current sensor so its a different conversion than last lab.            
     error = current_d - current;
-
+    
     volt = 0; //CHANGE THIS TO SET CURRENT CONTROLLER VALUES
     
     duty  = volt/12.0;
@@ -53,7 +53,7 @@
         duty = -1;   
     }
     if (duty >= 0){
-        motorShield.motorAWrite(duty, 0); //run motor A at "v1" duty cycle and in the forward direction 
+        motorShield.motorAWrite(duty, 0); 
     }
     else if (duty < 0){
         motorShield.motorAWrite(abs(duty), 1);