我有一个Arduino Micro通过USB连接到我的计算机并充当操纵杆。我想知道发送的操纵杆信号和远程机器接收的信号之间的延迟,因此我需要从Arduino获取时序数据。但是,由于USB端口已用作HID设备,因此无法通过USB发送此时序数据。
是否可以使用芯片上的一些备用数字引脚进行通信?例如,我可以从数字引脚(作为串行)连接到计算机上的备用USB端口吗?我想知道如何在软件级别和硬件级别上实现这一点(也就是说,如何将数字引脚物理连接到USB端口?)
我确信这是一个已解决的问题,但我找不到任何好的例子。任何人都可以提供一些吗?
答案 0 :(得分: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端口。