Doesn't hit the ends
Dependencies: Motordriver QEI mbed
main.cpp@0:e881319cfd74, 2016-10-21 (annotated)
- Committer:
- meikefrok
- Date:
- Fri Oct 21 11:28:55 2016 +0000
- Revision:
- 0:e881319cfd74
Encoder Cart
Who changed what in which revision?
User | Revision | Line number | New 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 | } |