Doesn't hit the ends

Dependencies:   Motordriver QEI mbed

Committer:
meikefrok
Date:
Fri Oct 21 11:28:55 2016 +0000
Revision:
0:e881319cfd74
Encoder Cart

Who changed what in which revision?

UserRevisionLine numberNew contents of line
meikefrok 0:e881319cfd74 1 #include "QEI.h"
meikefrok 0:e881319cfd74 2 #include "mbed.h"
meikefrok 0:e881319cfd74 3 #include "motordriver.h"
meikefrok 0:e881319cfd74 4
meikefrok 0:e881319cfd74 5 //======== Serial Communication ================================================
meikefrok 0:e881319cfd74 6 Serial pc(USBTX, USBRX);
meikefrok 0:e881319cfd74 7
meikefrok 0:e881319cfd74 8
meikefrok 0:e881319cfd74 9 //======== Motor and QEI =======================================================
meikefrok 0:e881319cfd74 10 QEI wheel (D12, D13, NC, 62);
meikefrok 0:e881319cfd74 11
meikefrok 0:e881319cfd74 12 //Safety for Motor
meikefrok 0:e881319cfd74 13 int Brakeable;
meikefrok 0:e881319cfd74 14 int sign;
meikefrok 0:e881319cfd74 15
meikefrok 0:e881319cfd74 16 //Motor
meikefrok 0:e881319cfd74 17 Motor A(D6, D7, D7, Brakeable); // pwm, fwd, rev, brake LEFT
meikefrok 0:e881319cfd74 18
meikefrok 0:e881319cfd74 19
meikefrok 0:e881319cfd74 20 //======== Miscellaneous =======================================================
meikefrok 0:e881319cfd74 21 AnalogIn pot(A1); //Potmeter
meikefrok 0:e881319cfd74 22 DigitalOut led(LED_GREEN); //Green LED
meikefrok 0:e881319cfd74 23 InterruptIn btn(SW2); //Button
meikefrok 0:e881319cfd74 24 InterruptIn btn2(SW3); //Button
meikefrok 0:e881319cfd74 25
meikefrok 0:e881319cfd74 26
meikefrok 0:e881319cfd74 27 //======== Variables ===========================================================
meikefrok 0:e881319cfd74 28 float factor = 0.03279;
meikefrok 0:e881319cfd74 29 int position;
meikefrok 0:e881319cfd74 30 float ain; /* Variable to store the analog input*/
meikefrok 0:e881319cfd74 31
meikefrok 0:e881319cfd74 32
meikefrok 0:e881319cfd74 33
meikefrok 0:e881319cfd74 34
meikefrok 0:e881319cfd74 35 //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
meikefrok 0:e881319cfd74 36 //======== Functions and main ==================================================
meikefrok 0:e881319cfd74 37 int main() {
meikefrok 0:e881319cfd74 38 while(1){
meikefrok 0:e881319cfd74 39
meikefrok 0:e881319cfd74 40 if(btn && btn2) {
meikefrok 0:e881319cfd74 41 A.speed(0)==0;
meikefrok 0:e881319cfd74 42
meikefrok 0:e881319cfd74 43 }else if(btn && !btn2){
meikefrok 0:e881319cfd74 44 if(position <= -105){
meikefrok 0:e881319cfd74 45 A.speed(0.2)==0.2;
meikefrok 0:e881319cfd74 46
meikefrok 0:e881319cfd74 47 }else{
meikefrok 0:e881319cfd74 48 A.speed(-0.5)==-0.5;
meikefrok 0:e881319cfd74 49 }
meikefrok 0:e881319cfd74 50
meikefrok 0:e881319cfd74 51 }else if(!btn && btn2){
meikefrok 0:e881319cfd74 52 if(position >= 105){
meikefrok 0:e881319cfd74 53 A.speed(-0.2)==-0.2;
meikefrok 0:e881319cfd74 54
meikefrok 0:e881319cfd74 55 }else{
meikefrok 0:e881319cfd74 56 A.speed(0.5)==0.5;
meikefrok 0:e881319cfd74 57 }
meikefrok 0:e881319cfd74 58 }
meikefrok 0:e881319cfd74 59
meikefrok 0:e881319cfd74 60 else{
meikefrok 0:e881319cfd74 61 A.speed(0)==0;
meikefrok 0:e881319cfd74 62 }
meikefrok 0:e881319cfd74 63
meikefrok 0:e881319cfd74 64 position = (wheel.getPulses()*factor) ; // position of the motor
meikefrok 0:e881319cfd74 65 ain = pot.read();
meikefrok 0:e881319cfd74 66
meikefrok 0:e881319cfd74 67 if (ain == 0){
meikefrok 0:e881319cfd74 68 wheel.reset();
meikefrok 0:e881319cfd74 69 }
meikefrok 0:e881319cfd74 70 else {}
meikefrok 0:e881319cfd74 71 wait(0.1);
meikefrok 0:e881319cfd74 72 pc.baud(115200);
meikefrok 0:e881319cfd74 73 pc.printf("Afgelegde milimeters is: %i\n", position);
meikefrok 0:e881319cfd74 74 }
meikefrok 0:e881319cfd74 75
meikefrok 0:e881319cfd74 76 }