我在一个项目中,我必须读取直流(1ms-2ms)的16个PWM信号与4 Arduino MEGA 2560,每个4 PWM。读完之后,我应该把16个值发送到计算机上。最初的想法是使用4个Arduino Ethernet Shield连接到路由器上,然后进入计算机。另一种选择是通过USB直接将4arduino连接到计算机,并在每个Serial.print上执行此操作。这两个选项中哪一个可以给我更好的结果?我必须强调的是,时间是重要的,少于20毫秒,以接收16脉宽调制值将是最佳的。致以问候和感谢。
发布于 2015-01-09 23:22:07
20ms在这里并不是真正的问题。假设您通过USB连接Arduino,使用串行接口,速率为115,000bps,您可以将4个字节(假设每个占空比读数一个字节)发送到.35ms控制计算机。
使用TCP/IP和直接以太网连接,它将比这快几个数量级。
所以,我会说,在编码方面,你更习惯于什么?串行方法在Arduino上会很容易,但在控制计算机上可能需要更努力一些。(例如,您会使用C++和像Boost::ASIO这样的串行库吗?
或者,您对TCP/IP套接字编程感到满意吗?如果是这样,您将拥有一个更健壮的解决方案,它将为您提供更好的伸缩性。
https://stackoverflow.com/questions/27860438
复制相似问题