Advertisement
Guest User

Untitled

a guest
May 20th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.06 KB | None | 0 0
  1. //匯入
  2.  
  3. #include <Arduino.h>
  4. #include <Wire.h>
  5. #include <SoftwareSerial.h>
  6. #include <MeMCore.h>
  7.  
  8. //自訂參數
  9. MBotDCMotor motor_left(9);
  10. MBotDCMotor motor_right(10);
  11. MeLineFollower IF1(2);    // ss1 ss2
  12. MeLineFollower IF2(1);    // ss3
  13. MeLineFollower IF3(4);    // ss4 ss5
  14. MeUltrasonicSensor UTS(3);//超音波
  15. MeBuzzer buzzer; //嗡鳴器
  16. byte ReturnIF1;
  17. byte ReturnIF2;
  18. byte ReturnIF3;
  19. int distance;   //設定一個參數為distance
  20. void setup()
  21. {
  22.   Serial.begin(115200);     //串列阜(之後要刪除)
  23.   buzzer.tone(262,200);
  24.   buzzer.tone(294,200);
  25.   buzzer.tone(330,200);    //輸出已開機訊號
  26.   }
  27. void loop()
  28. {
  29.   ReturnIF1=IF1.readSensors();
  30.   ReturnIF2=IF2.readSensors();
  31.   ReturnIF3=IF3.readSensors();   //設定五路的感測資料位置
  32.   distance=UTS.distanceCm();     //令超音波資料為distance
  33.   Serial.println(distance);       //串列阜(之後要刪除)
  34.    if(!(distance) < 5){          //距離小於5cm
  35.     Serial.println("closer");     //輸出距離太小(之後要刪除)
  36.     motor_left.run(255);
  37.     motor_right.run(-255);
  38.     delay(200);   //後退
  39.     motor_left.run(-55);
  40.     motor_right.run(255);
  41.     delay(500);    //左轉
  42.     motor_left.run(-255);
  43.     motor_right.run(255);
  44.     delay(200);    //前進
  45.     motor_left.run(-255);
  46.     motor_right.run(55);
  47.     delay(700);    //右轉
  48.     motor_left.run(-255);
  49.     motor_right.run(255);
  50.     delay(150);    //接線時請調150,鋰電池時請調250(前進)
  51.     motor_left.run(255);
  52.     motor_right.run(0);
  53.     delay(680);    //回復路線
  54.     }else{
  55.     Serial.println("far");                                   //輸出距離太遠(之後要刪除)
  56.     //以下為新型循線
  57.     // ==0 = 黑  !=0 = 白
  58.     if(ReturnIF1!=0 && ReturnIF2==0 && ReturnIF3!=0)        //ss3感白 其他感黑
  59.       {  
  60.         //白黑白
  61.          motor_left.run(-255);
  62.          motor_right.run(255);
  63.          //直走
  64.       }
  65.      else if (ReturnIF1==0 && ReturnIF2!=0 && ReturnIF3!=0) // 一二路感白 其他感黑
  66.      {  
  67.          //黑白白
  68.          motor_left.run(0);
  69.          motor_right.run(255);
  70.          //往左 (未測試)
  71.       }
  72.       else if (ReturnIF1==0 && ReturnIF2==0 && ReturnIF3!=0) // 四五路感黑 其他感白
  73.      {  
  74.          //黑黑白
  75.          motor_left.run(-255);
  76.          motor_right.run(0);
  77.          //往右(未測試)
  78.       }
  79.       else if (ReturnIF1!=0 && ReturnIF2!=0 && ReturnIF3==0) // 四五路感白 其他感黑
  80.      {
  81.          //白白黑
  82.          motor_left.run(0);
  83.          motor_right.run(255);
  84.          //往左 (未測試)
  85.       }
  86.       else if (ReturnIF1!=0 && ReturnIF2==0 && ReturnIF3==0) // 一二路感黑 其他感白
  87.      {  
  88.          //白黑黑
  89.          motor_left.run(-255);
  90.          motor_right.run(0);
  91.          //往右(未測試)
  92.       }
  93.       else if (ReturnIF1!=0 && ReturnIF2!=0 && ReturnIF3!=0) // 全感白
  94.      {  
  95.          //白白白
  96.          motor_left.run(0);
  97.          motor_right.run(0);
  98.          //(未測試)
  99.       };
  100.       }
  101.    
  102.     };
  103.   //以上為超音波感測器
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement