久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5716|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

國外找的arduino循跡智能車安裝方法及代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:313630 發(fā)表于 2018-4-22 12:35 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
循跡智能車安裝方法


arduino單片機(jī)源程序如下:
  1. /* Arduino Object Avoidance Car
  2. * By Kevin Cho
  3. *
  4. * Inspired by http://www.instructables.com/id/Simple-Arduino-and-HC-SR04-Example/
  5. * PWM setup value from :http://playground.arduino.cc/Code/PwmFrequency
  6. *
  7. * This code allows an Arduino Smart employing HC-SR04 Ping distance sensor to identify an obstacle on its path and turns
  8. * left to avoid it.
  9. *
  10. * ===== Ultrasonic Sensor (HC-SR04) =====
  11. * pins:
  12. * Echo to digital input (see pin assignment below)
  13. * Trig to digital input (see ping assignmanet below)
  14. *
  15. * ===== motor output =====
  16. * 3 outputs for the left motor control
  17. * 3 outputs for the right motor control
  18. *
  19. * See below for pin assignment for Arduino digital ports.
  20. * PWM control must be on PWM pins 3, 5, 6, 9, 10 and 11.
  21. */

  22. //Pin assignment
  23. const int usTrigPin = 3; //connects to Arduino digital pin #2
  24. const int usEchoPin = 4; //connects to Arduino digital pin #3

  25. const int lMotPos = 6;  //left motor(+)
  26. const int lMotNeg = 7;  //left motor(-1)

  27. const int rMotNeg = 8;  //right motor (-1)
  28. const int rMotPos = 11; //right motor (+1)

  29. const int led = 13;      //Arduino built-in led. No connection required

  30. //operational parameters
  31. const int paceOfSound = 29.15;  //pace of sound = 1/speed of sound
  32.                                 //              = 1/0.03435 cm/ss
  33.                                 //              = 29.15 us/cm

  34. //CALIBRATION
  35. int turningPoint = 20;  //turn when an obstacle is within 20cm (approx 8in)

  36. //wait 100msec until next sensor check.
  37. int sensDelay = 100;

  38. //used only in testing phase
  39. boolean DEBUG = false;    //change to true when debuging. See serial monitor for log

  40. // the setup routine runs once when you press reset or power on
  41. void setup() {
  42.    //set digital pin modes for ultrasonic sensors
  43.   pinMode(usTrigPin, OUTPUT);
  44.   pinMode(usEchoPin, INPUT);

  45.   //set digital pin mode for built-in led
  46.   pinMode(led, OUTPUT);

  47.   if (DEBUG) Serial.begin (115200); //set the serial monitor transfer speed
  48.   
  49.   delay (1000);  //wait 1 sec before going
  50. }


  51. void loop() {  

  52.   int distance;
  53.   
  54.   // call getDistance to get the distance to an obstacle. Ignore anything farther than 100cm
  55.   distance = getDistance();
  56.   
  57.   if (distance >= turningPoint || distance <= 0) {
  58.       goForward();
  59.       digitalWrite(led, LOW);  //led off
  60.   } else {
  61.       if (DEBUG) {
  62.         Serial.println("Alert: Turn left");
  63.       }
  64.    
  65.       turnLeft();
  66.       digitalWrite(led, HIGH);  //led on
  67.   }
  68.   
  69.   delay(sensDelay);
  70. }

  71. int getDistance() {
  72.   
  73.   long duration, distance;
  74.   
  75.   digitalWrite(usTrigPin, LOW);  // Added this line
  76.   delayMicroseconds(2); // Added this line

  77.   //send 10 micro second pulse to trigger
  78.   digitalWrite(usTrigPin, HIGH);
  79.   delayMicroseconds(10); // Added this line per spec (spec says at least 10us)
  80.   digitalWrite(usTrigPin, LOW);

  81.   //Below step wait for HIGH upto a second (default) on the Echo pin before timing out.
  82.   duration = pulseIn(usEchoPin, HIGH);   //wait for HIGH
  83.                                          
  84.   //calculate the distance in cm
  85.   distance = (duration/2) / paceOfSound;

  86.   //We don't care about distance of more than 100cm
  87.   if (distance >= 100 || distance <= 0){
  88.       if (DEBUG) Serial.println("getDistance: Out of range");
  89.       return 0;
  90.   } else {
  91.       if (DEBUG) {
  92.         Serial.print("getDistance: ");
  93.         Serial.print(distance);
  94.         Serial.println(" cm");
  95.       }
  96.       return distance;
  97.   }
  98. }  

  99. void goForward ()
  100. {
  101.   digitalWrite (lMotNeg, LOW);
  102.   digitalWrite (lMotPos, HIGH);   
  103.   digitalWrite (rMotNeg, LOW);   
  104.   digitalWrite (rMotPos, HIGH);
  105. }

  106. void turnLeft ()
  107. {
  108.   digitalWrite (lMotNeg, HIGH);  
  109.   digitalWrite (lMotPos, LOW);
  110.   digitalWrite (rMotNeg, LOW);   
  111.   digitalWrite (rMotPos, HIGH);
  112. }

  113. void turnRight ()
  114. {
  115.   digitalWrite (lMotNeg, LOW);  
  116.   digitalWrite (lMotPos, HIGH);
  117.   digitalWrite (rMotNeg, HIGH);   
  118. ……………………

  119. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
小車安裝.rar (11.3 MB, 下載次數(shù): 20)
源代碼.rar (3.61 KB, 下載次數(shù): 16)



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

使用道具 舉報

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩精品一区 | 久久99久久99久久 | 久久精品中文字幕 | 在线婷婷| 国产xxxx在线| 国产在线观看一区二区 | 精品国产一区二区三区在线观看 | 日韩欧美一级精品久久 | 久久国产精品视频观看 | 欧美一级片在线观看 | 欧美日韩在线观看一区 | 成人av播放| 欧美a在线观看 | 中文字幕av网站 | 欧美日韩国产在线观看 | 日本三级全黄三级三级三级口周 | 亚洲在线观看视频 | 欧美一级毛片久久99精品蜜桃 | 亚洲高清一区二区三区 | 国内精品久久久久久久 | 日韩中文字幕视频 | 亚洲午夜电影 | 九九导航 | 美女福利网站 | 天天爽夜夜爽精品视频婷婷 | 91精品国产高清一区二区三区 | 亚洲精品国产第一综合99久久 | 在线视频成人 | 搞av.com| 成人精品一区亚洲午夜久久久 | 久久久资源 | 成人国产精品久久 | 久久中文视频 | 久久在看| 黄色三级在线播放 | 久久国产亚洲 | 国产一区二区免费 | 精品九九 | 亚洲精品一区二三区不卡 | 91久久夜色精品国产网站 | 亚洲精品乱码久久久久久蜜桃 |