兩台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(); } } |
留言列表