The following code is derived from a project in which my Arduino measures the RPM of a small DC motor up to 18,000 RPM. The Arduino also does PID calculations to keep the speed constant and receives instructions by wireless. Your Arduino will have no trouble reading the engine speed and the load cell. The code is not complete but it should give you the idea.
volatile unsigned long isrMicros;
unsigned long latestIsrMicros;
unsigned long previousIsrMicros;
volatile boolean newISR = false;
void loop() {
if (newISR == true) {
previousIsrMicros = latestIsrMicros; // save the old value
noInterrupts(); // pause interrupts while we get the new value
latestIsrMicros = isrMicros;
newISR = false;
interrupts();
microsThisRev = latestIsrMicros - previousIsrMicos;
}
void myISR() {
isrMicros = micros();
newISR = true;
}
You should check to make sure the code for reading your load cell does not block the Arduino while it is waiting for the load cell to produce a reading.
...R