mech / Mbed 2 deprecated line-trace3

Dependencies:   mbed line-trace2

main.cpp

Committer:
isshikiyuya
Date:
2018-12-07
Revision:
1:a8fad3c66162
Parent:
0:764148148257
Child:
2:deefc81cf5a5

File content as of revision 1:a8fad3c66162:

#include "function.h"

PwmOut pwm11(D5);           //左正転
PwmOut pwm12(D1);           //左逆転
PwmOut pwm21(D6);           //右正転
PwmOut pwm22(D9);           //右逆転
DigitalOut LED(D2);
InterruptIn button1(A1);    //フォトインタラプタ
InterruptIn button2(A2);    //フォトインタラプタ
AnalogIn   in1(A3);         //フォトリフレクタ左
AnalogIn   in2(A4);         //フォトリフレクタ真ん中
AnalogIn   in3(A6);         //フォトリフレクタ右

float thr1 = 0.70f;
float thr2 = 0.70f;
float thr3 = 0.70f;
int judge1 = 0;
int judge2 = 0;
int judge3 = 0;

int main() {
    pwm11.period(0.01f);  //100Hz
    pwm12.period(0.01f);  //100Hz
    pwm21.period(0.01f);  //100Hz
    pwm22.period(0.01f);  //100Hz
    button1.rise(&flip1);
    button2.rise(&flip2);
    int n;//3biteで状態を表現
    
    while(1) {
        
        if(  count1 + count2 > 43*2*12){ //200mm毎にLEDを点滅
        LED = 1.0f;
        wait(0.5f);
        LED = 0;
        count1 = 0;
        count2 = 0;
        }
//////////////////floatのinをintのjudgeに変換
        if(in1 > thr1){
            judge1 = 1;
            }
         else{
            judge1 = 0;
            }
            if(in2 > thr2){
            judge2 = 1;
            }
         else{
            judge2 = 0;
            }
            if(in3 > thr3){
            judge3 = 1;
            }
         else{
            judge3 = 0;
            }
/////////////////
        n = judge1 + judge2*2 + judge3*4;
   /*     distance = (distance1 + distance2) / 2;
        if(ditance < 43*12*){
            */
            switch(n){
              case(2)://白黒白進む
              pwm11.write(0.30f);
              pwm12.write(0.00f);
              pwm21.write(0.30f);
              pwm22.write(0.00f);
              break;
              
              case(0)://白白白
              pwm11.write(0.10f);
              pwm12.write(0.10f);
              pwm21.write(0.10f);
              pwm22.write(0.10f);
              break;
            
              case(1)://黒白白左回転
              pwm11.write(0.20f);
              pwm12.write(0.00f);
              pwm21.write(0.05f);
              pwm22.write(0.00f);
              break;
            
              case(4)://白白黒右回転
              pwm11.write(0.05f);
              pwm12.write(0.00f);
              pwm21.write(0.20f);
              pwm22.write(0.00f);
              break;
               
              default://それ以外
              pwm11.write(0.00f);
              pwm12.write(0.00f);
              pwm21.write(0.00f);
              pwm22.write(0.00f);
              break;
              
        }
    }
}