I have a piezo element glued to a piece of material, and I want to get a digital signal (to drive an interrupt on an Arduino) when something strikes the material. So, there's a certain noise floor on this signal (mains hum, and general vibration in the material from sound etc.) But then when the strike occurs, there should be a much more substantial voltage from the piezo element. So far so good, I've seen this on a 'scope, and of course, the signal is pretty messy, and might be either polarity initially, and likely swings about for a bit after the strike.

My goal is to clean this up. So far as my pretty rudimentary electronic knowledge goes, I figure I'll need to:

  • high pass filter to reduce picked up mains hum
  • bridge rectify, which should make the signal unidirectional, and also put a minimum threshold on the input, based on the forward drop of the diodes (and I might actually want to deliberately increase this drop, double up the diodes in series, to reject spurious noise signals)
  • put this through a zener diode to clamp the peak at 5v for the TTL logic input (I suspect that the peak signal will be over 5v from this piezo element, but if not, then I guess I'll be adding some amplification too).

At this point, I think I'll likely get many edges, but if they're going into an edge triggered interrupt that disables when triggered and has to be re-enabled in software, I'll probably be OK. But I'm figuring perhaps I could/should clean it up further with a bit of capacitative smoothing and a schmitt trigger?

On the basis of this, I came up with the starting point circuit below (entirely devoid of values so far!) But, this is likely a pretty standard problem, so if can I ask would this work? Is there a better / more standard solution? Generally any guidance that's on offer, I'll be most grateful. enter image description here

EDIT: It occurs to me that I should mention that it will not be appropriate to put the "raw" signal into the A/D input. Two reasons, a minor one is that I have several of these inputs, and insufficient A/D inputs. The main one, however, is that I need a pretty precise measurement of the instant of the shock, and the converters would be far too slow.

EDIT2: comments have indicated that I'll likely want a) high input impedance, and b) some kind of amplifier (which presumably is a good way to solve a too :) So, my immediate go-to would be some kind of op-amp. However, that raises a couple more questions:

  • I need pretty fast response times (most of my op-amp experience has been in audio frequency range 30 years ago). I'll need rise times to full scale in the sub microsecond range. I'm not sure if that's fast or not by today's standards.
  • I am likely to be getting voltages from the piezo element that are much higher than the supply rails on the op-amp. I recall talk of "latch up" on the 741 (yeah, does that even exist these days!?) if you pushed the input hard to the rails. But whatever, I'll need to be OK in that respect. I imagine I could clamp this with a nose-to-nose pair of zeners, maybe.

So, am I still heading in a good direction? And any suggestions for a suitable, robust, doesn't-mind-over-voltage-on-input, fast rise-time op-amp? Guessing a 741 doesn't exist, and if it does, perhaps wouldn't have the slew rate I need. So, any recommendations for today's go-to op-amp would also be welcome.

EDIT: I found this Texas Instruments data sheet specifically on signal conditioning for piezo sensors. It addresses several issues including the impedance, and frequency response Texas Instruments Data Sheet: Signal Conditioning Piezoelectric Sensors

  • \$\begingroup\$ youtu.be/KFCRB4d991E?t=104 \$\endgroup\$ – Sunnyskyguy EE75 Jan 10 at 5:41
  • \$\begingroup\$ Yes, that's very similar to the signal I get from the piezo source, although my signal is higher amplitude. My requirement at this point is to transform it into a clean, square, digital-level, edge so I can drive some software with it. \$\endgroup\$ – Toby Eggitt Jan 10 at 14:30
  • \$\begingroup\$ Piezo elements require an amp with a very high input impedance. Your circuit doesn't have one. I recommend a voltage follower \$\endgroup\$ – Scott Seidman Jan 10 at 14:57
  • \$\begingroup\$ You likely want to put some sort of pulse shaping amplifier between your sensor and the input. Detecting these strong pulses should not be particularly hard, but I would recomend the amplifier nevertheless \$\endgroup\$ – michi7x7 Jan 10 at 18:59
  • \$\begingroup\$ Thanks @ScottSiedman I have added some more commentary in my question; if you are willing to, can you comment on how I interpreted your input, and maybe add anything else? \$\endgroup\$ – Toby Eggitt Jan 10 at 20:20

Your Answer

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

Browse other questions tagged or ask your own question.