Normally I'm a software guy, but I've recently decided to try my hand at some electronics projects. What I want to do is make my own impact sensor for target shooting. What I'm picturing is a piece of AR-500 steel for the target, and a sensor that can detect when the round hits the target. I've started by using an Arduino Uno, a piezo and 1MOhm resistor, like in the arduino tutorial.

My main problem is lessening the sensitivity of the piezo, so that I don't get false positives. For example, if the round hits in front of the plate and splashes dirt on it, I don't want it to pick that up. Or if the round passes by, I don't want the sonic boom to trigger it either. Currently I have it set that so that a light tap on the piezo sensor housing won't set it off, but a harder tap will (with a threshold of 100 from my arduino adc).

My question is, will the piezo output max voltage with a hard tap from my finger, or will it send out a really high voltage if I were to hit the steel hard with a hammer (to simulate a rifle round). If the voltage will keep increasing as the impacts increase (is there a limit?), then I guess it's as simple as reducing the voltage coming out of the piezo. If the voltage hits it's maximum output prematurely, is my only option to isolate the vibration with rubber mounts, or padding or something so that it takes a good wallop to set it off?

  • 2
    \$\begingroup\$ how often do you want to use the piezo? More than once? \$\endgroup\$ – Brian Drummond Jan 3 '17 at 17:27
  • \$\begingroup\$ Yes it would be needed to detect repeated hits. \$\endgroup\$ – campbell.rw Jan 3 '17 at 17:32
  • 1
    \$\begingroup\$ You can epoxy a ceramic disc cap and load it with 10k~100k and detect the pulse with a Sh. diode and cap. then decay to zero. Or use an muffled (taped up) electret mic and do the same. That's what I used as a kick drum trigger for a rock band light sequencer circa'75 then used a pot AC couple to a 1M self biased CMOS inverter for the amp. \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Jan 3 '17 at 17:40
  • \$\begingroup\$ @Tony Stewart Thanks for your reply! You might need to simplify it a little for me as I'm still quite new to this. I mean I know the names of the parts you refer to, but not sure how I would hook it up. Do you mean to use these pieces instead of a piezo, or with a piezo? \$\endgroup\$ – campbell.rw Jan 3 '17 at 17:50
  • \$\begingroup\$ How about using a 24-bit accelerometer? \$\endgroup\$ – Tedi Jan 3 '17 at 20:52

Yes, the output of a piezo-electric sensor should keep increasing as the target is whacked harder. There should be a substantial difference between tapping the target with your fingers and hitting it with a hammer or a bullet. One problems with piezo sensors is to keep them from frying the input stage if accidentally whacked hard.

Of course, the obvious thing to do is simply try it. Set up something that triggers if a signal gets over a couple of volts or so. Then feed the piezo signal thru a pot so that you can adjust the attenuation, then into the comparator. After some experimentation, you should be able to find a setting that detects hard whacks but not casual bumps.


Any Piezo-electric sensor can be used including an Electret mic. a piezo sensor (or even a ceramic capacitor with signal amp). All being high resistance with some capacitance with varying sensitivities, the output is a current proportional to sound vibration and the voltage is proportional to resistance. Thus the gain depends on the load pullup R value . I suggest 1K is small enough to attenuate signal. Then add tape over orifice.

enter image description here

The signal is AC coupled and pulled up to Vcc for "half-wave negative peak detection" pulses down with an envelope burst of noise. The cap voltage drops with this current pulse when the diode conducts, dropping from Vcc to some voltage below Vcc/2 which is enough to drive the next stage to a logic "1" out. The 10M resistor pullup R3, slowly "rearms" the circuit back at Vcc.

This produces a +ve voltage on the noise impulse with a duration of C2 * R3 or 100 ms in this case. This may be extended to a 5 seconds by increasing C to 1uF. ( with a good quality cap > 20M leakage resistance )


simulate this circuit – Schematic created using CircuitLab

Attenuation of gunshot or any noise is easily muted with tape to also vary sensitivity over the sensor and proximity of sensor to target.

  • 2
    \$\begingroup\$ The OP said pretty specifically that they don't want their sensor to be triggered by the sound of the shot being fired, only by the impact of a bullet on the target. And in any case, you haven't explained anything about how this circuit works, nor how it could be adjusted. \$\endgroup\$ – duskwuff Jan 3 '17 at 19:43
  • \$\begingroup\$ Signal detection is easily obtained by proximity mounting on or near behind plate. Adjustment is obvious. Output requirements are unknown. \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Jan 3 '17 at 19:51
  • \$\begingroup\$ OK @duskwuff I added a circuit description for you. \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Jan 3 '17 at 20:15
  • \$\begingroup\$ Dear Dusk Nothing I said indicated what you claimed. It was your assumption the gunshot would be loud enough to trigger the back sensor. which can be easily chosen by location. muting with tape to only pick up vibrations of plate. \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Jan 3 '17 at 20:56
  • \$\begingroup\$ There could potentially be a lot of noise that I wouldn't' want to interfere with other sensors. For example, any supersonic rifle rounds will have a sonic boom that will pass through. Also the sound of other rounds hitting adjacent targets could be pretty loud as well. Ultimately all I need the Arduino to do is decide whether or not there was a hit, or there was no hit. Ideally the sensor would be mounted on the target as there is also the possibility of having moving targets. \$\endgroup\$ – campbell.rw Jan 4 '17 at 1:47

May be put a resistor with the correct value at the out of the piezo, to find the correct value you could solder a potentiometer (in the correct Ohm range of the piezo) and do some test until the arduino will detect the signal. Then you mesure the potentiometer with your ohm/voltmeter and replace it with the correct resistor. The other simple solution is to isolated the piezo from external sound, for that you can use a cylinder of fixing paste and/or some layer of cork wood, I think ity will be the best one because the impact of a bullet make a really strong noise, I think may be it can damage your piezzo. Also may be you can replace the piezzo by another device less sensitive like a small headphone speaker (in the correct ohm range).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.