欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3032|回復: 1
打印 上一主題 下一主題
收起左側

Arduino智能車循跡程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:654550 發表于 2019-12-2 19:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
使用arduino 控制
紅外循跡
可以自己設定參數調節速度
  1. #define STOP      0
  2. #define FORWARD   1
  3. #define BACKWARD  2
  4. #define TURNLEFT  3
  5. #define TURNRIGHT 4

  6. int leftMotor1 = 7;
  7. int leftMotor2 = 8;
  8. int rightMotor1 = 9;
  9. int rightMotor2 = 10;

  10. const int LeftPin1=A1;
  11. const int LeftPin2=A2;
  12. const int RightPin1=A3;
  13. const int RightPin2=A4;

  14. int leftPWM = 5;  //PWM
  15. int rightPWM = 6;  //PWM

  16. void setup() {
  17. //尋跡模塊引腳初始化
  18. pinMode(LeftPin1,INPUT);
  19. pinMode(LeftPin2,INPUT);
  20. pinMode(RightPin1,INPUT);
  21. pinMode(RightPin2,INPUT);
  22. pinMode(leftMotor1, OUTPUT);
  23. pinMode(leftMotor2, OUTPUT);
  24. pinMode(rightMotor1, OUTPUT);
  25. pinMode(rightMotor2, OUTPUT);
  26. pinMode(leftPWM, OUTPUT);
  27. pinMode(rightPWM, OUTPUT);
  28. }
  29. void loop() {
  30.   // put your main code here, to run repeatedly:
  31.   tracing();
  32. }

  33. void motorRun(int cmd,int value){
  34.    analogWrite(leftPWM, value);  //設置PWM輸出,即設置速度
  35.   analogWrite(rightPWM, value);
  36.   switch(cmd){
  37.     case FORWARD:
  38.       digitalWrite(leftMotor1, HIGH);
  39.       digitalWrite(leftMotor2, LOW);
  40.       digitalWrite(rightMotor1, HIGH);
  41.       digitalWrite(rightMotor2, LOW);
  42.       break;
  43.      case BACKWARD:
  44.       digitalWrite(leftMotor1, LOW);
  45.       digitalWrite(leftMotor2, HIGH);
  46.       digitalWrite(rightMotor1, LOW);
  47.       digitalWrite(rightMotor2, HIGH);
  48.       break;
  49.      case TURNLEFT:
  50.       digitalWrite(leftMotor1, HIGH);
  51.       digitalWrite(leftMotor2, LOW);
  52.       digitalWrite(rightMotor1, LOW);
  53.       digitalWrite(rightMotor2, HIGH);
  54.       break;
  55.      case TURNRIGHT:
  56.       digitalWrite(leftMotor1, LOW);
  57.       digitalWrite(leftMotor2, HIGH);
  58.       digitalWrite(rightMotor1, HIGH);
  59.       digitalWrite(rightMotor2, LOW);
  60.       break;
  61.      default:
  62.       digitalWrite(leftMotor1, LOW);
  63.       digitalWrite(leftMotor2, LOW);
  64.       digitalWrite(rightMotor1, LOW);
  65.       digitalWrite(rightMotor2, LOW);
  66.   }
  67. }

  68. void tracing(){
  69.   int data[4];               
  70.   data[0] = digitalRead(A4);
  71.   data[1] = digitalRead(A3);
  72.   data[2] = digitalRead(A2);
  73.   data[3] = digitalRead(A1);

  74. if(!data[0]&&data[1]&&data[2]&&!data[3]){    //中間檢測到黑線
  75. motorRun(FORWARD, 400);
  76.   }
  77. if(data[0]&&!data[3])  //右邊檢測到黑線
  78.   {
  79.     motorRun(TURNRIGHT, 150);
  80.   }

  81.   if(!data[0] || data[3])  //左邊檢測到黑線
  82.   {
  83.     motorRun(TURNLEFT, 150);
  84.   }
  85. if(!data[0] && !data[1] && !data[2] && !data[3])  //左右都沒有檢測到黑線
  86.   {
  87.     motorRun(BACKWARD, 100);
  88.   }

  89.   if(data[0] && data[3])  //左右都檢測到黑線是停止
  90.   {
  91.     motorRun(STOP, 0);
  92.     while(1);      //需要根據情況更改
  93.   }
  94. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:688644 發表于 2020-1-29 18:09 | 只看該作者
下載學習,謝謝!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表