BJT should be safe with piezo disk spike input.

It kind of hit me that I have no trouble connecting diodes to a piezo and that a BJT is 2 diodes.

Which is less, an opto-isolator or a diode and a BJT? Either way can safely connect a piezo to an Arduino pin.

Yes a transistor can be used for over-voltage protection. In most cases you need a base resistor so you don't over-voltage the transistor's base-emitter junction.

The ATmega chip has built-in protection diodes and I'd be surprised if a piezo can put-out enough current to fry the protection diodes.

and that a BJT is 2 diodes.

It's not "just" 2-diodes, but it can behave like two diodes in certain circuit's/applications.

Which is less

Less what?

Less cost of course.

Last time I wired piezos I used 4 diodes to make a full wave rectifier and then worked it so it gave 1 signal for press and 1 for release with 2 added BJT's. The BJT collectors were fed 5V through 2K resistors and the emitters wired to digital pins with no pulldown. That let me determine roughly how hard the disk was hit, every digital read eats 1 microAmp and my loop() ran at > 50KHz.

But for just a button, a diode and BJT might do... and a pulldown.

These buttons are good for delicate to hard hits.

DVDdoug:
The ATmega chip has built-in protection diodes and I’d be surprised if a piezo can put-out enough current to fry the protection diodes.

Piezo’s act as mechanically controlled charge sources - the more they are distorted the more
charge is pushed round the external circuit. So rapid movement can generate high currents,
I wouldn’t make that assumption.

Perhaps the OP can explain what they are actually trying to do, otherwise it’ll be xyproblem
territory I fear…

I look at them as capacitors you can charge by squeezing and yes I know down to the crystal level how they work.

Rapid movement can generate high VOLTAGE. The piezo in a piezo lighter very briefly generates over 1500V when struck very damned hard and fast, the spark is spike-short. That piezo is not the same as audio-pickup piezos, they can't take or make so much.

And yet they are incredibly sensitive. Watch the youtube video named Ants Amplified.

I've hit a couple harder than they would in any app I would use and did not pop any component. But then I didn't feed it to a FET or an Arduino pin. I protected the pin with cheaper parts.

XY problem? This time it's you thinking Y to my X. Yeah, I want to use them for buttons that can take heavy taps and not wear out. I can put them on the back side of an object and hit the front with a hammer if need be and they will still work.

Yes there are other ways to do much the same but that's not the point. The point was to see what I could do with 10 cent piezo disks.

GoForSmoke:
I look at them as capacitors you can charge by squeezing and yes I know down to the crystal level how they work.

Rapid movement can generate high VOLTAGE. The piezo in a piezo lighter very briefly generates over 1500V when struck very damned hard and fast, the spark is spike-short. That piezo is not the same as audio-pickup piezos, they can't take or make so much.

Piezo's are charge/current sources, not voltage sources. The high voltages happen when the load is
high impedance, since voltage = current x impedance. Short out a piezo and there's no voltage, but
just current.

Any current or charge source can be destructive if not given a low enough impedance path for the
current to pass through. When you open a switch carrying current to an inductor you briefly get
the same thing, a current source presented with a high impedance load - and thus high voltages are
generated.

This is the opposite situation to a large battery (voltage source), which when short-circuited (low
impedance) can result in destructive high currents flowing. Voltage source into low impedance is
the converse of current source into high impedance.

And yet they are incredibly sensitive. Watch the youtube video named Ants Amplified.

I've hit a couple harder than they would in any app I would use and did not pop any component. But then I didn't feed it to a FET or an Arduino pin. I protected the pin with cheaper parts.

XY problem? This time it's you thinking Y to my X. Yeah, I want to use them for buttons that can take heavy taps and not wear out. I can put them on the back side of an object and hit the front with a hammer if need be and they will still work.

Yes there are other ways to do much the same but that's not the point. The point was to see what I could do with 10 cent piezo disks.

So what is your question exactly?

Oh good grief. Deforming the crystal lattice shifts internal charges around. One side becomes positive with respect to the other. The voltage difference drives current from the plate on one side to the plate on the other. If you apply voltage to a piezo, it will deform.

OK lets put it another way - nothing is a perfect voltage source or perfect current source, so the
practical definition of a voltage source is something that generates electrical energy and have a much
lower output impedance than the load
A current source is something that generates electrical energy and has a much higher output impedance
than the load.

With something delicate like a semiconductor device, current sources are destructive when the load appears
also to have a high impedance (reverse biased junction), so efficient power transfer happens and the
junction is destroyed. Protect from current sources using low/medium impedances in parallel.

Similarly voltage sources are destructive when the load appears to have a low impedance (forward biased
junction), and efficient power transfer happens and the junction is destroyed. Protect from voltage sources
with high/medium impedances in series.