我在一个项目中,我必须用 4 个 Arduino MEGA 2560 读取 16 个 PWM 信号的 DC(1ms-2ms),每个 4 个 PWM。读完之后,我应该将这 16 个值发送到计算机。最初的想法是使用 4 个 Arduino Ethernet Shield 连接到路由器,然后上电脑。另一种选择是通过 USB 将 4 Arduino 直接连接到计算机并使用每个 Serial.print 执行它。这两个选项中的哪一个可以给我更好的结果?我必须强调时间很重要,接收 16 个 PWM 值的时间少于 20 毫秒是最佳的。问候和感谢。
问问题
455 次
1 回答
0
20ms 在这里并不是真正的问题。假设您通过 USB 连接 Arduino,使用串行,以 115,000bps,您可以在 0.35ms 内将 4 个字节(假设每个占空比读数一个字节)发送到控制计算机。
使用 TCP/IP 和直接以太网连接,速度将比这快几个数量级。
所以,我会说,你在编码方面更喜欢什么?串行方法在 Arduino 上很容易,但您可能需要在控制计算机上更加努力地工作。(例如,你会使用 C++ 和像 Boost::ASIO 这样的串行库吗?
或者,您对 TCP/IP 套接字编程感到满意吗?如果是这样,您将拥有一个更强大的解决方案,它将为您提供更好的扩展性。
于 2015-01-09T15:22:06.913 回答