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: ExperimentServer QEI_pmw MotorShield
Diff: main.cpp
- Revision:
- 5:1ab9b2527794
- Parent:
- 4:7a1b35f081bb
- Child:
- 6:1faceb53dabe
diff -r 7a1b35f081bb -r 1ab9b2527794 main.cpp
--- a/main.cpp Fri Aug 21 16:59:39 2020 +0000
+++ b/main.cpp Fri Aug 21 22:13:19 2020 +0000
@@ -9,12 +9,16 @@
Serial pc(USBTX, USBRX); // USB Serial Terminal
ExperimentServer server; // Object that lets us communicate with MATLAB
+Timer t; // Timer to measure elapsed time of experiment
+
+QEI encoderA(PE_9,PE_11, NC, 1200, QEI::X4_ENCODING); // MOTOR A ENCODER (no index, 1200 counts/rev, Quadrature encoding)
+QEI encoderB(PA_5, PB_3, NC, 1200, QEI::X4_ENCODING); // MOTOR B ENCODER (no index, 1200 counts/rev, Quadrature encoding)
+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)
+
PwmOut motorPWM(D5); // Motor PWM output
DigitalOut motorFwd(D6); // Motor forward enable
DigitalOut motorRev(D7); // Motor backward enable
-Timer t; // Timer to measure elapsed time of experiment
-
-QEI encoder(D3,D4, NC, 1200, QEI::X4_ENCODING); // Pins D3, D4, no index, 1200 counts/rev, Quadrature encoding
int main (void)
{
@@ -27,7 +31,8 @@
// Continually get input from MATLAB and run experiments
float input_params[NUM_INPUTS];
-
+ pc.printf("%f",input_params[0]);
+
while(1) {
if (server.getParams(input_params,NUM_INPUTS)) {
float v1 = input_params[0]; // Voltage for first second
@@ -36,7 +41,10 @@
// Setup experiment
t.reset();
t.start();
- encoder.reset();
+ encoderA.reset();
+ encoderB.reset();
+ encoderC.reset();
+ encoderD.reset();
motorFwd = 1;
motorRev = 0;
motorPWM.write(0);
@@ -52,8 +60,8 @@
// Form output to send to MATLAB
float output_data[NUM_OUTPUTS];
output_data[0] = t.read();
- output_data[1] = encoder.getPulses();
- output_data[2] = encoder.getVelocity();
+ output_data[1] = encoderA.getPulses();
+ output_data[2] = encoderA.getVelocity();
// Send data to MATLAB
server.sendData(output_data,NUM_OUTPUTS);