標題: arduino藍牙小車加避障代碼 [打印本頁]

作者: TJCL1451681    時間: 2017-6-6 12:54
標題: arduino藍牙小車加避障代碼
  1. #define IN1 4
  2. #define IN2 5
  3. #define IN3 6
  4. #define IN4 7
  5. void forward();
  6. void back();
  7. void turnLeft();
  8. void turnRight();
  9. void _stop();
  10. int ledpin=13;
  11. int i;
  12. int TrigPin = 8;
  13. int EchoPin = 9;
  14. void setup()
  15. { pinMode(IN1,OUTPUT);
  16. pinMode(IN2,OUTPUT);
  17. pinMode(IN3,OUTPUT);
  18. pinMode(IN4,OUTPUT);
  19. pinMode(TrigPin, OUTPUT);
  20. pinMode(EchoPin, INPUT);
  21. pinMode(ledpin,OUTPUT);
  22. Serial.begin(9600);
  23. }
  24. void loop()
  25. {
  26. i= Serial.read();
  27. digitalWrite(TrigPin, LOW); // 使發(fā)出發(fā)出超聲波信號接口低電平2μs
  28. delayMicroseconds(2);
  29. digitalWrite(TrigPin, HIGH); // 使發(fā)出發(fā)出超聲波信號接口高電平10μs,這里是至少10μs
  30. delayMicroseconds(10);
  31. digitalWrite(TrigPin, LOW); // 保持發(fā)出超聲波信號接口低電平
  32. int distance = pulseIn(EchoPin, HIGH); // 讀出脈沖時間
  33. distance= distance/58; // 將脈沖時間轉(zhuǎn)化為距離(單位:厘米)
  34. Serial.println(distance); //輸出距離值
  35. delay(50);
  36. if (distance <=30)
  37. {//如果距離大于50厘米小燈亮起
  38. digitalWrite(ledpin,HIGH);
  39. digitalWrite(IN1,LOW);
  40. digitalWrite(IN2,LOW);
  41. digitalWrite(IN3,LOW);
  42. digitalWrite(IN4,LOW);

  43. }//如果距離小于50厘米小燈熄滅
  44. else
  45. digitalWrite(ledpin,LOW);

  46. //if(Serial.available())
  47. //i= Serial.read();
  48. switch(i)
  49. { case'1':{turnLeft();break;}
  50.   case'2':{forward();break;}
  51.   case'3':{turnRight();break;}
  52.   case'4':{_stop();break;}
  53.   case'5':{back();break;}
  54. }
  55.   
  56. }
  57. void forward()
  58. { digitalWrite(IN1,HIGH);
  59. digitalWrite(IN2,LOW);
  60. digitalWrite(IN3,HIGH);
  61. digitalWrite(IN4,LOW);
  62. }
  63. void back()
  64. { digitalWrite(IN1,LOW);
  65. digitalWrite(IN2,HIGH);
  66. digitalWrite(IN3,LOW);
  67. digitalWrite(IN4,HIGH);
  68. }
  69. void turnLeft()
  70. { digitalWrite(IN1,LOW);
  71. digitalWrite(IN2,LOW);
  72. digitalWrite(IN3,HIGH);
  73. digitalWrite(IN4,LOW);
  74. }

  75. void turnRight()
  76. { digitalWrite(IN1,HIGH);
  77. digitalWrite(IN2,LOW);
  78. digitalWrite(IN3,LOW);
  79. digitalWrite(IN4,LOW);
  80. }

  81. void _stop()
  82. { digitalWrite(IN1,LOW);
  83. digitalWrite(IN2,LOW);
  84. digitalWrite(IN3,LOW);
  85. digitalWrite(IN4,LOW);
  86. }

復制代碼



作者: xqxyk    時間: 2017-6-8 11:24
新手看懂了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1