Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 849|回復: 6

RS232 傳輸問題

[複製鏈接]
發表於 2019-11-12 09:27:10 | 顯示全部樓層 |閱讀模式
各位前輩,我第一次寫Arduino程式,遇到一個問題

我的架構大概是這樣

Arduino uno                Selection Valve
            RX        +        TX       
            TX                RX       
       
程式語言是下方

void setup()

{
  // put your setup code here, to run once:
  Serial.begin(9600);  //記得要設定鮑率
}

void loop()
{
// put your main code here, to run repeatedly:

  int list[8]={0,0x0E,'P',2,0,1};//開始.Address_W.Command.Command Value.檢查位元.停止

  int j;

    for(j=0;j<4;j++)   
    {        
          Serial.print(list[j]);
          Serial.print(" ");  //空格
    }

    Serial.println("");  //換列  
while(true);  //控制不會無限迴圈
}


int list[8]={0,0x0E,'P',2,0,1};//開始.Address_W.Command.Command Value.檢查位元.停止
我利用陣列方式傳輸寫入的指令,之後直接下Commad與閥門轉到哪個位置的 Command Value
卻一直無法將選擇閥門轉動,可否各位前輩給我一些建議

RheoLink I2C Communication Protocol for TitanEX.pdf

390.98 KB, 下載次數: 137

Selection Valve

發表於 2019-11-12 11:06:08 | 顯示全部樓層
說明書寫的是用 I2C, 但你用的是 UART?
 樓主| 發表於 2019-11-13 19:28:18 | 顯示全部樓層
我記錯檔案了

我改寫成這樣

#include <Wire.h>  // Comes with Arduino IDE

void setup() {
  Serial.begin(19200);
  Serial.flush();
}

void loop() {
char A[5]={ 0x50, 0x30, 0x35, 0x0D};
Serial.write(&A[0],5);

while(true);  //控制不會無限迴圈
}

還是無法動作
可以給一些建議嗎??

UART USB Communication Protocol for TitanEX.pdf

364.55 KB, 下載次數: 134

發表於 2019-11-14 12:17:17 | 顯示全部樓層
除了多送一個 BYTE, 沒看有什麼問題
char A[4]={ 0x50, 0x30, 0x35, 0x0D};
Serial.write(&A[0],4);
如果還不行, 也許是 BUAD RATE 被改掉, 或是 RX TX 顛倒
BUAD RATE 只有4 種, 每個都試看看
9600, 19200, 38400, 57600

另外. 上面沒寫很清楚... 但還是問一下
"應該有共地吧?"

 樓主| 發表於 2019-11-21 11:20:06 | 顯示全部樓層
超新手 發表於 2019-11-14 12:17
除了多送一個 BYTE, 沒看有什麼問題
char A[4]={ 0x50, 0x30, 0x35, 0x0D};
Serial.write(&A[0],4);

謝謝您的回覆,共地一定是有的

但修改後一樣無法動作,也嘗試更改兩邊的電路板,一樣無法動作

上次說的連接方式,忘記補上一顆IC TRS3232

Arduino uno              TRS3232                        Selection Valve  
          RX     +  RS232 TX (Pin 14)  +  UART TX (Pin 11)        
          TX     +  RS232 RX (Pin 13)  +  UART RX (Pin 12)  
發表於 2019-11-21 11:51:39 | 顯示全部樓層
RX     +  RS232 TX (Pin 14)  +  UART TX (Pin 11)        
TX     +  RS232 RX (Pin 13)  +  UART RX (Pin 12)  
看不懂這樣的表示方法?
UNO 出來的是 UART, 怎麼會接 RS232?
接法應該是
ARDUINO RX(0), 不是接 PIN 9 就是 12(ROUT?)
ARDUINO TX(1), 不是接 PIN 10 就是 11(DIN?)
而且對方也是 UART, 為什麼需要  TRS3232
如果需要傳很遠, 那中間需要兩顆 TRS3232 才對吧?
 樓主| 發表於 2019-11-22 14:22:07 | 顯示全部樓層
ARDUINO RX(0), 不是接 PIN 9 就是 12(ROUT?)
ARDUINO TX(1), 不是接 PIN 10 就是 11(DIN?)

這的確是我寫錯了

如您所說的,前人設計擔心距離的關係,增加mp243ei + TRS3232

因此我直接朓腺做測試是可以動作的

謝謝您
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2020-5-31 11:42 , Processed in 0.161810 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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