close

兩台arduino通訊(UART),增加RX,TX接腳

 

繼上一篇arduino 通訊-UART序列埠篇(RX,TX)_Taiwan Teacher

這篇文章主要是要教

兩台Arduino之間的傳輸

以及如何增加arduino 的RX,TX接腳

 

首先

要讓兩台Arduino互相溝通傳輸

那就必須先建立他們的橋樑

那就是接線啦

把一號arduino的RX接到二號的TX

把一號arduino的TX接到二號的RX

最後再把GND互連就可以了

 

程式的部分就跟上一篇文章差不多

如果需要詳細解釋的也可參考上一篇文章arduino 通訊-UART序列埠篇(RX,TX)_Taiwan Teacher

 

一號機(傳輸)的部分:

void setup() {

  Serial.begin(9600);  //設定通訊速率

}

 

void loop() {

  Serial.write("TC");  //傳輸讀取的訊號

  delay(2000);

}

二號機(接收)的部分:

void setup() {

  Serial.begin(9600);  //設定通訊速率

}

 

void loop() {

  while (!Serial.available()) {}   //直到暫存器出現訊號才跳出迴圈

  Serial.write(Serial.read());  //傳輸讀取的訊號

  while (Serial.available()>0) {   //如果暫存器有訊號則不斷讀取直到沒有

    Serial.read();

  }  

}

 

要注意的是

一個分頁一次只能連接一部arduino

所以要一次看到兩部arduino運作

就必須開兩個分頁(下圖底部)

不能在一個分頁中按新增!!!!!

如果不懂的話也是可以一次連結一部就好

最後再把線接到二號機

再來是因為RX,TX也是跟電腦溝通的接腳

所以在上傳程式時必須拔掉RX,TX

 

上圖可看見執行結果

 

 


最後,有時候會遇到RX、TX接腳不夠用的情形

那我們就可以就是以新增RX,TX接腳的方式進行擴充

 

1. 首先,要先加入函示庫

   https://github.com/PaulStoffregen/SoftwareSerial

 

2. 加入函示庫後複製以下程式上傳並執行即可

   記得要把RX,TX換到10跟11腳位喔

 

3. 傳輸程式

一號機(傳輸)

#include <SoftwareSerial.h>

SoftwareSerial mySerial(11,10);//建立軟體串列埠腳位 (RX, TX)

 

void setup() {

  mySerial.begin(9600);   //設定軟體串列埠速率

}

 

void loop() {

  while (!mySerial.available()) {}  //等到一號機傳送字元才到下一步

 

  Serial.write(mySerial.read()); //讀取一號機傳送之字元並顯示

  while(mySerial.available() > 0){

  mySerial.read();

  }

  mySerial.write("1");  

}

二號機(接收)

#include <SoftwareSerial.h>

SoftwareSerial mySerial(11,10);//建立軟體串列埠腳位 (RX, TX)

 

void setup() {

  Serial.begin(9600);

  mySerial.begin(9600);  //設定軟體通訊速率

}

 

void loop() {

  while (!mySerial.available()) {} //直到暫存器出現訊號才跳出迴圈

 

  Serial.write(mySerial.read());  //傳輸讀取的訊號

  while (mySerial.available()>0) {//如果暫存器有訊號則不斷讀取直到沒有

    mySerial.read();

  }  

}

 


 


 

arrow
arrow
    創作者介紹
    創作者 Taiwan Teacher 的頭像
    Taiwan Teacher

    Taiwan Teacher

    Taiwan Teacher 發表在 痞客邦 留言(1) 人氣()