Robofun 機器人論壇
標題:
【Arduino】如何接收or發送訊號經由 RS485傳輸線?
[打印本頁]
作者:
mazda770
時間:
2016-5-6 12:16
標題:
【Arduino】如何接收or發送訊號經由 RS485傳輸線?
請求大神教學指引一下,我現在必須藉由Arduino作控制端,接收及輸出訊號給我馬達Driver,經由Rs485的傳輸線,該如何做呢?
作者:
alpha
時間:
2016-5-6 17:34
使用
TTL轉RS-485模組兩個,一個給主控端 , 一個給受控端 , 中間用''雙絞線''連接 , 主控端寫 UART_SEND , 受控端寫 UART_RECEIVE ,寫法和 UART 一樣 , 差別在於 RS232和RS485 訊號不一樣 ,不想買現成的模組可以參考一下
MAX485 這個IC
作者:
mazda770
時間:
2016-5-9 09:42
謝謝您的建議喔,我會試試看得 :)
作者:
mazda770
時間:
2016-5-10 12:43
回復
2#
alpha
請問一下如果我要藉由RS485傳送一個浮點數假如是1.23RS485只能傳輸binary 2進位還是可以傳輸 10進位數?
如果是binary是否還要寫程式將數字轉為binary呢
作者:
alpha
時間:
2016-5-10 13:44
RS485和RS232是一樣的,將 1.23 轉成 "1.23" 就可以了 , Google 一下C語言有關 inttostr() , 或是 strtoint() 等相關函數就知道怎麼寫了
作者:
mazda770
時間:
2016-5-11 12:52
那麼在請問一下記憶體空間的事情
這樣傳"1.23" 總共是需要 幾個bit包含起始、結束位元的話?
是否用16進位編碼傳送可以降低記憶體空間 加快傳輸速度
因為我的系統有頻率的限制必須盡可能加快傳輸速度!
謝謝~
作者:
alpha
時間:
2016-5-12 10:29
以 N,8,1 的設定來說一次傳送 8 個資料位元 , 可以視為 1 個 Byte , 以 Physical Layer 來說至少要有10個位元(包括一個 Start Bit 和 至少一個 Stop Bit , 詳情可參考 EIA-RS-232),不過早期的RS232傳送的是''可視字元,有些控制碼不能用,這個要確認一下現在的MCU支援狀況
理論上 1.23 佔用 4 個 Bytes , 要縮短的話可以考慮自行編碼 , 分析一下需要 "多少個'' Bits , 不要使用 BCD
作者:
cc1357
時間:
2022-3-13 00:29
谢谢大大分享
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2