hej
hack_motor.cpp@0:66a1feb3ba85, 2014-04-05 (annotated)
- Committer:
- iLyngklip
- Date:
- Sat Apr 05 07:56:52 2014 +0000
- Revision:
- 0:66a1feb3ba85
dillerdasker
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
iLyngklip | 0:66a1feb3ba85 | 1 | #include "mbed.h" |
iLyngklip | 0:66a1feb3ba85 | 2 | #include "hack_motor.h" |
iLyngklip | 0:66a1feb3ba85 | 3 | #include "PwmOut.h" |
iLyngklip | 0:66a1feb3ba85 | 4 | |
iLyngklip | 0:66a1feb3ba85 | 5 | Wheel::Wheel() : M1A(PTC8), M1B(PTC10), M2A(PTC9), M2B(PTC11) |
iLyngklip | 0:66a1feb3ba85 | 6 | { |
iLyngklip | 0:66a1feb3ba85 | 7 | init(); |
iLyngklip | 0:66a1feb3ba85 | 8 | } |
iLyngklip | 0:66a1feb3ba85 | 9 | |
iLyngklip | 0:66a1feb3ba85 | 10 | |
iLyngklip | 0:66a1feb3ba85 | 11 | void Wheel::init() //Initialize the driver pwm to 150Hz |
iLyngklip | 0:66a1feb3ba85 | 12 | { |
iLyngklip | 0:66a1feb3ba85 | 13 | M1A.period(0.0066); |
iLyngklip | 0:66a1feb3ba85 | 14 | M2A.period(0.0066); |
iLyngklip | 0:66a1feb3ba85 | 15 | speed = 0.0; |
iLyngklip | 0:66a1feb3ba85 | 16 | } |
iLyngklip | 0:66a1feb3ba85 | 17 | |
iLyngklip | 0:66a1feb3ba85 | 18 | void Wheel::FW() |
iLyngklip | 0:66a1feb3ba85 | 19 | { |
iLyngklip | 0:66a1feb3ba85 | 20 | fw = 0.5+(0.5*speed); //forward lies in the upper 50% of the duty cycle |
iLyngklip | 0:66a1feb3ba85 | 21 | M1A.write(fw); //Set the duty cycle to the wanted percent, from speed variable |
iLyngklip | 0:66a1feb3ba85 | 22 | M2A.write(fw); // -//- |
iLyngklip | 0:66a1feb3ba85 | 23 | M1B = 0; |
iLyngklip | 0:66a1feb3ba85 | 24 | M2B = 0; |
iLyngklip | 0:66a1feb3ba85 | 25 | wait_ms(1); |
iLyngklip | 0:66a1feb3ba85 | 26 | } |
iLyngklip | 0:66a1feb3ba85 | 27 | |
iLyngklip | 0:66a1feb3ba85 | 28 | void Wheel::BW() |
iLyngklip | 0:66a1feb3ba85 | 29 | { |
iLyngklip | 0:66a1feb3ba85 | 30 | bw = 0.5-(0.5*speed); //Backward lies within the lower 50% of the duty cycle |
iLyngklip | 0:66a1feb3ba85 | 31 | M1A.write(bw); //Set the duty cycle to the wanted percent, from speed variable |
iLyngklip | 0:66a1feb3ba85 | 32 | M2A.write(bw); // -//- |
iLyngklip | 0:66a1feb3ba85 | 33 | M1B = 1; |
iLyngklip | 0:66a1feb3ba85 | 34 | M2B = 1; |
iLyngklip | 0:66a1feb3ba85 | 35 | } |
iLyngklip | 0:66a1feb3ba85 | 36 | |
iLyngklip | 0:66a1feb3ba85 | 37 | void Wheel::right() |
iLyngklip | 0:66a1feb3ba85 | 38 | { |
iLyngklip | 0:66a1feb3ba85 | 39 | M1A.write(0.75); //Left side forward 50% |
iLyngklip | 0:66a1feb3ba85 | 40 | M2A.write(0.25); //Right side backwards 50% |
iLyngklip | 0:66a1feb3ba85 | 41 | M1B = 0; |
iLyngklip | 0:66a1feb3ba85 | 42 | M2B = 1; |
iLyngklip | 0:66a1feb3ba85 | 43 | } |
iLyngklip | 0:66a1feb3ba85 | 44 | |
iLyngklip | 0:66a1feb3ba85 | 45 | void Wheel::left() |
iLyngklip | 0:66a1feb3ba85 | 46 | { |
iLyngklip | 0:66a1feb3ba85 | 47 | M1A.write(0.25); //Right side forward 50% |
iLyngklip | 0:66a1feb3ba85 | 48 | M2A.write(0.75); //Left side backwards 50% |
iLyngklip | 0:66a1feb3ba85 | 49 | M1B = 1; |
iLyngklip | 0:66a1feb3ba85 | 50 | M2B = 0; |
iLyngklip | 0:66a1feb3ba85 | 51 | } |
iLyngklip | 0:66a1feb3ba85 | 52 | |
iLyngklip | 0:66a1feb3ba85 | 53 | void Wheel::stop() |
iLyngklip | 0:66a1feb3ba85 | 54 | { |
iLyngklip | 0:66a1feb3ba85 | 55 | M1A.write(0.0); //Pin A's set low |
iLyngklip | 0:66a1feb3ba85 | 56 | M2A.write(0.0); |
iLyngklip | 0:66a1feb3ba85 | 57 | M1B = 0; |
iLyngklip | 0:66a1feb3ba85 | 58 | M2B = 0; //Pin B's set high |
iLyngklip | 0:66a1feb3ba85 | 59 | } |