Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不使用Arduino的USB端口与PC通信?_Arduino - Fatal编程技术网

不使用Arduino的USB端口与PC通信?

不使用Arduino的USB端口与PC通信?,arduino,Arduino,我有一个Arduino Micro,它通过USB连接到我的电脑,充当操纵杆。我想知道遥控器发送的操纵杆信号和接收到的信号之间的延迟,所以我需要从Arduino获取定时数据。但是,我无法通过USB发送此计时数据,因为USB端口已被用作HID设备 是否可以使用芯片上的一些备用数字引脚进行通信?例如,我可以从数字插脚(串行)连接到计算机上的备用USB端口吗?我想知道这是如何在软件和硬件两个层面上实现的(也就是说,如何通过USB端口物理连接数字引脚?) 我确信这是一个已解决的问题,但我找不到任何好的例子

我有一个Arduino Micro,它通过USB连接到我的电脑,充当操纵杆。我想知道遥控器发送的操纵杆信号和接收到的信号之间的延迟,所以我需要从Arduino获取定时数据。但是,我无法通过USB发送此计时数据,因为USB端口已被用作HID设备

是否可以使用芯片上的一些备用数字引脚进行通信?例如,我可以从数字插脚(串行)连接到计算机上的备用USB端口吗?我想知道这是如何在软件和硬件两个层面上实现的(也就是说,如何通过USB端口物理连接数字引脚?)


我确信这是一个已解决的问题,但我找不到任何好的例子。有人能提供一些吗?

您需要一个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端口

不确定这是否适用于micro:。另外,还有一个Arduino SE,你可以试试:@johnnympp谢谢,我想我可以使用带有TTL/USB适配器电缆的串行库,类似于:建立连接。如果我能让它工作起来,我会在几天内给这个问题写一个答案!有关延迟的信息,请参阅本文:当您有可用的硬件时,为什么要使用软件串行?同样,当您有可用的硬件时,为什么有人要使用软件串行?硬件串行将作为HID设备用于arduino通信。USB是一个独立的模块,它不需要“硬件串行”。您可以查看电路板的原理图和MCU数据表。UART和USB是两个不同的模块。您可以通过Arduino Micro板上的RX和TX访问硬件串行。哦,对不起,我没有注意到它是Arduino Micro。在我看来,这是Arduino Uno作为一个操纵杆,就像我试过的那样。HardareSerial将很好地工作,只是为了向任何未来的访问者澄清:使用Arduino Micro的软件序列库是必要的。我尝试使用硬件串行(引脚0和1),但通过这些引脚发送串行输出会导致虚拟阿鲁迪诺操纵杆出现故障。我改为在引脚10/11上使用串行软件)。