hej

Dependents:   RoboticHackathon

Committer:
iLyngklip
Date:
Sat Apr 05 07:56:52 2014 +0000
Revision:
0:66a1feb3ba85
dillerdasker

Who changed what in which revision?

UserRevisionLine numberNew 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 }