iT邦幫忙

0

Arduino 使用第三個傳輸埠

已經使用預設TX、RX連接藍芽,另一個感測器用虛擬TX、RX連接。
假設我需要連接第三個感測器,但又不想再另接一塊UNO版,該怎麼解決。

有嘗試過設定兩個虛擬串列埠,但只有其中一個有功能。

2 個回答

0
japhenchen
iT邦大師 1 級 ‧ 2021-01-13 11:18:59

GPIO有擴展板可用,你在哪裡買adruino uno板就到那裡去買擴展板即可,有好幾種型式,這種可以疊層做多重擴展,孔不夠用?不擔心啦
https://ithelp.ithome.com.tw/upload/images/20210113/20117954Lj4OcdKIvA.jpg

我自己是用這種型式的擴充板
https://ithelp.ithome.com.tw/upload/images/20210113/20117954ej73EmDBBL.jpg

eileen_wu iT邦新手 5 級 ‧ 2021-01-13 13:11:11 檢舉

不是孔不夠用,是沒辦法同時使用兩個虛擬串列埠。

1
清心明月
iT邦新手 3 級 ‧ 2021-01-21 04:06:49

我沒有記錯的話,虛擬串列埠不是所有Pin都能用。

如果不怕板子大的話,可以考慮用 Arduino Mega 2560。

我試過您的情況,最後改用了Arduino Mega 2560。
我沒有記錯的話,硬件Serail Port 有4個。
因為Pin多,所以還有空間做 Soft Serial Port。

https://ithelp.ithome.com.tw/upload/images/20210121/20117902m1U0TUcXdy.png

PS1: 在寫 Program 時,要特別注意 Multi Serial Port的寫法。
別忘記,若速率為 9600bps時。對程式的延遲要怎樣處理?
您的目標需要是,無論多小個Serial Port,速率有多慢,系統程式都能確保高速運行,不被Serial Port拖慢。這個是要考您功力的,不知怎樣說給您聽。返正注意一下!

PS2: Software Serial Port有時會有因延遲問題而產生數據錯誤的情況出現。不排除有機會您要寫數據除錯功能。

PS3: 您用藍芽的話,會否考慮用 SPI或I2C藍芽模塊,那您就不用考慮多串列埠的問題。當然若用I2C,需要I2C藍芽模塊能夠改I2C的硬件號,避免撞號。這樣,您用UNO也好,NANO也好。怎樣都沒有問題。

PS4: UNO的記憶體,足夠您這類的程式運行嗎?

PS5: UNO的速度,能應付您這類多串列埠需要嗎,當然技術好,是沒有問題的。

PS6: RS485或 CAN BUS,是其他選擇,但不知道是否支援 藍芽

PS7: 我是您的話,我會研究用SPI 還是 I2C 藍芽模塊,那一個比較合適。
SPI (Serial Peripheral Interface) 串列 (序列) 週邊介面,https://magicjackting.pixnet.net/blog/post/164725144

PS8: SPI 藍芽模塊,應該是很好的選擇。應該適合您的需要。所有的感測器都考慮用SPI的。

PS9: SPI用線小,卻可以接很多個設備。

我要發表回答

立即登入回答