An accelerometer may be overkill for impact sensing, besides the constant data reading and processing overhead. Use an inexpensive impact switch or vibration switch instead.
Out of curiosity, tried the following:
Opened up a cheap pedometer that came free with something.
Unsoldered the little vibration switch inside, that rattles when one walks. These are tilt / vibration switches, pretty inexpensive (~ $2.45 for 10, free shipping, on eBay):
- Cut a hole into a foam "stress ball" toy, just enough to fit the little switch, a CR2032 coin cell, and an Arduino Nano inside it.
- Wired up the switch between pin 2 and GND on an Arduino Nano clone to capture the switching
- Set up a sketch for a RISING interrupt 0 on Pin 2, setting internal pull-up on. That way, the switch going from open to closed triggers the interrupt code (which debounces the interrupt and toggles an LED)
Now, I get an LED lighting up if the ball is thrown hard against the wall, but not if the ball is merely dropped from table height. Basically the foam softens the impact enough for it to be sensed only if it hard enough. This "hard enough" would depend on the application and the buffer material used.
Of course, the above is not a recommended production or design mechanism. It is an analogue to a properly rated impact switch, such as the Select Controls 3123-2-000 impact switch, rated for 50-200 G impact sensing.
There are other such inexpensive spring-based impact switches available, for omnidirectional, planar or axial (unidirectional) impact sensing, and trigger thresholds from 0.5 G through to 500 or more Gs. Pick one that suits your specific requirement and budget.
The microcontroller control method would remain as in the experiment above: An edge trigger interrupt on the switch output, to do whatever the desired impact sensing outcome needs to be.