一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領(lǐ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。如果線路上有特殊放大器,它可以進一步擴展。這種長導(dǎo)線的傳輸速度約為60 kb/s,這是傳輸傳感器數(shù)據(jù)的相對較好的速度。

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

所需的硬件

2 x Arduino

2 x RS-485模塊

面包板

部分電線

所有必需的硬件。

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

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

項目原理圖。

長度為幾米的電纜連接。

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

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

正如我們已經(jīng)注意到的,如果有多個設(shè)備連接到該線路,則一次只能有一個設(shè)備傳輸數(shù)據(jù)。我們需要以某種方式通知所有其他設(shè)備我們已準備好傳輸,并且它們必須保持沉默并傾聽。這可以在聯(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īng)用于各種工業(yè)系統(tǒng)中,這些系統(tǒng)需要在存在電磁干擾的情況下長距離傳輸數(shù)據(jù)。通常,RS-485接口與專用協(xié)議一起使用,例如ModBus或DMX512。

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

    關(guān)注

    4

    文章

    588

    瀏覽量

    36187
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

    RS-485和RS-232長距離電纜傳輸解決方案

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

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

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

    兩個不同頻率晶振靠的近會怎樣

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

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

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

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

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

    基于Arduino的串口通信項目

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

    stm32與Arduino的比較

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

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

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

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

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

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

    串行接口是計算機上的一擴展接口,通常簡稱為串口COM口,采用串行通信方式進行數(shù)據(jù)傳輸。
    發(fā)表于 09-18 12:02

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

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

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

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

    如何使用SPIUART連接兩個ESP模塊?

    /metalphreak/esp8266_spi_driver. 但是誰能建議我,我如何使用SPI與兩個ESP模塊進行通信。 我怎樣才能將一ESP設(shè)為主服務(wù)器,另一
    發(fā)表于 07-19 16:08

    為什么無法nodemcu和arduino mega之間交換數(shù)據(jù)?

    您好,我正在嘗試通過 UART arduino mega 和 nodemcu 之間交換數(shù)據(jù)(使用 arduino IDE 對者進行編程
    發(fā)表于 07-19 12:15