【问题标题】:Communicate with PC without using USB port with Arduino?在不使用 Arduino 的 USB 端口的情况下与 PC 通信?
【发布时间】:2016-08-17 14:13:01
【问题描述】:

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

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

我确定这是一个已解决的问题,但我找不到任何好的示例。谁能提供一些?

【问题讨论】:

标签: arduino


【解决方案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 串行监视器)来显示来自备用数字引脚的数据。但请确保在串行监视器上显示数据,您需要从 Tools>Port 中选择 USB-TTL 适配器的 com 端口

【讨论】:

  • 再一次,当你有硬件可用时,为什么有人要使用软件串行?
  • 硬件串行将作为 HID 设备用于 arduino 通信
  • 没有。 USB是一个独立的模块,它不需要“硬件串行”。您可以查看电路板的原理图和 MCU 数据表。 UART 和 USB 是两个不同的模块。您可以通过 Arduino Micro 板上的 RX 和 TX 访问硬件串行。
  • 哦,对不起,我没有注意到它是 arduino micro。在我看来,Arduino Uno 就像我尝试过的那样作为操纵杆。 HardareSerial 可以正常工作
  • 只是为了向任何未来的访问者澄清:必须使用 Arduino Micro 的软件串行库。我尝试使用硬件串行(引脚 0 和 1),但通过这些引脚发送串行输出会导致虚拟 arudino 操纵杆出现故障。我改为在引脚 10/11 上使用软件串行)。
猜你喜欢
  • 1970-01-01
  • 2017-06-23
  • 2011-06-17
  • 2015-05-08
  • 2014-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-02
相关资源
最近更新 更多