Using a piezo to wake 3.3V microcontroller when there's vibration

Hi,
I'd like to make a vibration sensor. I was thinking of using one of those weighted piezos to wake up the microcontroller when there's vibration.

I found a pretty good reference for that here, and I want to make sure I understand it correctly.

This is the simpler one of the suggested circuits. Because the piezo generates high voltages, this design uses zener diodes to clamp the voltage to safe levels. In my case, I would use 3.3V zeners.

A more complex alternative is this one, that uses an op-amp comparator and voltage divider to generate a digital signal for wakeup based on the pot's voltage:

My understanding is that the simpler circuit will generate some signal between 0 and 3.1V (whatever zener diode voltage will clamp it at). If the vibration is high enough, the generated signal will be high enough to wake the microcontroller, but if it's only a slight vibration, the voltage generated may not be high enough to wake the microcontroller. So that's the downside of the simple circuit. But the piezo voltage can be ... like 2.7V, and the zener diodes in the circuit will let 2.7V translate through to the microcontroller pin? I'm checking my understanding that the two zeners in this circuit only act as positive clamps.

The more complex circuit has the advantage of allowing you to use a very low voltage for the comparator, so that you can make any small piezo voltage generate a Vcc level interrupt.

Is that correct? Since this is a battery powered sensor, I also want to know what the op-amp circuit would consume. Is the current consumption of the op-amp circuit just Vcc / R_Potentiometer?

Third question: What is the 320Mohm R4 resistor doing in that circuit? What'll happen if you leave it out? And what will happen if you add a large resistor in that same spot, but on the simpler circuit?

[u]Protection circuits[/u]

The ATmega chip has built-in protection diodes. They can't handle lots of current, but a piezo can't put-out much current so it's probably safe.

You generally need a series resistor to limit current because the diode essentially becomes a "short" when you go over-voltage. You don't want to damage the diode or the voltage source. (You're not going to damage the piezo and you're probably not going to fry a diode with a piezo.)

If you choose a Zener, you only need one diode. The forward voltage clamps any negative voltages slightly-below zero and the Zener voltage limits the positive side.

Since this is a battery powered sensor, I also want to know what the op-amp circuit would consume. Is the current consumption of the op-amp circuit just Vcc / R_Potentiometer?

The op-amp will consume some current. Check the datasheet.

Yes can calculate the current through the voltage-reference pot. with Ohms Law. The op-amp input is high impedance so it's mostly just the total resistance of the pot.

Third question: What is the 320Mohm R4 resistor doing in that circuit?

It keeps the input from floating-up. You'll need it on the Arduino too. (But, it's going to be hard to find such a high-value resistor! 1M or 10M should be fine.)

DVDdoug:
The ATmega chip has built-in protection diodes. They can't handle lots of current, but a piezo can't put-out much current so it's probably safe.

A 10k resistor between the input and the rest of the circuit would definitely make it safe to do like that.
Those diodes can handle some 0.5 mA continuously, more when pulsed.

Instead of zeners you may also use two regular diodes - e.g. the regular but fast switching 1N4148 or Schottky types - to clamp the voltage to in between Vcc + 0.5V and -0.5V.