chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣在兩個或更多Arduino板之間創(chuàng)建長距離串行通信

454398 ? 來源:工程師吳畏 ? 2019-07-26 14:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們知道Arduino有幾條用于快速數(shù)據(jù)傳輸?shù)膬?nèi)置總線。例如,顯示器通常使用SPI總線。通常通過I2C總線連接各種傳感器。還有流行的UART,它通常與USB接口一起使用以與計算機交換數(shù)據(jù)。但所有這些方法都有一個嚴重的缺點:它們不能在遠距離工作。

想象一下我們需要從房屋頂部的傳感器收集數(shù)據(jù)的情況,并且取決于傳感器證詞,在我們的地下室切換繼電器。我們怎樣才能成功呢?我們肯定需要一個強大的抗噪聲接口 - 可以使用多年的接口。 RS-485模塊可以順利完成這項工作。

在本文中,我們將使用長電纜和RS-485接口連接兩個Arduino電路板。

什么是RS-485?

RS-485是一個串行接口,是RS232的前身。這個模塊因為在RS232接口上運行的舊計算機的COM端口而聲名鵲起。

RS-485模塊。

RS-485模塊的最大范圍是1200米,這意味著我們可以將信號擴展到1.2km。如果線路上有特殊放大器,它可以進一步擴展。這種長導線的傳輸速度約為60 kb/s,這是傳輸傳感器數(shù)據(jù)的相對較好的速度。

RS-485電纜使用雙絞線。該電纜仍用于以太網(wǎng)線路,使其易于使用。要在距離超過500米的地方傳輸數(shù)據(jù),您需要一根屏蔽雙絞線。 32個設備可以連接到一根電纜,但同時只有一個設備可以傳輸數(shù)據(jù)。

所需的硬件

2 x Arduino

2 x RS-485模塊

面包板

部分電線

所有必需的硬件。

使用RS-485連接兩個Arduinos的原理圖

為了通過RS-485接口連接兩個Arduino板,我們需要一個特殊的模塊。通常,此類模塊使用流行的MAX485芯片。

項目原理圖。

長度為幾米的電纜連接。

注意:在上圖中,電線A和B是直的。如果距離很小,這就足夠了。如果電纜連接長度為幾米,則必須使用雙絞線!

RS-485的接收器和發(fā)送器程序

正如我們已經(jīng)注意到的,如果有多個設備連接到該線路,則一次只能有一個設備傳輸數(shù)據(jù)。我們需要以某種方式通知所有其他設備我們已準備好傳輸,并且它們必須保持沉默并傾聽。這可以在聯(lián)系人 DE 和 RE 的幫助下完成。

讓我們編寫兩個程序。每隔500毫秒播放一次“ping”文本。另一個將收聽廣播,并在收到文本“ping”時,閃爍LED#13。

發(fā)射器程序

#define SerialTxControl 2 // contact # 2 will switch receiver / transmitter mode

#define RS485Transmit HIGH

#define RS485Receive LOW

void setup (void) {

Serial.begin (9600); // set the serial port to 9600baud speed

pinMode (SerialTxControl, OUTPUT);

digitalWrite (SerialTxControl, RS485Transmit); // put the device into transmitter mode

}

void loop (void) {

Serial.print (“ping”); // send text

delay (500);

}

接收方程序

#define SerialTxControl 2

#define RS485Transmit HIGH

#define RS485Receive LOW

char buffer [100];

byte state = 0;

void setup (void) {

Serial.begin (9600);

pinMode (13, OUTPUT);

pinMode (SerialTxControl, OUTPUT);

digitalWrite (SerialTxControl, RS485Receive); // put the device into receiver mode

}

void loop (void) {

int i = 0;

if (Serial.available ()) {// if any data came to the port

delay (5); // wait a bit for the entire data packet to be accepted by the port

while (Serial.available ()) {

buffer [i ++] = Serial.read (); // read data and write it to the buffer

}

}

if (i》 0) {// if there is something in the buffer

buffer [i ++] = ‘ 0’; // convert the buffer contents to a string by adding a null character

if (strcmp (buffer, “ping”)) {// if the accepted string is equal to the ping text

digitalWrite (13, state); // blink LED

state =! state;

}

}

}

將這兩個程序加載到每個Arduino板上。如果一切正確組裝并連接到電源,連接到引腳13的LED將在第二塊板上開始閃爍。

的 結(jié)論

RS-485自90年代后期開始應用于各種工業(yè)系統(tǒng)中,這些系統(tǒng)需要在存在電磁干擾的情況下長距離傳輸數(shù)據(jù)。通常,RS-485接口與專用協(xié)議一起使用,例如ModBus或DMX512。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 串行通信
    +關注

    關注

    4

    文章

    608

    瀏覽量

    37150
  • Arduino
    +關注

    關注

    190

    文章

    6526

    瀏覽量

    196983
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    兩個RS485(Modbus RTU)主站與主站之間如何通訊

    本產(chǎn)品能很好解決Master-1主站向模塊寫入數(shù)據(jù),Master-2主站讀取數(shù)據(jù);Master-2主站向模塊寫入數(shù)據(jù),Master-1主站讀取數(shù)據(jù)。由此解決兩個主站之間的互相讀通信難題。
    的頭像 發(fā)表于 02-08 15:32 ?663次閱讀
    <b class='flag-5'>兩個</b>RS485(Modbus RTU)主站與主站<b class='flag-5'>之間</b>如何通訊

    兩個RS485-Modbus主站如何通訊

    本產(chǎn)品能很好解決Master-1主站向模塊寫入數(shù)據(jù),Master-2主站讀取數(shù)據(jù);Master-2主站向模塊寫入數(shù)據(jù),Master-1主站讀取數(shù)據(jù)。由此解決兩個主站之間的互相讀通信難題。
    發(fā)表于 02-08 15:32 ?0次下載

    兩個MCU之間快速傳輸數(shù)據(jù)的方法

    一、MCU之間通信的主要方式 1、采用硬件UART進行異步串行通信 這是一種占用口線少,有效、可靠的通信方式;但遺憾的是許多小型單片機沒
    發(fā)表于 01-19 07:07

    單片機中的串口通訊串行同步通信串行異步通信

    串口是串行接口(serial port)的簡稱,也稱為串行通信接口COM接口。串口通信是指采用串行
    發(fā)表于 01-15 08:06

    一文讀懂:直線模組兩個滑塊距離能否調(diào)節(jié)?

    關鍵問題:直線模組中的兩個滑塊距離可以調(diào)節(jié)嗎?答案并非絕對,而是要根據(jù)直線模組的具體類型、結(jié)構(gòu)設計來綜合判斷,不同類型的直線模組滑塊距離調(diào)節(jié)上有著截然不同的特性。?飛
    的頭像 發(fā)表于 12-29 15:47 ?256次閱讀
    一文讀懂:直線模組<b class='flag-5'>兩個</b>滑塊<b class='flag-5'>距離</b>能否調(diào)節(jié)?

    無人機長距離通信技術革新和應用

    探索無人機長距離通信中的創(chuàng)新應用與未來潛力,揭示關鍵技術背后的秘密,打造高效、安全的空中通信新格局。
    的頭像 發(fā)表于 12-03 12:03 ?336次閱讀

    并行與串行的基本通信方式

    之間還有間隔,因此傳輸效率不高。單片機與單片機之間,單片機與計算機之間通信時,通常采用異步串行
    發(fā)表于 11-24 06:36

    長距離光模塊直連短距離光纖:接收光器件的“隱形殺手”

    通信系統(tǒng)里,光模塊是光信號傳輸?shù)暮诵?,其性能關乎網(wǎng)絡穩(wěn)定與可靠。但長距離光模塊未經(jīng)衰減直接接入短距離光纖時,接收端光器件易受損,背后涉及復雜的光功率管理與工程考量。
    的頭像 發(fā)表于 10-10 17:12 ?1011次閱讀

    長距離光模塊直接安裝導致器件損壞問題解析

    光纖通信系統(tǒng)中,長距離光模塊因其高發(fā)射光功率特性,直接連接短距離光纖時極易引發(fā)接收端器件損壞。本文將從光功率過載機制、典型損壞場景、防護
    的頭像 發(fā)表于 09-26 17:16 ?1245次閱讀

    “爬電距離”與“電氣間隙”是怎樣計算的?

    之間的最短路徑。 電氣間隙 兩個導電零部件之間或?qū)щ娏悴考c設備防護界面之間測得的最短空間距離
    的頭像 發(fā)表于 09-10 17:29 ?3.5w次閱讀
    “爬電<b class='flag-5'>距離</b>”與“電氣間隙”是<b class='flag-5'>怎樣</b>計算的?

    長距離傳輸新突破:山澤HDMI線確保信號穩(wěn)定無損

    構(gòu)建家庭影院、商業(yè)展示系統(tǒng)大型會議室時,長距離傳輸高清視頻和音頻信號常常面臨一巨大的挑戰(zhàn)——如何保證信號的穩(wěn)定性和完整性?傳統(tǒng)的HDMI線
    的頭像 發(fā)表于 08-10 15:06 ?4172次閱讀

    全面了解串行通信

    、核心概念 數(shù)據(jù)傳輸方式 : 串行通信 :數(shù)據(jù)單條線路上依次傳輸,每個時鐘周期傳輸1位(01)。 并行通信 :數(shù)據(jù)通過多條線路同時傳輸多
    的頭像 發(fā)表于 07-19 14:13 ?1852次閱讀

    如何增加藍牙通信距離?

    什么是藍牙?藍牙是一種無線通信技術,主要用于短距離內(nèi)實現(xiàn)設備之間的連接和數(shù)據(jù)傳輸。目前無論是無線耳機、智能手表,還是智能家居中,亦或是其他的物聯(lián)網(wǎng)設備,藍牙連接都在其中發(fā)揮著重要的作
    的頭像 發(fā)表于 04-10 19:35 ?4110次閱讀
    如何增加藍牙<b class='flag-5'>通信</b><b class='flag-5'>距離</b>?

    LORA模擬量對傳模塊,5KM長距離通訊,PLC遠程控制

    快速發(fā)展的物聯(lián)網(wǎng)(IoT)時代,無線通信技術的革新正以前所未有的速度推動著工業(yè)自動化、智慧城市、遠程監(jiān)控等領域的進步。其中,LORA(LongRange)無線對傳模塊作為一項低功耗、遠距離
    的頭像 發(fā)表于 04-10 16:55 ?1237次閱讀

    串行通信接口SPI與QSPI的區(qū)別

    嵌入式系統(tǒng)的世界里,選擇正確的通信技術可以對項目的性能和可擴展性產(chǎn)生重大影響。讓我們比較兩個流行的串行通信接口:SPI(
    的頭像 發(fā)表于 04-09 15:24 ?3291次閱讀
    <b class='flag-5'>串行</b><b class='flag-5'>通信</b>接口SPI與QSPI的區(qū)別