ライントレース(テスト)

Dependencies:   mbed

Fork of linetrace_test by Rui Kato

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);