Hi peeps!
I'm looking at trying to build a tachometer for small DC motors that is also capable of measuring a motors torque. The idea is to sends the time via USB serial that a flywheel with a known inertia breaks a light gate (twice per revolution for balance).
I will use my PC to record the micros() times and using MATLAB I can calculate the angular velocity with high fidelity and thus the angular acceleration and the torque (since inertia will be known).
My question is based on the data logging. I want to measure motors with fairly high RPM (think 80,000 no load RPM or so) and the micros() returns a 32 bit variable. 80,000/60 * 2 * 32 = ~85,300 bits/ second. Thats getting pretty dang close to the 115200 max baud rate of the serial link.
I also want to run a small I2C 7seg display to display some data every half second or so (test time remaining and current KRPM)
So I'm throwing the idea out there for comment; please lemme know if you see anything that may cause a problem with this!
Is this a feasible way to do this?
Will there be a baud rate issue?
Is there a better way of doing this?
I could probably do something like only send every 2nd, 3rd, etc value but I would rather have the data as complete as possible.
Maybe I could compress/encode the data and reinterpret it in MATLAB?
Send back a delta in the micros() and not use a 32bit value?
Cheers!