I'm on a project in which I must read the DC (1ms-2ms) of 16 PWM signals with 4 Arduino MEGA 2560, 4 PWM for each one. After have read it, I should send the 16 values to a computer. The initial idea was to use 4 Arduino Ethernet Shield connected to a router and then get on the computer. The other option is to connect the 4 Arduino directly by USB to the computer and perform it with each Serial.print. Which of the two options could give me better results? I have to emphasize that time is important, less than 20ms to receive the 16 PWM values would be optimal. A greeting and thanks.
1 Answers
0
votes
20ms is not really an issue here. Assuming you connect the Arduino over USB, using Serial, at 115,000bps, you can send the 4 bytes (Assuming a byte per Duty Cycle reading) to the control computer in .35ms.
Using TCP/IP, and a direct Ethernet connection, it will be orders of magnitude faster than that.
So, I would say, what are you more comfortable with in coding terms? The serial approach will be easy on the Arduino, but you might have to work a bit harder on the control computer. (For instance, will you use C++, and a Serial library like Boost::ASIO ?
Or, are you comfortable with TCP/IP socket programming? And if so, you will have a more robust solution, which will scale better for you.