QUI test for the BioRobotics Shield and Pololu motor.

Dependencies:   QEI mbed

Committer:
Jankoekenpan
Date:
Tue Sep 27 15:35:14 2016 +0000
Revision:
0:f7f02194f5d6
working qei :D

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jankoekenpan 0:f7f02194f5d6 1 #include "mbed.h"
Jankoekenpan 0:f7f02194f5d6 2 #include "QEI.h"
Jankoekenpan 0:f7f02194f5d6 3
Jankoekenpan 0:f7f02194f5d6 4 Serial pc(USBTX, USBRX);
Jankoekenpan 0:f7f02194f5d6 5 InterruptIn reset_button(D2);
Jankoekenpan 0:f7f02194f5d6 6
Jankoekenpan 0:f7f02194f5d6 7 const float ratio = 1.0f/131.25f;
Jankoekenpan 0:f7f02194f5d6 8
Jankoekenpan 0:f7f02194f5d6 9 QEI qei(D13, D12, NC, 32);
Jankoekenpan 0:f7f02194f5d6 10
Jankoekenpan 0:f7f02194f5d6 11 Ticker printer;
Jankoekenpan 0:f7f02194f5d6 12 volatile int seconds_passed = 0;
Jankoekenpan 0:f7f02194f5d6 13
Jankoekenpan 0:f7f02194f5d6 14 void onTick() {
Jankoekenpan 0:f7f02194f5d6 15 pc.printf("pulses = %d\r\n", qei.getPulses());
Jankoekenpan 0:f7f02194f5d6 16 pc.printf("revolutions = %d\r\n", qei.getRevolutions());
Jankoekenpan 0:f7f02194f5d6 17 pc.printf("angular velocity = %d degrees/second\r\n", (qei.getPulses() / ++seconds_passed) * (360/32));
Jankoekenpan 0:f7f02194f5d6 18 pc.printf("\n\n");
Jankoekenpan 0:f7f02194f5d6 19 }
Jankoekenpan 0:f7f02194f5d6 20
Jankoekenpan 0:f7f02194f5d6 21 void reset() {
Jankoekenpan 0:f7f02194f5d6 22 seconds_passed = 0;
Jankoekenpan 0:f7f02194f5d6 23 qei.reset();
Jankoekenpan 0:f7f02194f5d6 24 }
Jankoekenpan 0:f7f02194f5d6 25
Jankoekenpan 0:f7f02194f5d6 26 int main()
Jankoekenpan 0:f7f02194f5d6 27 {
Jankoekenpan 0:f7f02194f5d6 28 pc.baud(115200);
Jankoekenpan 0:f7f02194f5d6 29 qei.reset();
Jankoekenpan 0:f7f02194f5d6 30 printer.attach(onTick, 1);
Jankoekenpan 0:f7f02194f5d6 31 reset_button.fall(reset); //there must be a better/cleaner way to do this.
Jankoekenpan 0:f7f02194f5d6 32 while (true);
Jankoekenpan 0:f7f02194f5d6 33 }