找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
發表文章前請先閱讀相關版規尊貴會員無限使用任何功能伊莉需要你的贊助和支持
mega無碼ge強姦人妖ntr銀魂kkbox
修真界禁無窮重組towermiab 204百鍊成夏筠婷玄渾道章

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

城管沒收百姓烤爐 結

[繁]為美好的世界獻上

[繁]轉生為第七王子,

[繁]魔法科高中的劣等

[簡]狼與辛香料 Merch

[簡]狼與辛香料 Merch
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 3479|回復: 3
打印上一主題下一主題

[問題]有關Arduino的問題[複製鏈接]

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
7565
積分
4321 點
潛水值
34960 米
樓主
發表於 2017-5-4 10:21 AM|顯示全部樓層
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
本帖最後由 chevylin0802 於 2017-5-4 10:30 AM 編輯
  1. #include <SoftwareSerial.h>
  2. #include <Wire.h>  
  3. #include <stdio.h>
  4. int enablePin = 6;
  5. int motorPin1 = 3;
  6. int motorPin2 = 5;
  7. int trig = 9 , echo = 8 ;
  8. int beep = 12;
  9. char x;
  10. byte dis[6];  //distance package
  11. SoftwareSerial BT(10, 11); // RX, TX
  12. float distance = 0;
  13. char dischar[4];
  14. int speed = 0; // speed control value
  15. int i=0;


  16. float Length()
  17. {
  18.   float duration, distancetmp;
  19.   digitalWrite(trig, HIGH);
  20.   delayMicroseconds(1000);
  21.   digitalWrite(trig, LOW);
  22.   duration = pulseIn (echo, HIGH);
  23.   distancetmp = (duration / 2) / 29;
  24.   return distancetmp;
  25. }

  26. void setup()
  27. {
  28.   // put your setup code here, to run once:
  29.   Serial.begin(9600);
  30.   BT.begin(9600);
  31.   pinMode(motorPin1, OUTPUT);
  32.   pinMode(motorPin2, OUTPUT);
  33.   pinMode(enablePin, OUTPUT);
  34.   pinMode(trig, OUTPUT);
  35.   pinMode(echo, INPUT);
  36.   pinMode(beep, OUTPUT);
  37.   digitalWrite(motorPin1, LOW);
  38.   digitalWrite(motorPin2, LOW);
  39.   digitalWrite(enablePin, LOW);
  40.   delay(1000);
  41. }

  42. void loop()
  43. {
  44.   
  45.   distance = Length();
  46.   if (distance < 20) {   
  47.     Serial.print("WARNING!");
  48.     Serial.print("Obstacle!!");
  49.     digitalWrite(beep,HIGH);
  50.     // delay(500);     
  51.     // cancelled because too many delay code
  52.     digitalWrite(beep,LOW);
  53.     speed = 0;
  54.     analogWrite(enablePin, speed);
  55.   } else {
  56.     Serial.print("OK!");
  57.     digitalWrite(beep,LOW);
  58.     // delay(500);     
  59.     // cancelled because too many delay code
  60.     if( speed == 0 ) {
  61.         speed = 191; // 191 or 127 ?
  62.         analogWrite(enablePin, speed);
  63.     }
  64.   }
  65.   Serial.print("distance = ");
  66.   Serial.print(distance);
  67.   Serial.println("cm");
  68.   delay(500);
  69.   
  70.   int sendData = (int) (distance * 100); //times 100 and convert disance to integer
  71.   byte packet[3];
  72.   packet[0] = 97;
  73.   packet[1] = sendData / 256; //divides sendData to two 1 byte packets
  74.   packet[2] = sendData % 256;
  75.   if ( BT.available() > 0 ) {
  76.     if (BT.read() == 97) {
  77.        for(int i = 0; i < 3; i++)
  78.            BT.write(packet);
  79.     }
  80.     val = BT.read();
  81.       
  82.     switch(x) {
  83.       case 'F':   // car forward
  84.                 forward();
  85.                 break;
  86.       case 'B':   // car back
  87.                 back();
  88.                 break;
  89.       case 'S':   // car stop
  90.                 motorstop();
  91.                 break;      
  92.       case 'H':   // speed high
  93.                 motorhigh();
  94.                 break;
  95.       case 'M':   // speed mid
  96.                 motormedian();
  97.                 break;      
  98.       case 'L':   // speed low
  99.                 motorlow();
  100.                 break;                              
  101.     }   
  102.     delay(500);  // if bluetooth command transmitted, the delay is need
  103.   }

  104. }

  105. void motorstop()
  106. {
  107.   speed = 0;
  108.   Serial.println("Stop!");
  109.   digitalWrite(motorPin1, LOW);
  110.   digitalWrite(motorPin2, LOW);
  111.   analogWrite(enablePin, speed);
  112. }

  113. void forward()
  114. {
  115.   Serial.println("Forward!");
  116.   digitalWrite(motorPin1, HIGH);
  117.   digitalWrite(motorPin2, LOW);
  118.   if(speed == 0) {
  119.      speed = 127;
  120.      analogWrite(enablePin, speed);
  121.   }
  122. }

  123. void back()
  124. {
  125.   Serial.println("Back!");
  126.   digitalWrite(motorPin1, LOW);
  127.   digitalWrite(motorPin2, HIGH);
  128.   if(speed == 0) {
  129.      speed = 127;
  130.      analogWrite(enablePin, speed);
  131.   }
  132. }

  133. void motorhigh()
  134. {
  135.   Serial.println("High!");
  136.   if( speed != 255 ) { // if is 255 then no more need repeat the output
  137.       speed = 255;
  138.       analogWrite(enablePin, speed);
  139.   }
  140. }

  141. void motormedian()
  142. {
  143.   speed = 127;
  144.   Serial.println("Median!");
  145.   if( speed != 127 ) { // if is 127 then no more need repeat the output
  146.       speed =127;
  147.       analogWrite(enablePin, speed);
  148.   }
  149. }

  150. void motorlow()
  151. {
  152.   speed = 63;
  153.   Serial.println("Low!");
  154.   if( speed != 63 ) { // if is 63 then no more need repeat the output
  155.       speed = 63;
  156.       analogWrite(enablePin, speed);
  157.   }
  158. }
複製代碼
這是修改後的代碼
你可以試試...
瀏覽完整內容,請先 註冊登入會員
系統已重置禁訪用戶到普通用戶和密碼一次
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
7565
積分
4321 點
潛水值
34960 米
頭香
發表於 2017-5-5 03:40 PM|顯示全部樓層
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
本帖最後由 chevylin0802 於 2017-5-5 04:00 PM 編輯
xznm0215 發表於 2017-5-5 02:50 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

您好,我現在有個問題,當我用的ai2作的app藍芽連線後會發生傳遞延遲
請問是我藍芽那邊程式設錯嗎? ...
...
瀏覽完整內容,請先 註冊登入會員
系統已重置禁訪用戶到普通用戶和密碼一次
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
7565
積分
4321 點
潛水值
34960 米
3
發表於 2017-5-5 04:54 PM|顯示全部樓層
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
xznm0215 發表於 2017-5-5 04:10 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

但當我把紅字這段拿掉,綠字改成if ( BT.available()) ,等於是把超音波傳遞的值給拿掉,單作控制反而沒 ...

不能直接拿掉
...
瀏覽完整內容,請先 註冊登入會員
系統已重置禁訪用戶到普通用戶和密碼一次
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
7565
積分
4321 點
潛水值
34960 米
4
發表於 2017-5-22 06:01 PM|顯示全部樓層
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
本帖最後由 chevylin0802 於 2017-5-22 06:06 PM 編輯
xznm0215 發表於 2017-5-22 05:32 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

我想請問一下,如果說造成傳遞延遲的話是什麼情況

...
瀏覽完整內容,請先 註冊登入會員
系統已重置禁訪用戶到普通用戶和密碼一次

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部