I want to design an input stage for my DIY midi-drum-trigger.

Piezo-Elements are used as drum trigger and i want to read out the voltage spikes with the built-in ADC of a ATMega168p in order to generate MIDI-Signals. I checked different resources for how to design a input stage for the piezos, since they generate a very high voltage, but the circuits i found are very different.

Here is a circuit i found at edrum.info:

edrum.info - analog input stage

I am very new to electronics, but this is how i would explain the circuit: The potentiometer acts as a voltage divider and scales down the signal. The BAT85-Diode removes the negative portion of the signal. I don't know what the resistor in parallel to the BAT85-Diode is good for. At the output of the opamp, there is a peak-detector circuit to hold the signal-peaks for a specific time and the whole signal is amplified by two (non-inverting-amplifier). Please correct me if i'm wrong.

In this video is explained, that you should add another opamp acting as a buffer behind the peak-detector-circuit: https://www.youtube.com/watch?v=jllsqRWhjGM&t=10m31s

So here are my questions:

  • Do i have to add a buffer behind the peak-detector circuit when working with piezos or can i connect the peak-detector-output directly to the ADC?

  • And if i have to add a buffer: I want to multiplex many piezo-signals with a HCT4051. It is possible to add one buffer at the output of the HCT4051 or do i have to buffer every eight signals before they go in to the Multiplexer ?

  • I want to drive the opamps (LM324N) from 0 to 5V, and not from 0 to 8V like the circuit above. Is there anything i should change, when using this circuit ?

Thank you !


1 Answer 1


C1, R1 are a high-pass, meaning the circuit is an edge detector. D2, C2, R4 in contrary is a charge collector / timer circuit, which is meant to transform the height of the input peak into a length. The u*t area being the same on input and output.

That is done to help the sample&hold circuit in the following ADC to have a constant input value rather than an arbitrary one depending on whether it is synced to the beat of the drummer or not. For your ADC control, that means you have to sample each input circuit a number of times in a row and add up the values to get a better reasoning on the height of the input peak.

This limits the number of channels you can multiplex for a given ADC.

  • \$\begingroup\$ This does not answer to my questions regarding the buffer. I think i know how to do the software side of things. \$\endgroup\$
    – steffka
    Commented Oct 20, 2016 at 8:48
  • \$\begingroup\$ Sorry. Thought it was all clear now. You don't need to buffer any of the signals coming from the first-stage OPs as they are low-impedance (driven by a OP-AMP push transistor). The 4051 adds 100Ω resistance to the signal path, but that is negligible, given the circuit in front of it. Single-supply makes no difference, as you aren't sampling voltages near the 0V level and the output is push-only anyway because of D2. \$\endgroup\$
    – Janka
    Commented Oct 20, 2016 at 9:00
  • \$\begingroup\$ Is it possible to power the opamps from 0 to 5V with this circuit ? (I just need 7bit ADC-Resolution, because in MIDI the note velocity is just from 0 to 127) \$\endgroup\$
    – steffka
    Commented Oct 20, 2016 at 9:06
  • \$\begingroup\$ Yes, it should make no difference. \$\endgroup\$
    – Janka
    Commented Oct 20, 2016 at 9:08
  • \$\begingroup\$ So the ADC is not influencing the discharge-time of C2 ? can you explain why the u*t area is the same on input and output ? R1 is 47k and R4 is 1k \$\endgroup\$
    – steffka
    Commented Oct 20, 2016 at 9:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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