2016-08-17 165 views
1

我有一個Arduino Micro,通過USB連接到我的電腦,並充當遊戲杆。我想知道正在發送的操縱桿信號與遠程機器接收的信號之間的延遲,所以我需要從Arduino收集時序數據。但是,由於USB端口已被用作HID設備,因此無法通過USB發送此定時數據。與電腦通信而不使用USB端口與Arduino?

是否可以使用芯片上的一些備用數字引腳進行通信?例如,我可以從數字引腳(如串行)連接到計算機上的備用USB端口嗎?我想知道這是如何在軟件級別和硬件級別上實現的(也就是說,如何通過USB端口物理連接數字引腳?)

我確信這是一個解決方案問題,但我找不到任何好的例子。任何人可以提供一些?

+0

不確定這是否適用於micro:[SoftwareSerial Library](https://www.arduino.cc/en/Reference/SoftwareSerial)。另外,還有一個你可能會嘗試的Arduino SE:http://arduino.stackexchange.com/ –

+0

@JohnnyMopp謝謝,我想我可以使用TTL/USB適配器電纜類似於以下的串行庫:https:// www .adafruit.com/product/954進行連接。我會在幾天內爲這個問題寫一個答案,如果我能夠實現它的話! – Oliver

+0

查看本文以獲取有關延遲的信息:http://neophob.com/2010/11/arduino-serial-latency/ – Fruchtzwerg

回答

1

您需要一個USB轉TTL轉換器。在arduino中,只需使用SoftwareSerial庫將數據寫入串口,即可使用任何數字引腳進行串行通信。然後將USB-TTL連接到您在程序中設置的arduino數字引腳。

例如在Arduino的:

SoftwareSerial softSerial(rxPin, txPin); 
........ 
........ 
void Setup() 
{ 
    softSerial.begin(9600); 
    softSerial.println("hello"); 
} 

連接:

USB-TTL  Arduino 
Tx ------- rxPin 
Rx ------- txPin 
Gnd ------- Gnd 

如果你想要做的是讓你的PC上的數據,那麼你可以使用任何終端程序,包括Arduino的IDE串行監視器顯示來自備用數字引腳的數據。但一定要顯示串口監視器上的數據,您需要從工具>端口選擇USB-TTL適配器的com端口

+0

同樣,爲什麼有人希望在有硬件的情況下使用軟件序列? – Ouss4

+0

硬件串口將用於Arduino通訊作爲HID設備 –

+0

不可以。USB是獨立模塊,不需要「硬件串口」。 您可以檢查電路板和MCU數據表的原理圖。 UART和USB是兩個不同的模塊。 您可以通過Arduino Micro板上的RX和TX接口訪問硬件串行。 – Ouss4