190605
motor.cpp@0:72fcb2468532, 2019-06-05 (annotated)
- Committer:
- jinyoung_KIL
- Date:
- Wed Jun 05 04:49:24 2019 +0000
- Revision:
- 0:72fcb2468532
good
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jinyoung_KIL | 0:72fcb2468532 | 1 | #include "motor.h" |
jinyoung_KIL | 0:72fcb2468532 | 2 | |
jinyoung_KIL | 0:72fcb2468532 | 3 | /** |
jinyoung_KIL | 0:72fcb2468532 | 4 | * Constructor. |
jinyoung_KIL | 0:72fcb2468532 | 5 | */ |
jinyoung_KIL | 0:72fcb2468532 | 6 | Motor::Motor(PinName _pwma,PinName _pwmb, PinName _ain0, PinName _ain1, PinName _bin0, PinName _bin1, float _speed) |
jinyoung_KIL | 0:72fcb2468532 | 7 | : pwma(_pwma), pwmb(_pwmb), ain1(_ain1), ain0(_ain0), bin0(_bin0), bin1(_bin1) { |
jinyoung_KIL | 0:72fcb2468532 | 8 | Speed_L = _speed; |
jinyoung_KIL | 0:72fcb2468532 | 9 | Speed_R = _speed; |
jinyoung_KIL | 0:72fcb2468532 | 10 | init_speed = _speed; |
jinyoung_KIL | 0:72fcb2468532 | 11 | } |
jinyoung_KIL | 0:72fcb2468532 | 12 | |
jinyoung_KIL | 0:72fcb2468532 | 13 | /** |
jinyoung_KIL | 0:72fcb2468532 | 14 | * Destructor. |
jinyoung_KIL | 0:72fcb2468532 | 15 | */ |
jinyoung_KIL | 0:72fcb2468532 | 16 | Motor::~Motor() { |
jinyoung_KIL | 0:72fcb2468532 | 17 | } |
jinyoung_KIL | 0:72fcb2468532 | 18 | |
jinyoung_KIL | 0:72fcb2468532 | 19 | void Motor::speed_l(float sp_l){ |
jinyoung_KIL | 0:72fcb2468532 | 20 | Speed_L = sp_l; |
jinyoung_KIL | 0:72fcb2468532 | 21 | |
jinyoung_KIL | 0:72fcb2468532 | 22 | if(Speed_L > 1){ |
jinyoung_KIL | 0:72fcb2468532 | 23 | Speed_L = 1; |
jinyoung_KIL | 0:72fcb2468532 | 24 | } |
jinyoung_KIL | 0:72fcb2468532 | 25 | if(Speed_L < 0){ |
jinyoung_KIL | 0:72fcb2468532 | 26 | Speed_L = 0; |
jinyoung_KIL | 0:72fcb2468532 | 27 | } |
jinyoung_KIL | 0:72fcb2468532 | 28 | } |
jinyoung_KIL | 0:72fcb2468532 | 29 | |
jinyoung_KIL | 0:72fcb2468532 | 30 | void Motor::speed_r(float sp_r){ |
jinyoung_KIL | 0:72fcb2468532 | 31 | Speed_R = sp_r; |
jinyoung_KIL | 0:72fcb2468532 | 32 | |
jinyoung_KIL | 0:72fcb2468532 | 33 | if(Speed_R > 1){ |
jinyoung_KIL | 0:72fcb2468532 | 34 | Speed_R = 1; |
jinyoung_KIL | 0:72fcb2468532 | 35 | } |
jinyoung_KIL | 0:72fcb2468532 | 36 | if(Speed_R < 0){ |
jinyoung_KIL | 0:72fcb2468532 | 37 | Speed_R = 0; |
jinyoung_KIL | 0:72fcb2468532 | 38 | } |
jinyoung_KIL | 0:72fcb2468532 | 39 | } |
jinyoung_KIL | 0:72fcb2468532 | 40 | |
jinyoung_KIL | 0:72fcb2468532 | 41 | void Motor::speedup_l(void){ |
jinyoung_KIL | 0:72fcb2468532 | 42 | Speed_L += 0.005; |
jinyoung_KIL | 0:72fcb2468532 | 43 | if(Speed_L > 1){ |
jinyoung_KIL | 0:72fcb2468532 | 44 | Speed_L = 1; |
jinyoung_KIL | 0:72fcb2468532 | 45 | } |
jinyoung_KIL | 0:72fcb2468532 | 46 | } |
jinyoung_KIL | 0:72fcb2468532 | 47 | |
jinyoung_KIL | 0:72fcb2468532 | 48 | void Motor::speeddown_l(void){ |
jinyoung_KIL | 0:72fcb2468532 | 49 | Speed_L -= 0.005; |
jinyoung_KIL | 0:72fcb2468532 | 50 | if(Speed_L < 0){ |
jinyoung_KIL | 0:72fcb2468532 | 51 | Speed_L = 0; |
jinyoung_KIL | 0:72fcb2468532 | 52 | } |
jinyoung_KIL | 0:72fcb2468532 | 53 | } |
jinyoung_KIL | 0:72fcb2468532 | 54 | |
jinyoung_KIL | 0:72fcb2468532 | 55 | void Motor::speedup_r(void){ |
jinyoung_KIL | 0:72fcb2468532 | 56 | Speed_R += 0.005; |
jinyoung_KIL | 0:72fcb2468532 | 57 | if(Speed_R > 1){ |
jinyoung_KIL | 0:72fcb2468532 | 58 | Speed_R = 1; |
jinyoung_KIL | 0:72fcb2468532 | 59 | } |
jinyoung_KIL | 0:72fcb2468532 | 60 | } |
jinyoung_KIL | 0:72fcb2468532 | 61 | void Motor::speeddown_r(void){ |
jinyoung_KIL | 0:72fcb2468532 | 62 | Speed_R -= 0.005; |
jinyoung_KIL | 0:72fcb2468532 | 63 | if(Speed_R < 0){ |
jinyoung_KIL | 0:72fcb2468532 | 64 | Speed_R = 0; |
jinyoung_KIL | 0:72fcb2468532 | 65 | } |
jinyoung_KIL | 0:72fcb2468532 | 66 | } |
jinyoung_KIL | 0:72fcb2468532 | 67 | |
jinyoung_KIL | 0:72fcb2468532 | 68 | void Motor::forward(void){ |
jinyoung_KIL | 0:72fcb2468532 | 69 | pwma = Speed_L * 0.7; |
jinyoung_KIL | 0:72fcb2468532 | 70 | pwmb = Speed_R; |
jinyoung_KIL | 0:72fcb2468532 | 71 | |
jinyoung_KIL | 0:72fcb2468532 | 72 | ain0 = 1; |
jinyoung_KIL | 0:72fcb2468532 | 73 | ain1 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 74 | |
jinyoung_KIL | 0:72fcb2468532 | 75 | bin0 = 1; |
jinyoung_KIL | 0:72fcb2468532 | 76 | bin1 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 77 | } |
jinyoung_KIL | 0:72fcb2468532 | 78 | |
jinyoung_KIL | 0:72fcb2468532 | 79 | void Motor::backward(void){ |
jinyoung_KIL | 0:72fcb2468532 | 80 | |
jinyoung_KIL | 0:72fcb2468532 | 81 | pwma = Speed_L; |
jinyoung_KIL | 0:72fcb2468532 | 82 | pwmb = Speed_R; |
jinyoung_KIL | 0:72fcb2468532 | 83 | |
jinyoung_KIL | 0:72fcb2468532 | 84 | ain0 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 85 | ain1 = 1; |
jinyoung_KIL | 0:72fcb2468532 | 86 | |
jinyoung_KIL | 0:72fcb2468532 | 87 | bin0 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 88 | bin1 = 1; |
jinyoung_KIL | 0:72fcb2468532 | 89 | } |
jinyoung_KIL | 0:72fcb2468532 | 90 | |
jinyoung_KIL | 0:72fcb2468532 | 91 | void Motor::left(void){ |
jinyoung_KIL | 0:72fcb2468532 | 92 | pwma = Speed_L*0.8; |
jinyoung_KIL | 0:72fcb2468532 | 93 | pwmb = Speed_R; |
jinyoung_KIL | 0:72fcb2468532 | 94 | |
jinyoung_KIL | 0:72fcb2468532 | 95 | ain0 = 1; |
jinyoung_KIL | 0:72fcb2468532 | 96 | ain1 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 97 | |
jinyoung_KIL | 0:72fcb2468532 | 98 | bin0 = 1; |
jinyoung_KIL | 0:72fcb2468532 | 99 | bin1 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 100 | } |
jinyoung_KIL | 0:72fcb2468532 | 101 | void Motor::right(void){ |
jinyoung_KIL | 0:72fcb2468532 | 102 | pwma = Speed_L; |
jinyoung_KIL | 0:72fcb2468532 | 103 | pwmb = Speed_R*0.85; |
jinyoung_KIL | 0:72fcb2468532 | 104 | |
jinyoung_KIL | 0:72fcb2468532 | 105 | ain0 = 1; |
jinyoung_KIL | 0:72fcb2468532 | 106 | ain1 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 107 | |
jinyoung_KIL | 0:72fcb2468532 | 108 | bin0 = 1; |
jinyoung_KIL | 0:72fcb2468532 | 109 | bin1 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 110 | } |
jinyoung_KIL | 0:72fcb2468532 | 111 | void Motor::stop(void){ |
jinyoung_KIL | 0:72fcb2468532 | 112 | pwma = init_speed; |
jinyoung_KIL | 0:72fcb2468532 | 113 | pwmb = init_speed; |
jinyoung_KIL | 0:72fcb2468532 | 114 | |
jinyoung_KIL | 0:72fcb2468532 | 115 | ain0 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 116 | ain1 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 117 | |
jinyoung_KIL | 0:72fcb2468532 | 118 | bin0 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 119 | bin1 = 0; |
jinyoung_KIL | 0:72fcb2468532 | 120 | } |