I modified the sketch to sample (loop) once every 2 milliseconds and to store the maximum force measured. When I cranked it down to once every 1 millisecond, the maximum results became flaky.
We accurately measured the height of release of the object to attempt to be consistent.
Results are all over the place.
So, is a 2millisecond sampling rate to slow to accurately capture an instantaneous impact?
Without access to the system, no one can say whether or not a 500Hz sampling rate is adequate. To know for certain, you should look at the output of your resistor using an oscilloscope to capture an impact so you can measure the actual duration of the event and set your sampling rate accordingly.
When it triggers, start sampling the analog input at full speed and save data
Replay the data and see how it looks.
If it still looks “all over the place” then you need to stop using analogRead() which is very slow and instead use the raw A/D registers that will let you read at 10s of kHz.
FSRs are a poor choice to measure anything, as they are uncalibrated and highly nonlinear. Add to that the long time it takes the Arduino to measure a voltage and you can’t expect much.
High-g accelerometers were designed to do what you want. They were originally designed for impact measurement, in order to deploy air bags in vehicle crashes.