spookerst 發表於 2019-11-12 09:27:10

RS232 傳輸問題

各位前輩,我第一次寫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={0,0x0E,'P',2,0,1};//開始.Address_W.Command.Command Value.檢查位元.停止

int j;

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

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


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

超新手 發表於 2019-11-12 11:06:08

說明書寫的是用 I2C, 但你用的是 UART?

spookerst 發表於 2019-11-13 19:28:18

我記錯檔案了

我改寫成這樣

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

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

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

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

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

超新手 發表於 2019-11-14 12:17:17

除了多送一個 BYTE, 沒看有什麼問題
char A={ 0x50, 0x30, 0x35, 0x0D};
Serial.write(&A,4);
如果還不行, 也許是 BUAD RATE 被改掉, 或是 RX TX 顛倒
BUAD RATE 只有4 種, 每個都試看看
9600, 19200, 38400, 57600

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

spookerst 發表於 2019-11-21 11:20:06

超新手 發表於 2019-11-14 12:17
除了多送一個 BYTE, 沒看有什麼問題
char A={ 0x50, 0x30, 0x35, 0x0D};
Serial.write(&A,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 才對吧?

spookerst 發表於 2019-11-22 14:22:07

ARDUINO RX(0), 不是接 PIN 9 就是 12(ROUT?)
ARDUINO TX(1), 不是接 PIN 10 就是 11(DIN?)

這的確是我寫錯了

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

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

謝謝您
頁: [1]
查看完整版本: RS232 傳輸問題