Robofun 機器人論壇

標題: 筆電與HC-06連接的問題 [打印本頁]

作者: a9b93    時間: 2016-3-27 16:18
標題: 筆電與HC-06連接的問題
大家好 我是arduino新手 最近買了一台遙控車回來 但是 接上 HC-06後,我的電腦  WIN8   似乎無法用藍芽跟它溝通,不知道問題在哪,我下載了終端機,也使用對方提供的程式碼燒錄;我開啟COM的時候;HC-06的燈會一直亮著,但似乎都不理我,請問還可能是哪裡出了問題?
作者: mike2016    時間: 2016-3-27 20:32
要先配對。先開啟筆電藍芽配對。也可以先用手機配對。如果手機能配對,筆電就能配對。
配對完,在看連上哪一個com.
作者: a9b93    時間: 2016-3-27 21:42
感謝 MIKE2016 您的回答
    我先將我的筆電與HC-06配對,然後輸入密碼,然後到控制台裡面找尋藍芽的設定,找到說 COM5是HC-06連出,COM6 7 8 是連入,然後我開程式出來,點選工具 選擇 序列埠 COM5 然後打開序列埠監控視窗,這時候我看HC-06的燈就一直亮著,但是我在序列埠監控視窗輸入相關指令時;機器人似乎都不會動。還是我有漏掉甚麼步驟嗎?
作者: 超新手    時間: 2016-3-28 10:44
如果紅燈恆亮, 那大致上, 配對和連線都沒問題
你的程式是使用那兩根腳? TX, RX 接對嗎?
作者: a9b93    時間: 2016-3-28 13:45
TO 超新手   感謝您的解答

程式碼 似乎沒提到用哪兩根腳?? 以下是使用的程式碼



// L298N 馬達驅動板
#define MotorR_I1     8  //定義 I1 接腳
#define MotorR_I2     9  //定義 I2 接腳
#define MotorL_I3    10  //定義 I3 接腳
#define MotorL_I4    11  //定義 I4 接腳
#define MotorR_ENA    5  //定義 ENA (PWM調速) 接腳
#define MotorL_ENB    6  //定義 ENB (PWM調速) 接腳


void setup()
{
  Serial.begin(9600);
  
  pinMode(MotorR_I1,OUTPUT);
  pinMode(MotorR_I2,OUTPUT);
  pinMode(MotorL_I3,OUTPUT);
  pinMode(MotorL_I4,OUTPUT);
  pinMode(MotorR_ENA,OUTPUT);
  pinMode(MotorL_ENB,OUTPUT);
  
  analogWrite(MotorR_ENA,500);    //設定馬達 (右) 轉速
  analogWrite(MotorL_ENB,500);    //設定馬達 (左) 轉速
}

void advance(int a)    // 前進
{
    digitalWrite(MotorR_I1,HIGH);   //馬達(右)順時針轉動
    digitalWrite(MotorR_I2,LOW);
    digitalWrite(MotorL_I3,HIGH);   //馬達(左)逆時針轉動
    digitalWrite(MotorL_I4,LOW);
    delay(a * 100);
}

void turnR(int d)    //右轉
{
    digitalWrite(MotorR_I1,LOW);    //馬達(右)逆時針轉動
    digitalWrite(MotorR_I2,HIGH);
    digitalWrite(MotorL_I3,HIGH);   //馬達(左)逆時針轉動
    digitalWrite(MotorL_I4,LOW);
    delay(d * 100);
}

void turnL(int e)    //左轉
{
    digitalWrite(MotorR_I1,HIGH);   //馬達(右)順時針轉動
    digitalWrite(MotorR_I2,LOW);
    digitalWrite(MotorL_I3,LOW);    //馬達(左)順時針轉動
    digitalWrite(MotorL_I4,HIGH);
    delay(e * 100);
}   

void stopRL(int f)  //停止
{
    digitalWrite(MotorR_I1,HIGH);   //馬達(右)停止轉動
    digitalWrite(MotorR_I2,HIGH);
    digitalWrite(MotorL_I3,HIGH);   //馬達(左)停止轉動
    digitalWrite(MotorL_I4,HIGH);
    delay(f * 100);
}

void back(int g)    //後退
{
    digitalWrite(MotorR_I1,LOW);    //馬達(右)逆時針轉動
    digitalWrite(MotorR_I2,HIGH);
    digitalWrite(MotorL_I3,LOW);    //馬達(左)順時針轉動
    digitalWrite(MotorL_I4,HIGH);
    delay(g * 100);     
}

void loop()
{
  int cmd = Serial.read();  // 讀取藍芽指令
   
  switch(cmd)  // 執行藍芽指令
  {
    case 'S':  // 倒車
      back(5);
      break;

    case 'A':  // 左轉
      turnL(5);
      break;
        
    case 'D':  // 右轉
      turnR(5);
      break;
      
    case 'W':  // 前進
      advance(5);
      break;
        
    case 'Q':  // 停止
        stopRL(5);
        break;
}
}
作者: 超新手    時間: 2016-3-28 14:34
本帖最後由 超新手 於 2016-3-29 08:22 編輯

1) 看程式是接到接腳 0 和 1, 你接對了嗎?
2) 它是電路已經接好, 還是你自己接的?
3) 所以你按了大寫的 A, S, D, W並且按了傳送, 但馬達不會轉, 是嗎?
作者: a9b93    時間: 2016-3-28 20:40
本帖最後由 a9b93 於 2016-3-28 20:42 編輯

1) 請問怎麼看程式是接到接腳0和1
2)我是照這張圖接的   C:\Users\YANG SHIU LIN\Desktop\擷取.JPG
3)我按了大寫的S,A,D,W按了傳送,馬達不會轉..
作者: 超新手    時間: 2016-3-28 21:33
本帖最後由 超新手 於 2016-3-28 21:34 編輯

為什麼根據我查到的資料
你的圖好像是錯的, 你好像 TX接TX, RX接RX
上面應該都有字, 很好查, RX 要接 TX, TX 要接 RX

不過.....也可能是我查到的資料有誤
作者: a9b93    時間: 2016-3-28 23:32
圖上 就是RX 接 TX, TX 接 RX,我組的也是...
作者: 超新手    時間: 2016-3-29 08:19
本帖最後由 超新手 於 2016-3-29 08:24 編輯

我沒原廠資料, 可能是網路上的資料有誤造成
因為從下圖來看
不管是 HC-06或Arduino Sensor Shield 的 RX 都在最旁邊
所以如果要接, 四條線中的 RX 和 TX 應該要相交(黃色和藍色線)
而不是像你圖中所示, 四條線一對一對接
不過...當然以你手上的為主, 因為上面都有字, 你不可能看錯


作者: a9b93    時間: 2016-3-29 08:44
我的板子長這樣
C:\Users\YANG SHIU LIN\Desktop\456.jpg
作者: 超新手    時間: 2016-3-29 08:59
本帖最後由 超新手 於 2016-3-29 13:05 編輯


你有三用電表嗎?量一下Shield 的 RX 是接到上圖的那一根 PIN
或是直接 RX TX 交叉試看看
因為根據網路上的資料
板子印出來的字是剛好反的, 剛好就和你說的一樣
TX 印成 RX, RX 印成 TX

作者: a9b93    時間: 2016-3-29 13:20
我嘗試了rx tx 交叉 但似乎還是無法;
我不知道怎麼用電表量,我插上電源拔掉hc-06以後直接量嗎?還是要插著hc-06按指令?
作者: 超新手    時間: 2016-3-29 14:24
互換都不行, 應該就不用量了
作者: 超新手    時間: 2016-3-30 08:17
先分別測試
1. 測藍芽
把藍芽的 RX 和 TX 接起來, 但不要接到 Shield,  這樣就會形成一個迴路
vcc 和 gnd 當然要接,
所以你在序列監控視窗打什麼字, 下方就會出現一樣的字
2, 測馬達
loop 改為以下(其他不變), 馬達會走走停停, 看看馬達或其他有沒有問題'
void loop()
{
advance(50);
stopRL(50);
}
作者: a9b93    時間: 2016-3-30 11:17
本帖最後由 a9b93 於 2016-3-30 11:21 編輯

我第一個步驟 把rx 和 tx 接起來  vcc 和 gnd跟 shield接起來   然後板子跟電腦沒有接 usb線  透過藍芽com5  用序列監控視窗 打字給它  沒辦法出現字

第二個步驟 馬達應該沒問題 因為之前提供的步驟 就需要動馬達 所以馬達部分應該沒問題..
作者: 超新手    時間: 2016-3-30 11:37
1) Arduino IDE 是 1.6.X 版的嗎?
2) 看看要不要換個作業系統或電腦測一下. WIN8 穩定性一向讓人會有很多疑慮..
3) 不要用 Arduino IDE. 改用 AccessPort 試看看
4) 如果是藍芽模組本身的問題, 就比較難測
    如果有 usb 轉 uart 的線, 可以接上去, 打 'AT' 應該會回 'OK'
作者: a9b93    時間: 2016-3-31 15:17
1)Arduino IDE 是 1.6.7版本
2)我試過xp 和 紅米not手機 也不行
3)我沒有用過accessport 我有用過putty 嘗試連線 不行
4)我沒有uart的線,我參考這邊的網址
http://gsyan888.blogspot.tw/2014/03/arduino-hc-06-at-command.html   的   以 Arduino 與 HC-06 連線   這個步驟連線 也不行......
5)阿~~~~~~~~~~~~~~~~~~~
作者: 超新手    時間: 2016-3-31 18:25
4 都不行, 那凶多吉少了

如果只是單純 4 不行, 有可能是BAUDRATE 被設成非 9600 的值
不過因為之前也做過迴路的測試以及相關測試
所以看起來...
作者: a9b93    時間: 2016-4-6 09:47
本帖最後由 a9b93 於 2016-4-6 12:54 編輯

感謝mike2016以及超新手的耐心回答,謝謝謝謝謝謝。

結果 我把東西寄回去給廠商,廠商也說壞了,但是對方就不願意負責賠償了,因為過了法律規定的7天鑑賞期;因為時間及安裝問題實在沒辦法七天內全部零件測試一次(尤其對新手來說),就提醒大家在買套件的時候記得要問保固期....。我買新的就可以了...。

再次感謝mike2016以及超新手的耐心回答,謝謝謝謝謝謝。




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2