99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

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

想象一下我們需要從房屋頂部的傳感器收集數(shù)據(jù)的情況,并且取決于傳感器證詞,在我們的地下室切換繼電器。我們?cè)鯓硬拍艹晒δ兀课覀兛隙ㄐ枰粋€(gè)強(qiáng)大的抗噪聲接口 - 可以使用多年的接口。 RS-485模塊可以順利完成這項(xiàng)工作。

在本文中,我們將使用長(zhǎng)電纜和RS-485接口連接兩個(gè)Arduino電路板。

什么是RS-485?

RS-485是一個(gè)串行接口,是RS232的前身。這個(gè)模塊因?yàn)樵赗S232接口上運(yùn)行的舊計(jì)算機(jī)的COM端口而聲名鵲起。

RS-485模塊。

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

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

所需的硬件

2 x Arduino

2 x RS-485模塊

面包板

部分電線(xiàn)

所有必需的硬件。

使用RS-485連接兩個(gè)Arduinos的原理圖

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

項(xiàng)目原理圖。

長(zhǎng)度為幾米的電纜連接。

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

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

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

讓我們編寫(xiě)兩個(gè)程序。每隔500毫秒播放一次“ping”文本。另一個(gè)將收聽(tīng)廣播,并在收到文本“ping”時(shí),閃爍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;

}

}

}

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

的 結(jié)論

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

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

    關(guān)注

    4

    文章

    588

    瀏覽量

    36198
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何增加藍(lán)牙通信距離?

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

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

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

    ADS7945兩個(gè)通道之間會(huì)有干擾,為什么?

    各位大俠們,最近使用ADS7945這個(gè)芯片,發(fā)現(xiàn)它的兩個(gè)通道之間會(huì)有干擾,有沒(méi)有遇到同樣問(wèn)題的???求解!在線(xiàn)等待!
    發(fā)表于 02-11 06:23

    RS-485和RS-232長(zhǎng)距離電纜傳輸解決方案

    ? ? ? 工業(yè)自動(dòng)化和監(jiān)控系統(tǒng)中,數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性至關(guān)重要。RS-485和RS-232作為種常見(jiàn)的串口通信標(biāo)準(zhǔn),各自具有獨(dú)特的優(yōu)勢(shì)和局限性。特別是
    的頭像 發(fā)表于 01-21 17:17 ?886次閱讀
    RS-485和RS-232<b class='flag-5'>長(zhǎng)距離</b>電纜傳輸解決方案

    調(diào)制頻率與帶寬之間的關(guān)系

    現(xiàn)代通信系統(tǒng)中,調(diào)制技術(shù)是實(shí)現(xiàn)信息傳輸?shù)年P(guān)鍵環(huán)節(jié)。調(diào)制是將信息信號(hào)(如音頻、視頻數(shù)據(jù))與載波信號(hào)結(jié)合的過(guò)程,以便在信道中傳輸。調(diào)制頻率和帶寬是描述調(diào)制過(guò)程特性的兩個(gè)重要參數(shù),它們
    的頭像 發(fā)表于 01-21 09:30 ?2112次閱讀

    兩個(gè)不同頻率晶振靠的近會(huì)怎樣

    晶振的振蕩本質(zhì)上是一種機(jī)械振動(dòng)(壓電晶體層面)。當(dāng)兩個(gè)晶振靠得很近時(shí),它們的機(jī)械振動(dòng)可能會(huì)相互影響。一個(gè)晶振的振動(dòng)可能會(huì)通過(guò)電路或者外殼等介質(zhì)傳遞給另一
    的頭像 發(fā)表于 01-20 13:55 ?1631次閱讀
    <b class='flag-5'>兩個(gè)</b>不同頻率晶振靠的近會(huì)<b class='flag-5'>怎樣</b>

    差分信號(hào)與串行通信的關(guān)系 差分信號(hào)接收器的工作原理

    數(shù)據(jù)傳輸方式,它將數(shù)據(jù)按位順序逐個(gè)傳輸。串行通信中,差分信號(hào)被用來(lái)提高信號(hào)的抗干擾能力和傳輸距離。差分信號(hào)通過(guò)比較兩個(gè)信號(hào)
    的頭像 發(fā)表于 12-26 09:22 ?1045次閱讀

    如何使用Arduino實(shí)現(xiàn)CAN總線(xiàn)通信

    的硬件模塊實(shí)現(xiàn)CAN總線(xiàn)通信。 硬件需求 Arduino :任何支持Arduino IDE的板子都可以,例如Arduino Uno、Meg
    的頭像 發(fā)表于 12-23 09:06 ?1942次閱讀

    基于Arduino的串口通信項(xiàng)目

    、Arduino Mega等。 USB數(shù)據(jù)線(xiàn) :用于將Arduino開(kāi)發(fā)連接到計(jì)算機(jī)。 串口設(shè)備 :可以是另一個(gè)Arduino開(kāi)發(fā)
    的頭像 發(fā)表于 11-22 09:24 ?2193次閱讀

    stm32與Arduino的比較

    微控制器的世界里,STM32和Arduino兩個(gè)經(jīng)常被提及的名字。STM32是一系列由STMicroelectronics生產(chǎn)的高性能微控制器,而Arduino則是一
    的頭像 發(fā)表于 11-19 15:45 ?4198次閱讀

    如何使用Arduino實(shí)現(xiàn)CAN總線(xiàn)通信

    CAN總線(xiàn)(Controller Area Network)是一種多主控制的串行通信協(xié)議,廣泛應(yīng)用于汽車(chē)電子、工業(yè)自動(dòng)化等領(lǐng)域。它以其高可靠性、實(shí)時(shí)性和靈活性而受到青睞。Arduino作為一個(gè)
    的頭像 發(fā)表于 11-12 10:09 ?2729次閱讀

    使用TPS40170和兩個(gè)TPS2511創(chuàng)建雙USB通用車(chē)載充電器

    電子發(fā)燒友網(wǎng)站提供《使用TPS40170和兩個(gè)TPS2511創(chuàng)建雙USB通用車(chē)載充電器.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 11:03 ?0次下載
    使用TPS40170和<b class='flag-5'>兩個(gè)</b>TPS2511<b class='flag-5'>創(chuàng)建</b>雙USB通用車(chē)載充電器

    串行接口PCB設(shè)計(jì)指南:優(yōu)化布局與布線(xiàn)策略

    串行接口是計(jì)算機(jī)上的一個(gè)擴(kuò)展接口,通常簡(jiǎn)稱(chēng)為串口COM口,采用串行通信方式進(jìn)行數(shù)據(jù)傳輸。
    發(fā)表于 09-18 12:02

    ad如何設(shè)置兩個(gè)元器件的距離

    Altium Designer(簡(jiǎn)稱(chēng)AD)中設(shè)置兩個(gè)元器件之間距離,主要是通過(guò)設(shè)置元器件間的安全間距(Clearance)規(guī)則來(lái)實(shí)現(xiàn)的。這個(gè)規(guī)則定義了元器件
    的頭像 發(fā)表于 09-02 15:31 ?1.7w次閱讀

    雙穩(wěn)態(tài)觸發(fā)器的兩個(gè)基本性質(zhì)是什么

    的定義 雙穩(wěn)態(tài)觸發(fā)器是一種具有兩個(gè)穩(wěn)定狀態(tài)的邏輯電路,通常由兩個(gè)交叉耦合的反相器門(mén)電路構(gòu)成。沒(méi)有外部輸入信號(hào)的情況下,雙穩(wěn)態(tài)觸發(fā)器可以保持
    的頭像 發(fā)表于 08-11 10:08 ?1391次閱讀