ライントレース(テスト)
Dependencies: mbed
Fork of linetrace_test by
Diff: main.cpp
- Revision:
- 1:3af3d6834515
- Parent:
- 0:3a6873f917b6
- Child:
- 2:7b84f6d2cf63
--- a/main.cpp Mon Nov 13 05:38:57 2017 +0000 +++ b/main.cpp Mon Nov 13 07:19:51 2017 +0000 @@ -11,11 +11,13 @@ PwmOut mypwm2(D2); PwmOut mypwm3(D3); -#define STATE_A (0) -#define STATE_B (1) -#define STATE_C (2) -#define STATE_D (3) -#define STATE_E (4) +#define STATE_A (0) // 前進 +#define STATE_B (1) // 右旋回 +#define STATE_C (2) // 左旋回 +#define STATE_D (3) // 後退 +#define STATE_E (4) // 左前進 +#define STATE_F (5) // 右前進 +#define STATE_G (6) // ブレーキ void Motor(char); @@ -24,12 +26,12 @@ while(1) { if(photoref_M > 0.5) { // ライン中央:白 myled = 1; - mode = STATE_E; + mode = STATE_E; // 左前進 Motor(mode); } else { // ライン中央:黒 myled = 0; - mode = STATE_A; + mode = STATE_F; // 右前進 Motor(mode); } } @@ -57,7 +59,7 @@ mypwm3.pulsewidth_ms(5); break; - // STATE_C : 左旋回(左:逆転 右:正転) + // STATE_C : 左旋回(左:逆転 右:正転) case STATE_C: // 左モータの制御 mypwm4.pulsewidth_ms(0); @@ -76,9 +78,29 @@ mypwm2.pulsewidth_ms(0); mypwm3.pulsewidth_ms(5); break; + + // STATE_E : 左前進(左:ブレーキ 右:正転) + case STATE_E: + // 左モータの制御 + mypwm4.pulsewidth_ms(5); + mypwm5.pulsewidth_ms(5); + // 右モータの制御 + mypwm2.pulsewidth_ms(5); + mypwm3.pulsewidth_ms(0); + break; + + // STATE_F : 右前進(左:正転 右:ブレーキ) + case STATE_F: + // 左モータの制御 + mypwm4.pulsewidth_ms(5); + mypwm5.pulsewidth_ms(0); + // 右モータの制御 + mypwm2.pulsewidth_ms(5); + mypwm3.pulsewidth_ms(5); + break; - // STATE_E : ブレーキ(左:ブレーキ 右:ブレーキ) - case STATE_E: + // STATE_G : ブレーキ(左:ブレーキ 右:ブレーキ) + case STATE_G: // 左モータの制御 mypwm4.pulsewidth_ms(5); mypwm5.pulsewidth_ms(5);