I’m planning a target board for throwing a ball against a wall. My first approach was to use piezo elements to detect the hits. My second approach is using velostat sheets to detect pressure from the ball. This second approach got me to this idea, probably nothing new, but anyhow, I couldn’t quite find anything similar on this forum.

A stripe of velostat can detect pressure. Used together with a resistor, it can act as a voltage divider:

Pressing the velostat stripe will cause the voltage at A0 to drop. Then I thought of replacing the resistor with another stripe of velostat:

Pressing the other stripe will cause the voltage at A0 to rise. Sure one can add more strips to the same analog input A0, but since we’re talking about velostat sensors, there will be problems with accuracy. But as far as we have only two stripes per analog input, we should be ok. At startup, the value at A0 could be read and saved. Then, when in action, one would only have to care of voltage raise or voltage drop. It’s almost as accurate as digital input.

Pressing on both stripes at the same time will cause the resistant to drop in each stripe, which will cause the voltage at A0 to… well… be unstable and unreliable. And in a worst case the total resistance will drop and cause a near shortcut between the 5V and ground. If there’s a risk for this, an additional resistor should be placed there. Each stripe would be a ring. With 6 analog inputs, one could have 12 rings.

So the next thing would be to arrange the stripes in a target board pattern. Since 2 rings share the same analog input, each pair should be as far from each other as possible, so a ball hit would never trigger both rings in a pair. Like this:

Here I have 6 pieces of velostat, which would need three analog inputs.

No direct experience with Velostat but it sounds like this should work, at least I can't see anything obviously wrong.

You'll have to do some testing though to find out how much it really changes resistance, and whether you may need to amplify the signal.

A potential problem I see is the detection: you have to constantly and very quickly poll all your analog ports as the impact of a ball lasts only for a very short time (I would expect a few milliseconds at most). Arduino's ADCs may be too slow for that, especially as you have to poll them one by one.

That makes for 6 ms between polls of a strip. I'm expecting problems there, as I doubt the ball will compress the strip for that long.

You'll need to build in some form of delay - maybe a capacitor can help keeping the voltage high/low long enough somehow?

Ok, that ruins a lot. My other approach which is based on piezo sensors will include peak detectors, which hold the voltage until it is read. I found a page that tells that a typical hit on a baseball with a bat lasts some 0.7 milliseconds. A ball hitting my board might not press it any longer than that. And since this velostat approach would use voltage peaks in two directions, I'd really need some strange solutions.

Can't you do Velostat + peak detectors?