I would like to validate this design I use for input to a microcontroller for a piezo microphone trigger. I use 3 lines: a Schmitt trigger for use with an interrupt, an analog line for measuring the voltage level in the ADC, a reset line connected to a transistor to discharge the ADC capacitor.

The first path going from L1 (ferrite bead) to Q1 rectifies and RC filters the the AC signal comming from the mic piezo. The result is then split to both op amps U1 and U3.

enter image description here

I have a couple of questions regarding this design:

  1. Do I need R2 and R3 to stabilize the input of U3 and U1?
  2. Does it makes sense to control Q1 with a microcontroller to discharge the C1 capacitor after the reading was done the the ADCInput line in the micro?
  3. Is it overkill to put a ESD protection TVS diode at the very start of the signal chain?

Here are the signals I expect from LTSpice:

Red = Piezo signal (-5v/+5v)

Green = D2, C1, R1 filtering result before going to the opamps.

Blue = Schmitt trigger ouput

enter image description here enter image description here

Any other comments/suggestions/links would be greatly appreaciated.


As you see, it works in the simulated case. You should do practical tests before building these more than a couple. If you are in noisy environment (vibrations, really LOUD sounds, radio transmitters, phones) you can get into troubles.

Fast and easy to use sensitivity and decay time constant settings with proper visual indicators are a must if this will not be a part of some absolutely fixed installation.

If you have several of these monitoring adjacent targets, the dynamics can be a problem. Say target A gets weak and strong hits and the adjacent target B, too. If the spilled vibration from a strong hit to B is high enough to be noticed as a weak hit to A, you get a false triggering. Consider to do some spillage reasoning in the software. For example rise the treshold in A for few milliseconds if B has got strong hit. Some clever programming is needed to avoid too long calculation delays.

  • \$\begingroup\$ Noise should be in control. Right now I use just a resistor from the piezo to the adc and with a threshold for false triggering, it works pretty fine. \$\endgroup\$ Dec 19 '17 at 21:20
  • \$\begingroup\$ I want to use the new design to save processing on the micro controller by triggering the adc measurement only when an interrupt is raised from the schmitt trigger. Right now, I just read the adc all the time and detect the peaks I want. Works fine, but not very effecient. \$\endgroup\$ Dec 19 '17 at 21:23

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.